机器学习—决策树

     一、决策树概念

       决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。其本质上决策树是通过一系列规则对数据进行分类的过程。

       决策树方法最早产生于上世纪60年代,到70年代末。由J Ross Quinlan提出了ID3算法,此算法的目的在于减少树的深度。但是忽略了叶子数目的研究。C4.5算法在ID3算法的基础上进行了改进,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题。

二、案例:泰坦尼克号乘客生存预测


属性

pclass          票类型  1  2  2
survived        存活  1-存货 0-死亡
name            名字
age             年龄
embarked           
home.dest       乘客来源地
room            房间号
ticket          票号
boat            
sex             性别  female-女性  male-男性

#1.加载数据
import pandas as pd
df=pd.read_csv('d:/mldata/titanic.csv')
#2.提取目标数据
x=df[['pclass','age','sex']]
y=df['survived']
#3.数据处理
#平均年龄字段填充
x['age'].fillna(x['age'].mean(),inplace=True)
#数据类型转换
x=x.to_dict('records')
#4.划分数据集
from sklearn.model_selection import train_test_split
xtrain,xtest,ytrain,ytest=train_test_split(x,y,test_size=0.2,random_state=33)
#5.特征工程--dict特征提取
from sklearn.feature_extraction import DictVectorizer
dv=DictVectorizer()
xtrain1=dv.fit_transform(xtrain)
xtest1=dv.fit_transform(xtest)
#6、决策树模型训练
from sklearn.tree import DecisionTreeClassifier
#创建决策树对象
dtc= DecisionTreeClassifier(criterion='entropy')
#训练数据集
dtc.fit(xtrain1,ytrain)
# 模型预测
ypredict=dtc.predict(xtest1)
ypredict==ytest
# 7、模型评估
score=dtc.score(xtest1,ytest)
print("准确率: ",score)

 解释该段代码:

1.先导入数据,导入数据需要用到pandas这个包中的pd模块。

2.提取目标数据,x提取相关特征属性y提取存活率

3.进行任何的机器学习时都需要将数据进行数据的清洗处理,因此对数据进行处理,对缺失的数据进行数据填补。

4.划分数据集采用8:2的方式进行,训练数据占比80%测试数据占比20%

5.提取特征工程对测试数据和训练数据分别进行特征提取。

6.进行模型训练

7.模型评估该模型的准确率。

 预测结果如下图所示:

准确率:  0.779467680608365

        

你可能感兴趣的:(大数据,机器学习,keras)