首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kaggle Bike Sharing Demand经验分享

在这个特别的日子里,祝大家1024节日快乐,今天听朋友说,月入3w的才是程序员,3w以下的,统称码农,听完这个我内心是崩溃的,希望大家,都能成为优秀的程序员。前言

秉持着实践出真知理念,在系统的学习了公司CTO王博士整理的MachineLearning相关的理论知识后,作为领先的AI公司,觉得必须得为前一阶段的学习做点儿什么,和同事沟通,一起组织了一波开发部门内部的数据挖掘比赛,题目为kaggle上的比赛题Bike Sharing Demand,虽然公司项目比较忙,好在中间有个国庆节,于是花了2天时间来研究之前的内容,利用这次数据挖掘比赛来进行实践。

目前还没有到研究算法内部的时候和阶段,引用Google的一句的话:“ 像一个优秀的工程师一样使用机器学习,而不要像一个机器学习专家一样使用机器学习方法。”

根据平时的经验,先把程序跑起来,再去研究内部结构等,能够更快更好的帮助自己理解。

话不多说,接下来,就开始理论实践。

python环境的搭建我就不介绍了,使用工具为jupyter

1. 数据概览

通过调用pd.read_csv()函数,读取训练集和数据集。

通过对读取的数据集进行分析

使用MatplotLib实现数据可视化

季节与租车数量关系

天气与租车数量关系

温度和体感温度关系

结论:线性关系,取temp,舍弃atemp

温度与租车数量关系

节假日与租车数量关系

是否为工作日与租车数量关系

相对湿度和租车数量关系

风速和租车数量关系

对连续型的数据,生成热力图,查看结果

temp, humidity, windspeed 与 casual、registered、count 关系

temp 与 count 正相关

humidity 与 count 负相关

windspeed 与 count 相关度 0.1

结论:使用temp、humidity特征,windspeed特征剔除

2. 特征工程

1.将日期特征转换成如下特征:年/月/日/小时/周几,移除日期特征

生成热力图

2.对 season 和 weather 特征,进行 one-hot编码

3.删除 atemp-感知温度 这一特征

4.对 温度-temp、湿度-humidity 去均值和方差归一化 使用:StandardScaler,生成新特征,删除原特征

3. 模型选择评估

RMSLE (Root Mean Squared Logarithmic Error-对数均方根误差)

回归模型的性能评估

分别使用决策树模型、随机森林模型、SVM模型、多元线性模型,对数据集的数据进行训练和评估,建立基线

结果统计

4. 代码编写(后续放到GitHub中)1.整体思路

分别对 会员、非会员 租车数量进行预测,再进行相加

对训练数据的y做ln(y+1)转化,最后预测时再做exp(y^)-1就转回来了

2.建立基线

使用 RandomForestRegressor 默认参数,进行基线输出

基线为:0.39608

5. 模型改进

GridSearchCV 调参

通过搜索,找到的最优超参数组合(取前3进行交叉验证)

casual

0.820808374028 {'n_estimators': 60}

0.821432622293 {'n_estimators': 70}

0.821397182719 {'n_estimators': 90}

registered

0.686779000992 {'n_estimators': 100}

0.686710097073 {'n_estimators': 130}

0.686752188079 {'n_estimators': 140}

结果统计

casual[60]-registered[100].csv - 0.38663

casual[60]-registered[130].csv - 0.38708

casual[60]-registered[140].csv - 0.38663

casual[70]-registered[100].csv - 0.38661 - Min

casual[70]-registered[130].csv - 0.38723

casual[70]-registered[140].csv - 0.38663

casual[90]-registered[100].csv - 0.38712

casual[90]-registered[130].csv - 0.38728

casual[90]-registered[140].csv - 0.38703

最后,有幸在这次比赛中获得第一名,拿了个ikbc机械键盘,谢谢算法组同事加权的承让

最最最最后,借着之前学习的时间,准备开始通过书籍继续学习,后续有新的东西,再进行分享,希望大家都能享受学习的过程,向着自己梦想的方向,不断前行

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181024G1TRVZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券