带你走入Kaggle 竞赛top20%的分析方法

Kaggle (Bike Sharing Demand20%

题目https://www.kaggle.com/c/bike-sharing-demand

Github地址:https://github.com/cqychen/mykaggle/tree/master/Bike%20Sharing%20Demand

强调,特征决定结果的高度,模型决定如何逼近这个高度

数据探探

这是一个关于自行车租赁预测的题目,相当于国内的ofo,摩拜单车啦。

You are provided hourly rental data spanning two years. For this competition, the training set is comprised of the first 19 days of each month, while the test set is the 20th to the end of the month. You must predict the total count of bikes rented during each hour covered by the test set, using only information available prior to the rental period.

 

训练集提供了一个月的前19天的数据使用情况,测试集提供后面20号以后的数据我们主要的任务就是预测20号以后的使用量。  

列名

desc

中文描述

datetime

hourly date + timestamp  

小时日期 和时间戳

season

1 = spring, 2 = summer, 3 = fall, 4 = winter

1:春天  2:夏天  3:秋天  4:冬天

holiday

whether the day is considered a holiday

当天是否是节假日

workingday

whether the day is neither a weekend nor holiday

当天是否是工作日

weather

1: Clear, Few clouds, Partly cloudy, Partly cloudy 2: Mist + Cloudy, Mist + Broken clouds, Mist + Few clouds, Mist 3: Light Snow, Light Rain + Thunderstorm + Scattered clouds, Light Rain + Scattered clouds 4: Heavy Rain + Ice Pallets + Thunderstorm + Mist, Snow + Fog

1:晴,少云,部分多云,部分多云。2:薄雾+多云,薄雾+破碎的云,薄雾+少量的云,雾3:小雪,小雨+雷雨+散云,小雨+散云4:大雨+冰盘+雷雨+雾,雪+雾

atemp

temperature in Celsius

温度

atemp

"feels like" temperature in Celsius

感受到的温度

humidity

relative humidity

湿度

windspeed

wind speed

风速

casual

number of non-registered user rentals initiated

未注册用户的租赁数量

registered

number of registered user rentals initiated

注册用户的租赁数量

count

number of total rentals

总的租赁数量

数据总览

读入数据,看看大致信息:

带你走入Kaggle 竞赛top20%的分析方法_第1张图片

训练集数据共12列,没有数据缺失。哇咔咔

 带你走入Kaggle 竞赛top20%的分析方法_第2张图片

 测试集数据共9列,没有数据缺失。

 

数据明细看看

训练集数据:

带你走入Kaggle 竞赛top20%的分析方法_第3张图片

测试集数据:

带你走入Kaggle 竞赛top20%的分析方法_第4张图片

我们可以看到 在测试集中

Casual + register==count

带你走入Kaggle 竞赛top20%的分析方法_第5张图片

 

 

测试集和训练集合进行拼接,方便做特征工程:

 

带你走入Kaggle 竞赛top20%的分析方法_第6张图片

日期

我们知道日期的格式是如下:yyyy-MM-dd hh:mm:ss

日期这个东东,基本是要构造出如下的特征:

周几

季度

小时

一年第多少

一年的第多少天

同时可以看到

代码如下

all_df["date"] = all_df.datetime.apply(lambda x : x.split()[0])

all_df["monthnum"] = all_df.datetime.apply(lambda x : int(x.split()[0].split('-')[1]))

all_df["daynum"]=all_df.datetime.apply(lambda x : int(x.split()[0].split('-')[2]))

 

dailyData["hour"= dailyData.datetime.apply(lambda x : int(x.split()[1].split(":")[0]))

dailyData["weekday"= dailyData.date.apply(lambda dateString : calendar.day_name[datetime.strptime(dateString,"%Y-%m-%d").weekday()])

带你走入Kaggle 竞赛top20%的分析方法_第7张图片

带你走入Kaggle 竞赛top20%的分析方法_第8张图片

带你走入Kaggle 竞赛top20%的分析方法_第9张图片

带你走入Kaggle 竞赛top20%的分析方法_第10张图片

带你走入Kaggle 竞赛top20%的分析方法_第11张图片

带你走入Kaggle 竞赛top20%的分析方法_第12张图片

带你走入Kaggle 竞赛top20%的分析方法_第13张图片

带你走入Kaggle 竞赛top20%的分析方法_第14张图片

带你走入Kaggle 竞赛top20%的分析方法_第15张图片

带你走入Kaggle 竞赛top20%的分析方法_第16张图片

带你走入Kaggle 竞赛top20%的分析方法_第17张图片

带你走入Kaggle 竞赛top20%的分析方法_第18张图片

带你走入Kaggle 竞赛top20%的分析方法_第19张图片

带你走入Kaggle 竞赛top20%的分析方法_第20张图片

带你走入Kaggle 竞赛top20%的分析方法_第21张图片

带你走入Kaggle 竞赛top20%的分析方法_第22张图片

带你走入Kaggle 竞赛top20%的分析方法_第23张图片

特征工程比模型重要的多,数据的认识非常重要,非常重要非常重要!!!

参考连接

https://www.kaggle.com/viveksrinivasan/eda-ensemble-model-top-10-percentile/notebook

https://www.kaggle.com/c/bike-sharing-demand/discussion/11525

推荐阅读:

python量化学习篇


python学习篇


机器学习篇

 

你可能感兴趣的:(带你走入Kaggle 竞赛top20%的分析方法)