有一个名为DecisionTree的Python包 https://engineering.purdue.edu/kak/distDT/DecisionTree-2.2.2.html 我觉得非常有帮助。
这与您的scikit / sklearn问题没有直接关系,但对其他人有帮助。 另外,当我在寻找python工具时,我总是去pyindex。 https://pypi.python.org/pypi/pyindex
谢谢
DecisionTreeClassifier 当然能够进行多类分类。恰好恰好在该链接中说明了“大于”,但是达到该决策规则是其对信息增益或基尼的影响的结果( 请参阅该页面的后面部分 )。决策树节点通常具有二进制规则,因此它们通常采用某个值大于另一个值的形式。诀窍在于转换数据,因此它具有良好的预测值来进行比较。
DecisionTreeClassifier
要清楚, 的 多类 强> 表示您的数据(例如文档)将被分类为一组可能的类之一。这不同于 的 多标签 强> 分类,其中文档需要用一组可能的类中的几个类进行分类。大多数scikit-learn分类器都支持多类,并且它有一些meta-wrappers来完成多标记。你也可以使用概率(模型与 predict_proba 方法)或决策函数距离(模型与 decision_function 方法)用于多标记。
predict_proba
decision_function
如果你说你需要为每个数据应用多个标签(比如['red','sport','fast']到汽车),那么你需要为每个可能的组合创建一个独特的标签来使用树木/森林,这将成为你的[0 ... K-1]类。但是,这意味着数据中存在一些预测相关性(对于汽车示例中的组合颜色,类型和速度)。对于汽车,可能会有红色/黄色,快速跑车,但不太可能用于其他三向组合。对于那些少数人而言,数据可能具有强烈的预测性最好使用SVM或 LinearSVC 和/或包装 OneVsRestClassifier 或类似的。
术语多类仅影响目标变量:对于scikit中的随机森林 - 学习它是分类的,具有用于多类分类的整数编码或用于回归的连续。
“大于”规则适用于输入变量,与目标变量的类型无关。如果您有具有低维度的分类输入变量(例如,少于几十个可能的值),则对那些使用单热编码可能是有益的。看到:
如果某些分类变量具有高基数(例如数千个可能的值或更多),那么它已通过实验证明 DecisionTreeClassifier s和基于它们的更好的模型,如 RandomForestClassifier s可以直接在原始整数编码上进行训练,而无需将其转换为会浪费内存或模型大小的单热编码。
RandomForestClassifier