基于python的kaggle练习(一)-共享单车数据分析

前沿

提供两年的每小时租金数据。训练集是每个月的前19天,而测试集是每月的20号到月底。必须仅使用租借期之前的可用信息来预测测试集涵盖的每个小时内租用的自行车总数。

一、载入数据

1.1收集数据

一般而言,数据由甲方提供。若甲方不提供数据,则需要根据相关问题从网络爬取,或者以问卷调查形式收集。本次共享单车数据分析项目数据源于Kaggle(https://www.kaggle.com/c/bike-sharing-demand/data)。

1.2 载入数据

// 载入工具包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime
import matplotlib
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.metrics import r2_score
%matplotlib inline
// 载入数据
train=pd.read_csv('/python/bike-sharingdemand/train.csv')
test=pd.read_csv('/python/bike-sharing-demand/test.csv')
//查看数据前5行
train.head()
//查看数据基本信息
train.info()
test.info()

训练数据共有12列,10886样本,并且数据无缺失;测试数据共有9列,6493样本。测试数据相对于训练数据,缺少casual(未注册用户租车数量)、registered(注册用户租车数量)、count(总租车数量)三列,这需要通过最终的模型预测得出。

特征说明

datetime:时间。年月日小时格式
season:季节。1:春天;2:夏天;3:秋天;4:冬天
holiday:是否节假日。0:否;1:是
workingday:是否工作日。0:否;1:是
weather:天气。1:晴天;2:阴天;3:小鱼或小雪;4:恶劣天气
temp:实际温度
atemp:体感温度
humidity:湿度
windspeed:风速
casual:未注册用户租车数量
registered:注册用户租车数量
count:总租车数量

二、数据预处理

2.1数据缺失值处理

//查看数据基本信息
train.info()
test.info()

数据没有缺失值,因此不需要进行缺失值的处理

2.2 数据异常值处理

//数据描述
train.describe()

在这里插入图片描述
可以发现最终需要预测的租赁量(count)的标准差很大。通过画图看下分布:

plt.rcParams['font.family'] = ['Arial Unicode MS']    #mac和windows有区别,本次使用的是mac
plt.rcParams['axes.unicode_minus']=False    #可以显示负数
plt.figure(figsize=(10,10))
plt.hist(train['count'],bins=20)
plt.title('租赁量分布趋势')
plt.xlabel('租赁量(count)')

在这里插入图片描述
整体的分布倾斜比较严重,需要处理一下,以便于最后不会过拟合。
处理方法:将3个标准差以外的数据排除,然后对count做log变换,并查看变换后的分布。

#排除3个标准差以外的数据
train=train[np.abs(train['count']-train['count'].mean())<=3*train['count'].std()]
fig=plt.figure()
plt.subplot(1,1,1)
sns.distplot(train['count'])
plt.title(
  • 10
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值