码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习之决策树(二)

时间:2019-01-28 19:21:38      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:书籍   数据集   src   com   code   rom   计算   roc   one   

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

机器学习之决策树(二)

标签:书籍   数据集   src   com   code   rom   计算   roc   one   

原文地址:http://blog.51cto.com/14065757/2347360

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!