之前我们用过传统的机器学习算法预测过泰坦尼克号数据的生还情况,这次我们使用神经网络算法来进行建模。
数据处理
数据情况
这里的数据来源与kaggle上的数据,读者可以自行进行下载,我们通过pandas读取,首先看看数据的基本情况。
import numpy as np
import pandas as pd
data = pd.read_csv('titanic.csv')
data.head()
我们使用的字段有下面几个:
- Survived:是否生还
- Pclass:船舱等级
- Sex:性别
- Age:年龄
- SibSp:手足和配偶在船上的数量
- Parch:双亲和手足在船上的数量
- Fare:费用
- Embarked:登船港口
我们把这些字段筛选出来。
缺失值处理
首先,我们看看数据的缺失情况。
data.isnull().sum()
这里有两个字段有缺失值,age我们用平均值,embarked我们用最多的值进行填充。
age_mean = data['Age'].mean()
data['Age'] = data['Age'].fillna(age_mean)
data['Embarked'] = data['Embarked'].fillna('S')
性别和embarked
- 性别需要换成0和1
- embarked进行哑变量
data['Sex']= data['Sex'].map({'female':0, 'male': 1}).astype(int)
data = pd.get_dummies(data=data,columns=['Embarked'])
划分数据集
接着我们按0.8划分数据集。
X = data.iloc[:,1:]
Y = data.iloc[:,0]
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=33)
标准化
最后我们把数据进行标准化,这样数据我们就处理完了。
from sklearn import preprocessing
scale = preprocessing.MinMaxScaler()
X_train = scale.fit_transform(X_train)
X_test = scale.transform(X_test)
网友评论