MultinomialNB Python

时间:2016-01-19 17:55:50

标签: python scikit-learn classification categorical-data

我是Python新手,这是一个关于在MultinomialNB中设置X_train的简单问题。

所以我想使用两个分类功能预测目标(“A1”,“A2,......”A5“):工作日,包含7个唯一值( '周一','星期二','星期三','星期四','星期五','星期六','太阳')和位置有5个独特的值('A','B' , 'C', 'd', 'E')。

这是我正在做的事情:

  • 使用pd.getdummies将工作日和位置转换为二进制输入的向量
  • 使用LabelEncoder将目标转换为数值
  • 将数据拆分为培训/测试

然后我做了以下(使用scikit-learn):

clf=MultinomialNB()
clf.fit(X_train,y_train)

所以我的问题是:

  • 以上步骤是否正确?特别是,是“get_dummies”处理分类功能的最佳方法吗?

  • 通过以上操作,X_train将处于形状(N_samples,12),其中12来自7(矢量化工作日)和5(矢量化位置)。这个问题的设置是否正确?

非常感谢!

1 个答案:

答案 0 :(得分:0)

一般来说,您的步骤听起来是正确的。我发现get_dummies()是为scikit-learn准备无序分类功能的最简单方法。但是,您实际上可以放弃"基线水平"对于每个分类变量,将要素数量减少到10(6 + 4而不是7 + 5)。另外,请注意,如果您有有序分类功能,则将其保留为一个功能并将类别转换为“明智的”#34;数值。

this Jupyter Notebook的第2部分中,我展示了上述所有内容的示例。

相关问题