【发布时间】:2018-10-15 22:23:46
【问题描述】:
如何将分类和数字特征传递给 sklearn 中的 DecisionTreeRegressor?
以下代码展示了如何将DecisionTreeRegressor 用于数字特征:
from sklearn import tree
make_tree = tree.DecisionTreeRegressor()
fit_tree = make_tree.fit(X_train, y_train)
【问题讨论】:
-
DecisionTreeRegressor 支持数值和分类变量。你有错误吗?
-
我不知道fit函数如何从一个数字中实现一个分类特征?这个函数中是否有任何参数来引入分类特征?树算法需要知道哪个特征是分类的,哪个是数字的。例如当 x_train 是 [[1,4,2],[2,1,3],[0,2,3]] 树算法如何解释特征?
-
如果您发布完整代码和遇到的错误,帮助会更容易。
-
不,scikit-learn 决策树无法区分分类特征和数值特征,并且没有太大区别。您必须对分类特征进行 one-hot 编码才能将它们转换为数字。
-
如果您需要按原样使用分类,您可以尝试支持该功能的 CatBoost 或 LightGBM(通过在参数中指定哪个功能是分类的),而不是 scikit-learn。
标签: python machine-learning scikit-learn decision-tree