【发布时间】:2022-11-05 07:26:13
【问题描述】:
如何在 scikit-learn 中的经过训练的决策树上获得总加权 Gini 杂质(或熵)?例如,以下关于泰坦尼克数据集的代码,
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import tree
df_titanic = pd.read_csv('titanic_data.csv') # a popular dataset
feat_list = ['SibSp','Pclass'] # number of siblings and spouses aboard; passenger class (1st,2nd,3rd)
clf = tree.DecisionTreeClassifier()
clf = clf.fit(df_titanic.loc[:,feat_list],df_titanic['Survived'])
fig = plt.figure(figsize=(10,10))
tree.plot_tree(clf,feature_names=feat_list,class_names=['NS','S'])
fig.show()
产生一棵树,其叶子的基尼杂质值和样本大小(无特定顺序)(0.378,71),(0.32,5),(0.5,8),......我对加权和感兴趣,0.378( 71/891) + 0.32(5/891) + 0.5(8/891) + ... 其中 891 是样本总数(乘客)。有什么简单的方法可以做到这一点?
我想比较构建树之前和之后的总基尼杂质(或熵)(如在 Provost 和 Fawcett 中),但是在研究了一些文档之后,似乎没有直接的树属性或方法产生这个信息。
【问题讨论】:
标签: python scikit-learn tree entropy