写在开头:这次的分享是Kaggle比赛的入门级项目Titanic的一些技术上的小结,并且会展开某些技术上的细节进行说明。
相关重述
问题背景:泰坦尼克号是当时世界上体积最庞大、内部设施最豪华的客运轮船,在它的处女航中,泰坦尼克号便遭厄运——它从英国南安普敦出发,途经法国瑟堡-奥克特维尔以及爱尔兰科夫(Cobh),驶向美国纽约。1912年4月14日23时40分左右,泰坦尼克号与一座冰山相撞,造成右舷船艏至船中部破裂,五间水密舱进水。2224名船员及乘客中,1517人丧生,其中仅333具罹难者遗体被寻回。(摘自百度百科)
研究目标:通过已知的船上乘客信息来对乘客的生存状况进行预测。
技术总结
一、全文思路
Step1. 载入数据、包,并查看数据;
Step2. 对数据进行清洗,包括去重复值、异常值、缺失值或特征化数值化处理;
Step3. 利用数据可视化,寻找有价值的变量与变量分组;
Step4. 利用可行的机器学习、深度学习模型进行模型训练;
Step5. 对不同模型的效果进行评估,交叉验证、重要变量筛选、查准率、查全率、F值、ROC-AUC等进行评价;
Step6. 保存数据,结束。
二、关键程序
(此处不展示完整分析过程与代码,只对使用到的函数进行总结,完整项目可见后续文章)
Step1. 载入数据、包,并查看数据
#常见包
import pandas as pd #载入处理数据包
import numpy as np
import matplotlib.pyplot as plt #载入绘图包
import seaborn as sns
%matplotlib inline
from termcolor import * #载入改变字体颜色包
#机器学习包-二分类问题
#常见方法模型:LR、随机森林、感知机、梯度下降、DT、KNN、支持向量机、贝叶斯分类器
from sklearn import linear_model
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC, LinearSVC
from sklearn.naive_bayes import GaussianNB
#加载CSV文件
train_df = pd.read_csv("..\data.csv")
#数据查看
train_df.shape #返回DataFrame的行列
train_df.columns #返回DataFrame列名
train_df.info() #返回列名、数据量、类型
Step2. 对数据进行清洗,包括去重复值、缺失值、异常值或特征化数值化处理
1)重复值处理
train_df.drop_duplicates() #去除文中变量完全重复的样本
解释:
drop_duplicates():添加变量名和last,添加变量名意味着如果不同样本的这两列同时发生重复,那么就删除该样本数据;last表示保留重复值中的最后一个样本。
#扩展
train_df.drop_duplicates(['PassengerID'