kaggle 泰坦尼克 高分 预测
目录
1.前言
在第一篇文章中我们简单介绍了一下泰坦尼克号数据如何使用机器学习的模型进行训练,通过船上人员的一些
信息来预测该人是否可以生存,但是前面模型的构建中我们只是对数据做了一些简单的处理,并没有进行比较细致
的特征提取,并且对于机器学习模型也没有对参数进行调整,所以本文将对上一篇文章进行改进,对数据进行更深
入的特征提取和对模型参数进行调参的形式进行改进,改进之后,可以看到对测试集测试的准确率有了不错的提升。
2.包及数据导入
##包的导入
import pandas as pd
import numpy as np
import scipy.stats as ss
from sklearn.ensemble import RandomForestClassifier
from bayes_opt import BayesianOptimization
from sklearn.model_selection import cross_val_score
##数据的导入
train=pd.read_csv("./train.csv")##导入训练集
test=pd.read_csv("./test.csv")##导入测试集
3.数据的初步认识
接下来我们对数据的情况进行初步查看,首先我们对变量的个数和对应的数据类型进行查看,首先看训练集
train.info()
结果如下:
可以看到训练集一共有12列数据,数据集中一共有891行数据,可以看到数据集有部分变量数据存在缺失,例如Age,Cabin,Embarked。数据类型一共有三种,浮点型,整型和字符串。接下来我们来看测试集数据的基本情况
test.info()
结果如下
可以看到测试集一共有11列数据 ,相比于训练集少了Survived变量,可以看到测试集也存在缺失数据,缺失数据主要在Age,Cabin,Fare三个变量之中。这些变量所对应的中文解释如下
变量名 | 中文解释 |
---|---|
Survived | 客户是否存活,该变量为该数据集中的因变量,其余为自变量 |
PassengerId | 乘客ID |
Pclass | 代表乘客的阶级,数字越小阶级越高 |
Name | 乘客姓名 |
Sex | 性别 |
Parch | 父母及子女的数量 |
SibSp | 配偶及兄弟姐妹数量 |
Ticket | 船票ID |
Fare | 票价 |
Cabin | 乘客在船舱中的位置 |
Embarked | 登船港口 |
在对数据有基本了解之后,接下来我们对训练数据和测试数据进行简单的统计分析
train.describe().drop("PassengerId",axis=1)
test.describe().drop("PassengerId",axis=1)
训练数据集结果如下
测试数据集结果如下
上面我们在数据集进行初步了解的过程中发现训练集和测试集均存在缺失数据,为了获取数据缺失的具体情况,我们对各变量的数据进行缺失数量统计
train.isna().sum(axis=0)
Out[15]:
PassengerId 0
Survived 0
Pclass 0
Name 0
Sex 0
Age 177
SibSp 0
Parch 0
Ticket 0
Fare 0
Cabin 687
Embarked 2
dtype