机器学习之决策树

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习之决策树相关的知识,希望对你有一定的参考价值。

1、C4.5算法介绍
C4.5算法与ID3算法不同的是采用了信息增益比作为特征的选择,原因是:信息增益在选择属性时偏向于选择取值较多的属性。


2、信息增益比
特征A对训练数据集D的信息增益比定义为其信息增益g(D,A)与特征A的熵HA(D)之比(计算方式请看上一篇):
技术分享图片


3、CART算法介绍
CART算法使用Gini指数作为特征的选择,并且使用平方误差最小化原则对连续型特征进行离散化,所以CART算法既可以用于分类,也可以用于回归。


4、Gini指数
技术分享图片


5、sklearn库的实现

import pandas as pd
from sklearn.feature_extraction import DictVectorizer
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier

def decisionTree():
    #读取数据
    data = pd.read_csv(‘train.csv‘)
    #数据预处理
    x = data[[‘Pclass‘,‘Age‘,‘Sex‘,‘Embarked‘]]
    y = data[‘Survived‘]
    x[‘Age‘].fillna(x[‘Age‘].mean(),inplace=True)
    x[‘Embarked‘].fillna(‘S‘,inplace=True)
    #one-hot编码
    dict = DictVectorizer(sparse=False)
    x = dict.fit_transform(x.to_dict(orient="records"))
    x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=0)
    #决策树算法
    dec = DecisionTreeClassifier(criterion="gini",max_depth=None,)
    dec.fit(x_train,y_train)

    print("正确率:",dec.score(x_test,y_test))

if __name__ == ‘__main__‘:
    decisionTree()

参考书籍:
《统计学习方法》--李航
《机器学习实战》--Peter

以上是关于机器学习之决策树的主要内容,如果未能解决你的问题,请参考以下文章

机器学习之手写决策树以及sklearn中的决策树及其可视化

机器学习之决策树

机器学习之决策树

sklearn机器学习之决策树

机器学习之决策树

机器学习之决策树