决策树
决策树是植树型结构,每个内部节点表示一个属性上的测试,每个分支表示一个测试输出,每个叶节点表示一种类型。
决策树学习是基于实例的归纳学习
决策树学习采用自上而下的递归方法,其基本思想是以信息熵为尺度构建熵值下降最快的树。 到叶节点的熵值为零,每个叶节点中的实例属于同一个类。
最近正在学习决策树的分类原理(DecisionTreeClassifier ),决策树的分类依据之一是信息增益。
决策树的criterion可选’Gini’或’entropy’。
基尼系数:
信息熵:
决策树实例(entropy):
下表记录xndxmg每一次考试的状态与成绩好坏的关系
睡眠质量、饱腹状态、情绪成绩、好恶状态、中腹状态、伤心地状态、恶心状态、好恶状态、好恶状态、吃饱状态、好恶状态成绩=importpandasaspdfromsklearnimporttreeeimportnumpyasnpimportg raphvizdf=P olumns=[ '复习','睡眠质量','饱腹状态','情绪','成绩' ],data={ '复习' : [ '有','有,',',',' “饱”3360“饱”、“饱”、“饱”、“饿”、“饱”、“饱”、“心情”3360“快乐”、“高兴”、“悲伤”、“心情” : labels=df[i].unique ).tolist ) )处理数据为二三分类df[I]=df[I].apply ) lambdax 3360 labels.index (x axis=1) ) ) print ) y_target ) model=tree.decisision model=model.fit (x _ data,y_target ) dot _ data=tree.export rounded=true (graph=graphviz.source (dot _ data ) graph.view ) ) ) )。
颜色越深,表示不纯度指标越低,数据越纯
例如,第一个节点values=[ 4,3 ],睡眠质量好的有3个,睡眠质量差的有4个,第一个节点的分类依据是Sleep quality
有些东西出不了数学符号。 用代码写
#第一个entropy-((4/7) math.log2 (4/7) )3/7(math.log2 ) )=0.9852281360342516# (第二个entropy ) )
决策树分割为熵增益最大,继续以上表为例
决策树划分依据(entropy):
h(x ) ) (((4/7) log ) )4/7) ) log ) )3/7) ]=0.9852281360342516H )睡眠=-() ) )3/3 )-0.9792504246104775h )情绪(-(((3/7) ) (2/3) log ) (2/3) )1/3) log )。
ig(t )=h ) x )-h ) x|t ) )。
h(x )-H (睡眠)时,信息增益最大,因此第一个节点按睡眠质量划分