如何使用scikit-learn / sklearn训练决策树时处理数据库数据?

时间:2015-05-19 07:27:34

标签: machine-learning scikit-learn decision-tree

我是scikit的新手。我正在尝试使用sklearn模块来训练决策树分类器。数据由一些分类特征和一些连续特征组成。但是当我训练分类器时,具有1,2,3等值的分类特征被视为连续的。我获得的结果即使对于特征的分类值也给出了范围。例如,我得到一个决策树,其中X [0] <4.5意味着一个特定的类,其中X [0]是一个分类特征。请注意,由于此处X [0]是分类,因此值1与值2无关,但分类器将它们组合在一起。我该如何处理?

有没有办法增加包含分类特征和类别超过2的节点的分割数。

1 个答案:

答案 0 :(得分:0)

你应该首先对分类整数特征进行编码,然后应用DecisionTreeClassifier。

尝试使用库sklearn.preprocessing中的OneHotEncoder来预处理您的分类功能。

例如,您应该首先执行以下操作:

    from sklearn.preprocessing import OneHotEncoder
    ohe = OneHotEncoder(sparse=False)
    processed_X = ohe.fit_transform(X[['0']].values)

其中&#39; 0&#39;是您的列功能X [0]。