Python 多项式中的分类变量

Python 多项式中的分类变量,python,scikit-learn,classification,categorical-data,Python,Scikit Learn,Classification,Categorical Data,我是Python新手,这里有一个关于在多项式nb中设置X_列的简单问题 因此,我想使用两个分类特征预测一个目标(“A1”、“A2”、“A5”):工作日,具有7个唯一值('Mon'、'Tue'、'Wed'、'Thu'、'Fri'、'Sat'、'Sun'),以及具有5个唯一值('a'、'B'、'C'、'D'、'E')的位置 以下是我正在做的: 使用pd.getdummies将工作日和位置转换为二进制输入向量 使用LabelEncoder将目标转换为数值 将数据拆分为培训/测试 然后我执行以下操作

我是Python新手,这里有一个关于在多项式nb中设置X_列的简单问题

因此,我想使用两个分类特征预测一个目标(“A1”、“A2”、“A5”)工作日,具有7个唯一值('Mon'、'Tue'、'Wed'、'Thu'、'Fri'、'Sat'、'Sun'),以及具有5个唯一值('a'、'B'、'C'、'D'、'E')的位置

以下是我正在做的:

  • 使用
    pd.getdummies
    将工作日和位置转换为二进制输入向量
  • 使用
    LabelEncoder
    将目标转换为数值
  • 将数据拆分为培训/测试
然后我执行以下操作(使用scikit学习):

因此,我的问题是:

  • 以上步骤正确吗?特别是,“获取虚拟对象”是处理分类特征的最佳方法吗?

  • 通过执行上述操作,
    X_列
    将成形(N_样本,12),其中12来自7(矢量化工作日)和5(矢量化位置)。对于此问题,此设置是否正确


非常感谢

一般来说,你的步骤听起来是正确的。我确实发现
get_dummies()
是为scikit learn准备无序分类功能的最简单方法。但是,您实际上可以删除每个分类变量的“基线级别”,将功能的数量减少到10(6+4而不是7+5)。此外,请记住,如果您有一个有序的分类功能,将其作为一个功能保留并将类别转换为“合理”的数值可能是有意义的

在的第2部分中,我将展示上述所有内容的示例

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