虽然到处都是泰坦尼克号生存预测的案例,但是还是要再来一遍。哈哈哈。作为入门还是可以的。此篇文章为新手小白入门,大佬请指点。文章较长,下面进入正题。
目录
- 提出问题(Business Understanding )
- 理解数据(Data Understanding)
- 采集数据
- 导入数据
- 查看数据集信息
3.数据清洗(Data Preparation )
- 数据预处理
- 特征工程(Feature Engineering)
4.构建模型(Modeling)
5.模型评估(Evaluation)
6.方案实施 (Deployment)
- 提交结果到Kaggle
- 报告撰写
1.提出问题
什么人在泰坦尼克事件中存活率较高?
2.理解数据
2.1数据采集
从Kaggle泰坦尼克号项目页面下载数据:
Titanic: Machine Learning from Disasterwww.kaggle.com
2.2导入数据
append方法按列添加
2.3查看数据集信息
3.数据清洗
3.1 数据预处理
缺失值处理
在前面,理解数据阶段,我们发现数据总共有1309行。 其中数据类型列:年龄(Age)、船票价格(Fare)里面有缺失数据。 字符串列:登船港口(Embarked)、船舱号(Cabin)里面有缺失数据。
这为我们下一步数据清洗指明了方向,只有知道哪些数据缺失数据,我们才能有针对性的处理。
很多机器学习算法为了训练模型,要求所传入的特征中不能有空值。
- 如果是数值类型,用平均值取代
- 如果是分类数据,用最常见的类别取代
- 使用模型预测缺失值,例如:K-NN
数值型数据缺失处理(采取了简单的平均值填充)
字符串型数值处理
3.2 特征工程
查看数据类型,分为3种数据类型。并对类别数据处理:用数值代替类别,并进行One-hot编码
3.2.1 分类数据:
1.有直接类别的
- 乘客性别(Sex): 男性male,女性female
- 登船港口(Embarked):出发地点S=英国南安普顿Southampton,途径地点1:C=法国 瑟堡市Cherbourg,出发地点2:Q=爱尔兰 昆士敦Queenstown
- 客舱等级(Pclass):1=1等舱,2=2等舱,3=3等舱
性别
登船港口(Embarked)
客舱等级(Pclass)
2.无直接类别的字符串类型
可能从这里面提取出特征来,也归到分类数据中,这里数据有:
- 乘客姓名(Name)
- 客舱号(Cabin)
- 船票编号(Ticket)
乘客姓名
从客舱号中提取客舱类别
建立家庭人数和家庭类别
one-hot的基本思想:将离散型特征的每一种取值都看成一种状态,若你的这一特征中有N个不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会使得一种状态处于“激活态”,也就是说这N种状态中只有一个状态位值为1,其他状态位都是0。
3.2.2特征选择
本次是初学者入门,故采用相关系数法进行特征的选择,若想具体了解特征工程,请看下面链接。
如何做特征工程?
使用sklearn做单机特征工程 - jasonfreak - 博客园
泰坦尼克号如何进行特征选择?
相关系数法:计算各个特征的相关系数
4.构建模型
选择算法模型并训练模型
这里的算法模型有很多,但本次选择逻辑回归模型
5 评估模型
6.方案实施
6.1 得到预测结果上传到Kaggle
大佬请忽略渣渣的预测结果。。。。。
6.2 报告撰写
下回分解。