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

本文介绍了使用pandas进行数据预处理的过程,包括处理缺失值、转换非数值型数据等步骤,并通过fillna()函数填充缺失值,利用loc属性转换类别变量。此外,还探讨了如何实施交叉验证来评估模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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个模型验证集的分类准确率的平均数作为此分类器的性能指标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值