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