从 0 到 1 走进 Kaggle

本文介绍了如何从零开始参与 Kaggle 数据科学竞赛,包括理解比赛、数据探索、特征工程和提交结果的全过程。通过实际案例——House Prices 预测,展示了数据预处理、缺失值处理、异常值处理和正态化等关键步骤,以及特征构造的方法。文章旨在提供一个完整的参赛流程和基础方法。
摘要由CSDN通过智能技术生成

本文结构:
- kaggle 是什么
- 如何参赛
- 解决问题一般步骤
- 进一步:
- 如何探索数据
- 如何构造特征
- 提交结果


kaggle 是什么?

Kaggle 是一个数据科学竞赛的平台,很多公司会发布一些接近真实业务的问题,吸引爱好数据科学的人来一起解决。
https://www.kaggle.com/

点击导航栏的 competitions 可以看到有很多比赛,其中正式比赛,一般会有奖金或者工作机会,除了正式比赛还有一些为初学者提供的 playground,在这里可以先了解这个比赛,练习能力,再去参加正式比赛。
https://www.kaggle.com/competitions


如何参赛?

以 playground 中的这个 House Prices 预测为例,
https://www.kaggle.com/c/house-prices-advanced-regression-techniques

Overview: 首先在 overview 中仔细阅读问题的描述,这个比赛是让我们预测房价,它会给我们 79 个影响房价的变量,我们可以通过应用 random forest,gradient boosting 等算法,来对房价进行预测。

Data:在这里给我们提供了 train 数据集,用来训练模型;test 数据集,用来将训练好的模型应用到这上面,进行预测,这个结果也是要提交到系统进行评价的;sample_submission 就是我们最后提交的 csv 文件中,里面的列的格式需要和这里一样。

Kernels:可以看到一些参赛者分享的代码。

Discussion:参赛者们可以在这里提问,分享经验。

Leaderboard:就是参赛者的排行榜。

参加 kaggle 最简单的流程就是:

第一步:在 Data 里面下载三个数据集,最基本的就是上面提到的三个文件,有些比赛会有附加的数据描述文件等。
第二步:自己在线下分析,建模,调参,把用 test 数据集预测好的结果,按照 sample_submission 的格式输出到 csv 文件中。
第三步:点击蓝色按钮 ’Submit Predictions’ ,把 csv 文件拖拽进去,然后系统就会加载并检验结果,稍等片刻后就会在 Leaderboard 上显示当前结果所在的排名位置。

上传过一次结果之后,就直接加入了这场比赛。正式比赛中每个团队每天有 5 次的上传机会,然后就要等 24 小时再次传结果,playground 的是 9 次。


解决问题一般步骤?

应用算法解决 Kaggle 问题,一般会有以下几个步骤:

  1. 识别问题
  2. 探索数据
  3. 数据预处理
  4. 将 train.csv 分成 train 和 valid 数据
  5. 构造新的重要特征数据
  6. 应用算法模型
  7. 优化模型
  8. 选择提取重要特征
  9. 再次选择模型,进行训练
  10. 调参
  11. 重复上述过程,进一步调优
  12. 预测

当然上面是相对细的分步,如果简化的话,是这么几大步:

  1. 探索数据
  2. 特征工程
  3. 建立模型
  4. 调参
  5. 预测提交

之前写过一篇文章,《一个框架解决几乎所有机器学习问题》
http://blog.csdn.net/aliceyangxi1987/article/details/71079448
里面的重点是介绍了常用算法模型一般需要调节什么参数,即第四步。

还有这篇,《通过一个kaggle实例学习解决机器学习问题》
http://blog.csdn.net/aliceyangxi1987/article/details/71079473
主要介绍了第三步建立模型的部分,包括 ensemble 的例子。

今天这篇文章算是一个补充,在观察数据和特征构造上学习几种常用的方式。


如何探索数据?

以 House prices 为例,探索数据常用方法有以下 6 步。
https://www.kaggle.com/c/house-prices-advanced-regression-techniques

1. 首先,在 data_description.txt 这里有对 79 个变量含义非常详细的描述

我们可以先通过阅读变量含义,根据常识猜测一下,哪些变量会对预测结果有比较重要的影响。

例如:
OverallQual: Overall material and finish quality 物料和质量应该是很重要的组成。
GrLivArea: Above grade (ground) living area square feet 面积也是明显的因素。
YearBuilt: Original construction date 时间也有影响。

2. 接着,对要预测的目标数据 y 有一个宏观的把握,这里是输出 summary,也可以用 boxplot,histogram 等形式观察

df_train['SalePrice'].describe()

count      1460.000000
mean     180921.195890
std       79442.502883
min       34900.000000
25%      129975.000000
50%      163000.000000
75%      214000.000000
max      755000.000000
Name: SalePrice, dtype: float64

count 就是有多少行观察记录,另外注意一下 min 并未有小于 0 的这样的不合理的数值。

3. 通过 Correlation matrix 观察哪些变量会和预测目标关系比较大,哪些变量之间会有较强的关联

#correlation matrix
corrmat = df_train
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值