我是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(矢量化位置)。这个问题的设置是否正确?
非常感谢!
答案 0 :(得分:0)
一般来说,您的步骤听起来是正确的。我发现get_dummies()
是为scikit-learn准备无序分类功能的最简单方法。但是,您实际上可以放弃"基线水平"对于每个分类变量,将要素数量减少到10(6 + 4而不是7 + 5)。另外,请注意,如果您有有序分类功能,则将其保留为一个功能并将类别转换为“明智的”#34;数值。
在this Jupyter Notebook的第2部分中,我展示了上述所有内容的示例。