当我使用sklearn构建决策树时,示例:
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X,Y)
result = clf.predict(testdata)
X是训练输入样本,如果X中有"None",怎么办?
决策树和集成方法,如随机森林(基于这样的树)只接受数值数据,因为它在树的每个节点上执行分裂,以最小化给定的不纯函数(熵,基尼指数…)
如果你的数据中有一些分类特征或一些Nan
,学习步骤将抛出一个错误。
To 规避 this:
-
将分类数据转换为数值数据:为此使用例如One Hot Encoder。这里是
sklearn
的文档链接。
警告:如果您有一个具有许多类别的功能(例如ID
功能)OneHotEncoding
可能导致内存问题。尽量避免对这些特性进行编码。
-
为缺失的输入一些值。存在许多策略(平均、中位数、最频繁……)。这是
sklearn
的文档链接。
一旦你完成了这个预处理,你就可以让你的决策树适合你的数据。