我不知道它是如何选择根节点的<=7.5,它的基尼杂质是0.45,但我试图手动计算它,但我得到的加权基尼杂质是0.27。
谁能解释一下这里的计算是如何为根节点完成的?
这是我生成的一个小数据集,
import pandas as pd
import numpy as np
a = [5, 6, 7, 8, 9]
a1 = [1, 0, 1, 0, 0]
df = pd.DataFrame(np.c_[a, a1], columns=['val','target'])
val target
0 5 1
1 6 0
2 7 1
3 8 0
4 9 0
这是我的代码,
from sklearn.tree import DecisionTreeClassifier
from IPython.display import Image
import pydot
dt = DecisionTreeClassifier()
dt.fit(df.val.to_frame(), df.target.to_frame())
data_dot = export_graphviz(dt, out_file=None, class_names=['0', '1'])
graph= pydot.graph_from_dot_data(data_dot)
Image(graph[0].create_png())
