基本函数:
就是那三种 id3 ,c4.5 ,gnni 系数
熵表示的是混乱程度,不确定性
信息增益这个方法就是
G(D,A) = H(D) (此值是一个定值) - H(D|A)
前面两个按照该值得最大进行划分,表示混乱程度越大,进行划分
gini 系数:
表示的是
纯度
信息增益率 : G(D,A)/H(A)
把序号算进去了,只关注熵的本身了
损失函数:
怎么计算呢?
上面的红色计算是指评价函数的计算方法
并不是按照基尼系数最大进行划分,其他两个方法是按照最大的分割
具体是怎么计算和衡量的呢?
以鸢尾花四个特征为例:
花瓣长,花瓣宽,花萼长,花萼宽
对个列从小到大排序,分割149次(一共150行)
计算出不同分割下的各列的最小的基尼系数的值
纠正一个关于基尼系数的错误:
各列数据依次分割,算出各列在不同分割情况下的基尼系数。
最后在对比,选取最小的基尼系数作为根节点
基尼系数表示纯度,越小表示特征越明显
计算里面的yes or no 在各自属性内的概率
VN-图知识:
信息增益就是互信息:
Python中决策树分类器DecisionTreeClassifier参数和经验总结
https://blog.csdn.net/linzhjbtx/article/details/85722187
#用于数据处理和分析的工具包
import pandas as pd
#引入用于数据预处理/特征工程的工具包
from sklearn import preprocessing
#import决策树建模包
from sklearn import tree
读取数据
adult_data = pd.read_csv('C:/Users/lb/Desktop/test/DecisionTree.csv')
区分特征和目标列
#区分特征和目标列
features = adult_data.drop(['income'],axis = 1)
label = adult_data['income']
4.特征处理/特征工程/读热编码/哑变量
#4.特征处理/特征工程/读热编码/哑变量
features = pd.get_dummies(features)
#4.构建模型
#初始化一个决策树分类器
clf = tree.DecisionTreeClassifier(criterion='entropy', max_depth=4)
#用决策树分类器拟合数据
clf = clf.fit(features.values, label.values)
clf.predict(features.values)
5.可视化决策树
import pydotplus
from IPython.display import display, Image
dot_data = tree.export_graphviz(clf,
out_file=None,
feature_names=features.columns,
class_names = ['<=50k', '>50k'],
filled = True,
rounded =True
)
graph = pydotplus.graph_from_dot_data(dot_data)
display(Image(graph.create_png()))