生成的 scikit learn 决策树中 value 属性的含义是什么?

Igo*_* L. 6 python decision-tree scikit-learn

我正在关注Skipper Seabold 发表的关于 Pandas 和 Scikit learn 的精彩演讲。

我正在利用他清理过的数据集,该数据集源自UCI 成人姓名

运行此代码并通过 graphviz 生成树图像后,我们可以观察到树中的每个节点上都有值数据。

import pandas as pd
from sklearn.tree import DecisionTreeClassifier, export_graphviz

dta = pd.read_csv("data/adult.data.cleaned.csv")

for col in dta:
    if not dta[col].dtype.kind == "O":
        continue
    if dta[col].str.contains("\?").any():
        dta.ix[dta[col].str.contains("\?"), col] = "Other"
        test.ix[test[col].str.contains("\?"), col] = "Other"

dta.income.replace({"<=50K": 0, ">50K": 1}, inplace=True)
test.income.replace({"<=50K": 0, ">50K": 1}, inplace=True)

y = dta.pop("income")
y_test = test.pop("income")

X_train = pd.get_dummies(dta)
X_test = pd.get_dummies(test)

X_test[X_train.columns.difference(X_test.columns)[0]] = 0

dtree = DecisionTreeClassifier(criterion='entropy', random_state=0, max_depth=6)
dtree.fit(X_train, y)
export_graphviz(dtree, feature_names=X_train.columns)
Run Code Online (Sandbox Code Playgroud)

值属性代表什么? 编辑:意味着每个节点都有一个value=[x, y]属性

最终决策树

skr*_*ber 5

值是如何划分用于测试信息增益的样本。所以在根节点,32561个样本被分成了24720个和7841个样本。

S. Raschka在这里做了很好的解释