文章目录
前言
随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就为大家介绍机器学习经典案例--泰坦尼克号的代码流程分析。
一.前期准备:导入所需库
#1.前期处理:导入所需库
import pandas as pd
import numpy as up
from sklearn.feature_extraction import DictVectorizer
from sklearn.tree import DecisionTreeClassifier
二.获取数据
1.引入数据
train=pd.read_csv('train.csv')
test=pd.read_csv('test.csv')
print(train.head()) #查看是否导入数据
print(test.head())
head()默认为5行,也可以在后面修改为自己想要的行数
2.合并训练集与测试集
# 合并train与test
union=train.append(test,ignore_index=True)
print(union.info())
三.数据预处理
1.删除无需保留的特征值并补足缺失值
#删除无需保留的特征值并补足缺失值
union=union.drop(['Name','Ticket','Fare','Cabin'],axis=1)
union['Age'].fillna(union['Age'].mean(),inplace=True) #用平均值来填补缺失年龄
union['Embarked'].value_counts()
union['Embarked'].fillna("S",inplace=True) #用统计最多的地点来填补缺失目的地
Pclass(乘客是几等舱):乘坐高等舱的人可优先逃离,存活率相对较高,需保留。
Name(乘客名字):与存活率无关,可删。
Sex(乘客性别):女性可优先逃离,对存活率有影响,需保留。
Age(乘客年龄):老人小孩可优先逃离,对存活率有影响,需保留。
SibSp(乘客的兄弟姐妹):存在人情各种因素,对存活率有影响,需保留。
Parch(乘客的父母孩子):同上,需保留。
Ticket (船票号) : 随机,对存活率无影响,可删。
Fare(购票所用的费用):与几等舱信息高度线性相关且更为复杂,可删。
Cabin(船舱号):随机,对存活率无影响,可删。
Embarked(目的地):目的地可展现一个人的地位,需保留。
2.对合并集进行划分
# 划分数据集
train = union.loc[0:890]
test = union.loc[891:]
x_train = train.drop(['Survived'],axis = 1)
x_test = test.drop(['Survived'],axis = 1)
y_train = train['Survived']
y_test = test['Survived']
四.特征工程
字典抽取特征值
# 字典抽取特征值
tranfer=DictVectorizer(sparse=False)
x_train=tranfer.fit_transform(x_train)
x_test=tranfer.transform(x_test)
transfer.get_feature_names() #获取特征值名
五.决策树预估器(建立模型)
#5.决策树预估器(建立模型)
estimator=DecisionTreeClassifier(max_depth=6)
estimator.fit(x_train,y_train)
此处将决策树的最大深度设为6,读者可自行设置
六.模型评估
# 模型评估
y_predict=estimator.predict(x_test)
print(y_predict)
id=test['PassengerId']
sub1= {'PassengerId':'id','Survived':y_predict}
sub = pd.DataFrame(sub1)
sub.to_csv("sub1.csv",index=False)
print(sub.head())