Kaggle
Kaggle 成立于2010年,是一个进行数据发掘和预测竞赛的在线平台。
从公司的角度来讲,可以提供一些数据,进而提出一个实际需要解决的问题;从参赛者的角度来讲,他们将组队参与项目,针对其中一个问题提出解决方案,最终由公司选出的最佳方案可以获得5K-10K美金的奖金。
Kaggle上的竞赛有各种分类,例如奖金极高竞争激烈的的 “Featured”,相对平民化的 “Research”等等。但他们整体的项目模式是一样的,就是 通过出题方给予的训练集建立模型,再利用测试集算出结果用来评比。
Kaggle 竞赛另一个有趣的地方在于每个人都有自己的Profile,
上面会显示所有自己参与过的项目、活跃度、实时排位、历史最佳排位等,不仅看上去非常有成就感,更能在求职和申请的时候起到Certificate的作用。
以上摘自 Kaggle入门,看这一篇就够了
利用 ChatGPT 解决竞赛问题
有了 ChatGPT 的好处就是,很多东西的门槛都降低了,我之前从未了解过 Data Science,
也可以利用 ChatGPT 来帮我写代码,解决 Kaggle 竞赛问题了。
这次的竞赛是「帮助保险公司预测保单是否是欺诈保单」。
竞赛地址: https://www.kaggle.com/c/fraud-detection-in-insurance-claims
ChatGPT 提问记录
- 你现在是一个数据建模人员,要对保险反欺诈进行预测。数据包括下面两部分:1.训练集 train.csv(40个字段,有fraud_reported字段) 2.测试集 test.csv(39个字段,没有fraud_reported字段)。如果你明白了需求,请回复明白。
- 首先需要你对数据进行加载,分别得到 train 和 test,给我对应的 python 代码。
- 将 train 和 test 合并成一个数据集 data
- 对 data 进行数据探索,包括:缺失值,字段的唯一值个数
- 对 data,去掉没有用的字段 ‘_c39’
- 筛选 data 中的字符串字段,赋值给 cat_columns
- 对 data 中的这些字符串字段,计算唯一值个数,并按照唯一值个数从大到小排序
- 将 data 中的 policy_bind_date 和 incident_date 转换为日期类型
- 计算 policy_bind_date 中的最小值
- 对 data 新建字段 policy_bind_date_diff,等于 (policy_bind_date - policy_bind_date 中的最小值) 的天数
- 对 data 新建字段 incident_date_diff,等于 (incident_date - incident_date 中的最小值) 的天数
- 去掉 data 中的两个字段:policy_bind_date,incident_date
- 如何将 data 中的所有字符串类型字段转换为数值类型
- 使用标签编码,将 data 中的所有字符串类型的字段转换为数值类型
- 之前 data 是由 train 和 test 合并来的,现在要把他拆分回 train 和 test
- 原来的数据里面没有 is_train
- 不对,我知道原来 train 的行数
- 获取 train 的行数
- 使用 LightGBM 模型,针对 train 进行建模,目标字段为 fraud_reported,对 test 进行预测
- 读取 sampleSubmission.csv,将 fraud_reported 字段赋值为 y_pred
- 我想从训练出来的 gbm 模型中洞察重要的特征,将这些特征进行可视化
- LightBGM 模型的原理是什么
解决此次竞赛问题的总体思路
- 数据清洗
- train, test 数据合并
- 数据探索(缺失值、唯一值个数)
- 字符串类型字段转数值类型
- 对训练集建模
- 对测试集预测
最后,还可以可视化的查看训练出的模型中,有哪些重要的特征,
从而看出在判别保单是否为欺诈保单时,哪些特征是更重要的。