目录
数据集
题目
算法步骤
数据集
下载地址
titanic.csv · Yuyi Ye/ML-Decision-Tree - 码云 - 开源中国 (gitee.com)
题目
根据数据集中的数据,预测哪些乘客可以从泰坦尼克号沉船事故中幸免。
算法步骤
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction import DictVectorizer
from sklearn.tree import DecisionTreeClassifier
1、数据预览
import pandas as pd
titan=pd.read_csv("data/titanic.csv")#获取数据
titan//展示数据
数据集中的数据如下所示:
2、数据处理
根据对数据的分析,可用的特征集/属性集为:pclass,age,sex
目标值/类别为survived中的数据
据此,将标签进行划分:
x=titan[["pclass","age","sex"]]
y=titan["survived"]
缺失值填充
x['age'].fillna(value=titan["age"].mean(),inplace=True)
数据集划分
划分为测试集和训练集
xtrain,xtest,ytrain,ytest=train_test_split(x,y,random_state=20,test_size=0.5)
3、提取特征
首先,将训练集和测试集中的数据转为字典格式
xtrain=xtrain.to_dict(orient='records')
xtest=xtest.to_dict(orient='records')
数据格式形如
字典特征提取
#字典特征提取
transfer=DictVectorizer()
xtrain=transfer.fit_transform(xtrain)#返回一个稀疏矩阵
xtest=transfer.fit_transform(xtest)
4、决策树
#决策树
yuce=DecisionTreeClassifier()
yuce.fit(xtrain,ytrain)
ypre=yuce.predict(xtest)
ypre
结果
5、结果评价
#结果评价
scores=yuce.score(xtest,ytest)
scores
6、可视化
from sklearn.tree import export_graphviz
export_graphviz(yuce,out_file="data/tree.dot",feature_names=['age','pclass=1st','pclass=2st','pclass=3st','female','male'])