Kaggle案例之泰坦尼克船员幸存预测(sklearn机器学习库)

本文通过Kaggle的泰坦尼克数据集,介绍了从数据预处理到使用sklearn进行机器学习的过程,包括数据分析、处理缺失值、特征工程、线性回归、逻辑回归、随机森林模型的应用。通过特征工程,准确率提升至82.3%,强调了特征工程在提升模型性能中的关键作用。
摘要由CSDN通过智能技术生成

无意间在网易云课堂上找了一个Kaggle案例,泰坦尼克获救船员预测,在此之前我是从没接触过kaggle,毕竟是刚入门的小白,看着视频,算是真正实战了一次,主要是在这个过程中学到了很多东西。
下面视频地址
http://study.163.com/course/courseLearn.htm?courseId=1003551009#/learn/video?lessonId=1004052093&courseId=1003551009

还有数据集,是在GitHub里面找的
https://github.com/fayduan/Kaggle_Titanic
里面有大佬的ipython 源码,不过我也没仔细去看。还是按照视频上的一步一步下来。
首先是整体的流程我大概总结了一下。

  1. 拿到数据集分析数据
  2. 找出数据集中每个特征中是否含有缺失值或者异常值,填充缺失值
  3. 将特征中为字符的特征值转换为数值型,比如将性别男女用0和1表示
  4. 分析数据集适合采用什么算法进行预测,比如适合用分类算法还是适合用回归算法
  5. 建立特征工程(这算是整个过程下来最重要的)
  6. K阶交叉验证,划分数据集(k-1份训练,1份验证,每次换一个。重复k次,用来调优),
  7. 将交叉验证后的数据集扔进算法中进行训练及测试准确率。

接下来代码实现(按照视频教程实现)。
1导入数据,进行分析

import pandas as pd
import numpy as np
titanic = pd.read_csv("数据集/titannike/train.csv")
#将数据集中所有的样本特征属性打印出来,每一列的相关数据信息
titanic

2数据预处理

#数据预处理, 填充缺失值以及将特征中含有字符的转换为数值型

#将年龄这一列的数据缺失值进行填充
titanic["Age"] = titanic["Age"].fillna(titanic["Age"].median())
#titanic
print(titanic.describe())
#打印这一列特征中的特征值都有哪些
print(titanic["Sex"].unique())
#将性别中的男女设置为0 1 值 把机器学习不能处理的自字符值转换成能处理的数值
#loc定位到哪一行,将titanic['Sex'] == 'male'的样本Sex值改为0
titanic.loc[titanic["Sex"] == "male","Sex"] = 0
titanic.loc[titanic["Sex"] == "female","Sex"] = 1
#print(titanic["Sex"].unique)
#print(titanic["Embarked"].unique())
#通过统计三个登船地点人数最多的填充缺失值
titanic["Embarked"] = titanic["Embarked"].fillna("S")
#将登船地点同样转换成数值
titanic.loc[titanic["Embarked"] == "S","Embarked"] = 0
titanic.loc[titanic["Embarked"] == "C","Embarked"] = 1
titanic.loc[titanic["Embarked"] == "Q","Embarked"] = 2
print(titanic["Embarked"].unique())

这里写图片描述

3通过线性回归进行预测(拿回归做分类确实有点鸡肋)

import numpy as np


#将sklearn中的线性回归的类导入进去,采用二分类进行分类预测
from sklearn.linear_model import LinearRegression
#交叉验证库,将训练集进行切分交叉验证取平均
from sklearn.model_selec
  • 15
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值