前言
作为一名萌生转行想法大概2个月的小白,第一个月艰难的学习了execl,python,mysql的基础用法,第二个月开始尝试在不断学习的过程中,增加一些实践的部分,所以这篇文章就诞生了!所以也就是说这篇文章菲比个人开启自己转行之路的里程碑式文章,哈哈哈!
选择泰坦尼克号项目的原因有二,一则是泰坦尼克号是kaggle非常经典的一个项目,相信很多人都是从这个项目开始自己机器学习or数据分析的旅途的,二则是这个项目比较‘接地气’,毕竟卡梅隆的电影大家都看过,对于业务的理解不会那么晦涩难懂
因为此文章是处女作,第一目标是完成,最终完成之后的准确率为0.77751,排名在3000-4000之间(很菜,所以想要冲准确率的朋友们请忽略此篇菜鸟文)
数据读取
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.svm import SVC
import seaborn as sns
在做好了上述设置之后,先来看一看泰坦尼克号这个项目给我们的数据文件:共3个文件,分别为train.csv(训练集),test.csv(测试集),gender_submission.csv(输入结果集)
/kaggle/input/titanic/train.csv
/kaggle/input/titanic/test.csv
/kaggle/input/titanic/gender_submission.csv
训练集:用于数据分析+特征工程+模型构建等一系列操作,目标是通过训练集训练出一个模型,用于泰坦尼克项目的生存结果预测
测试集:用于测试通过训练集训练的模型的准确率
在数据分析、模型构建阶段我们需要的对训练集进行操作,同时虽然测试集仅用于测试,但是因为他要套用训练集训练的模型,故在数据预处理,特征工程这两个阶段需要两个数据集做统一的操作
基于以上分析
1、使用pd.read_csv()先将训练集和测试集分别进行读取
2、分别在data_train,data_test 中加一列 'is train' ,用于区分
3、使用pd.concat()将训练集和测试集拼接在一起用于后续的统一操作
data_real_train = pd.read_csv('/kaggle/input/titanic/train.csv') data_real_test = pd.read_csv('/kaggle/input/titanic/test.csv') data_real_train['is_train'] = 1 data_real_test['is_train'] = 0 datas = pd.concat([data_real_train, data_real_test], ignore_index = True) datas.head()
初步数据分析
初步看一下数据,数据是否空缺值?数据有哪些类型?数据有哪些明显特征?数据之间简单的关系是怎么样的?
1、使用datas.info() 和 datas.describe() 先简单看下数据
- 训练集+测试集一共1309条数据,存活率38.38%
- 存在空缺值:'Pclass' 'Age' 'Cabin' 'Embarked' 'Fare'
- 3种数据类型:int,float,object
2、使用sns.pairplot() 快速画出两两特征(好多图,先简单看看吧,不做深入分析)
通过自己和自己的图,判断下数据类型:
- 与业务无关数据:'passengerid' 'is_train'(通过常识得出,在图中看也没有什么信息)
- 连续&无固定类型数据:'Age' 'Fare'
- 不连续&无固定的数据:'sibsp' 'parch'
- 固定类型的数据:'survived' 'Pclass'
- 字符串(图里没有,根据业务理解得出):
- 无固定类型数据:'Name' ' Ticket' 'cabin'
- 固定类型数据: 'Sex' 'embarked'