Datawhale打卡活动 Kaggle Spaceship Titanic Day4

Datawhale打卡活动 Kaggle Spaceship Titanic

尝试了一个coggle科学的打卡活动(Coggle 30 Days of ML(22年10月)),记录一下学习过程!

Day4 特征工程入门

步骤1:学习特征工程基础

特征工程是一项非常艰巨的工作,俗话说:特征工程决定了模型的上限,算法模型只是逼近这个上限。由此可见,特征工程非常重要。那么特征工程到底是什么?

特征工程是是将原始数据(数据集中给出的数据)转化为更能够表达问题本质的特征(传入模型进行学习)的过程。

人们对特征工程的探索脚步从未停止,哪怕有很多常规化的操作,但是每一个问题都会有一个各自独立的特征工程方案待人们挖掘。它也是数据竞赛中最重要的一环!

在网上copy了一个特征工程的思维导图,虽然对于这些竞赛圈的前排大佬来说已经烂熟于心,不一定会在最优方案中都用到,但是对于咱们这些小白来说,还是要踏实的学习,不能想着一步就晋升成为大佬,毕竟没有外挂给你开,学习总要有一个过程!

在这里插入图片描述

对于各个部分的实操,我就不一个一个copy了,大家可以在竞赛中一个一个自己实现,看看效果如何!

步骤2:对类别字段分别进行onehot和labelencoder

通过观察可以发现,onehot和labelencoder最本质的区别就是一个是将一脸变成多列(类别个数)、一个是将一列变为一列直接进行编码。举个栗子:

类别
A
B
C

对上述列别编码,onehot的结果如下:

ABC
100
010
001

labelencoder得编码如下:

类别
0
1
2

通过上述操作,应该能够对两种编码的情况有一个清晰的了解了,接下来对比赛的数据进行处理。

对数据集进行labelencoder

from tqdm import tqdm
from sklearn.preprocessing import LabelEncoder
col_feat=['PassengerId','HomePlanet','Cabin','Destination','Name']
for col in tqdm(col_feat):
    data[col]=data[col].fillna('_NAN_')
    lab = LabelEncoder()
    data[col] = lab.fit_transform(data[col])

'''
由于存在bool类型,所以对其使用map的方式进行编码 
'''
column_dict={True:1,False:0}
for col in tqdm(['CryoSleep','VIP','Transported']):
    data[col] = data[col].map(column_dict)

image-20221001134746177

对数据集onehot编码

image-20221001142200897

步骤3:使用分类树模型和Kfold验证onehot和labelencoder在验证集的精度。

这里的树模型我们使用lgb(个人倾向于喜欢用这个),然后作5折交叉验证,labelencoder的结果如下:

image-20221001135716486

onehot编码之后的结果如下:

image-20221001142126800

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值