泰坦尼克号生还者预测
import pandas as pd
from sklearn.tree import tai, export_graphviz#导入决策树分类器,
from sklearn.metrics import classification_report #分类报告
import graphviz #用于数据可视化
#数据预处理(删除无关列,性别用0,1表示,填充年龄的缺失值)
data = pd.read_csv('titanic_data.csv')
data.drop('PassengerId', axis=1, inplace=True) # 删除PassengerId 列,axis=0是行,=1为列,inplace=True会对原有值进行修改
data.loc[data['Sex'] == 'male', 'Sex'] = 1 # 用索引方法loc对数据进行修改
data.loc[data['Sex'] == 'female', 'Sex'] = 0 # 用数值1来代替male,用0来代替female,sklearn不支持字符串类型数据
data.fillna(data['Age'].mean(), inplace=True) # fillna()方法,用均值来填充缺失值
#构建模型
Dtc = DecisionTreeClassifier(max_depth=5, random_state=8) # 构建决策树模型
Dtc.fit(data.iloc[:, 1:], data['Survived']) # 模型训练(数据和标签(是否生还))
pre = Dtc.predict(data.iloc[:, 1:]) # 模型预测
pre == data['Survived'] # 比较模型预测值与样本实际值是否一致
classification_report(data['Survived'], pre) # 分类报告
#数据可视化
dot_data = export_graphviz(Dtc, feature_names=['Pclass', 'Sex', 'Age'], class_names='Survived')
graph = graphviz.Source(dot_data)
graph
部分截图: