【机器学习】Kaggle-Titanic:Machine Learning from Disaster

1.导入数据
利用pandas的read_csv()读取数据

2.观察数据
利用pandas中的info()显示原始数据属性的基本信息,describe()显示属性的统计信息

import pandas
Ttrain =pandas.read_csv("train.csv")
print(Ttrain.describe())

3.数据预处理
(1)数据缺失
· 若缺失值的样本占总数比例很高,则直接舍弃该属性
· 若缺失值的样本占总数比例极小,则可舍弃该样本
· 利用fillna()替换序列中的缺失值
数值型数据:均值/中位数填充
非数值型数据:众数填充

#将缺失值用列的中位数填充,并将替换后的结果赋值给原列
Ttrain["Age"]=Ttrain["Age"].fillna(Ttrain["Age"].median())

(2)非数值列
· 将非数值列转化为数值列
定量属性:通常具有可排序性
定性属性:通常值表示一些符号或事物的名称,不具有排序意义

以下处理方法欠妥(暂时做此处理)

#输出显示"Sex"列中的值
print(Ttrain["Sex"].unique())
#定位"Sex"列中值为"male"的行,并用0替换"male"
Ttrain.loc[Ttrain["Sex"]=="male","Sex"]=0
Ttrain.loc[Ttrain["Sex"]=="female","Sex"]=1         
print(Ttrain.describe())    

同理:

print(Ttrain["Embarked"].unique())
Ttrain["Embarked"]=Ttrain["Embarked"].fillna('S')
Ttrain.loc[Ttrain["Embarked"]=='S',"Embarked"]=0
Ttrain.loc[Ttrain["Embarked"]=='C',"Embarked"]=1
Ttrain.loc[Ttrain["Embarked"]=='Q',"Embarked"]=2

4.交叉验证
交叉验证:将原始数据随机分为两组,一组为训练集(train set),一组为验证集(validation set)。首先利用训练集对分类器进行训练,再利用验证集测试训练得到的模型。是一种简单的避免过拟合的方法
eg
·合并第一、二部分,训练一个模型,在第三部分做预测
·合并第一、三部分,训练一个模型,在第二部分做预测
·合并第二、三部分,训练一个模型,在第一部分做预测
(1)K-fold Cross Validation
将原始数据均分为K组,并让每个子集数据分别作一次验证集,其余K-1组子集作为训练集,这样得到K个模型。求这K个模型验证集的分类准确率的平均数作为此分类器的性能指标

你可能感兴趣的:(机器学习,Kaggle,python算法)