菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
1280
0

Machine Learning (11) - 关于 Decision Tree 的小练习

原创
05/13 14:22
阅读数 2068

题目

以泰坦尼克号的人员名单为草料,从多个维度值决定一个人是否会遇难。目前我们手上有一份真实的泰坦尼克号的所有人员名单,其中有一列是 Survived, 也就是此人是否遇难。现在的要求是,根据 PclassFareAgeSex 列的值来训练模型。

正文

引入数据

import pandas as pd

df = pd.read_csv('/Users/rachel/Sites/pandas/py/ML/9_decision_tree/Exercise/titanic.csv')
df.head()

输出

Machine Learning (11) - 关于 Decision Tree 的小练习

去掉对是否生还结果没有影响的字段

df = df.drop(['PassengerId', 'Name', 'SibSp', 'Parch', 'Ticket','Cabin','Embarked'], axis = 'columns')
df.head()

输出:

Machine Learning (11) - 关于 Decision Tree 的小练习

把非数字列的值转为数字

from sklearn.preprocessing import LabelEncoder
le_sex = LabelEncoder()
df.Sex = le_sex.fit_transform(df.Sex)
df.head()

输出:

Machine Learning (11) - 关于 Decision Tree 的小练习

取出用于训练的 X 列

input = df.drop('Survived', axis = 'columns')
input[:10]

输出:

Machine Learning (11) - 关于 Decision Tree 的小练习

用平均值填充 NAN

input = input.fillna(input.Age.median())
input[:10]

输出:

Machine Learning (11) - 关于 Decision Tree 的小练习

划分训练数据和测试数据

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(input, target, test_size = 0.2)

训练模型

from sklearn import tree
model = tree.DecisionTreeClassifier()
model.fit(X_train, y_train)

model.score(X_test, y_test) // 输出: 0.7821229050279329

发表评论

0/200
1280 点赞
0 评论
收藏
为你推荐 换一批