1、数据分析--共享单车使用量预测

数据字段分析
列名 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:大雨+冰盘+雷雨+雾,雪+雾
temp 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 总的租赁数量

season是一种离散型数据,可以进行独热编码处理

holiday 和workingday是二分类问题

箱形图(Box-plot)

又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计 图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据 分布的特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的最大 值、最小值、中位数和两个四分位数(比如在0到100%中分成四份,25%就是下四分位数,75%就是上四分位数);然后, 连接两个四分位数画出箱子;再将最大值和最小值与箱 子相连接,中位数在箱子中间。(箱外的点越少效果越好)

共享单车租赁量预测

这是一个关于自行车租赁预测的题目,相当于国内的ofo,摩拜单车 通过对数据的预测,可以观测到共享单车在某个时间段的租赁数量,如果预测值和实际租赁值存在很大差异,就应该去调查情况,从而保证共享单车的正常运营
适用场景:
回归场景,需要对数据进行分析处理

import pandas as pd;
import numpy as np
import pylab
import calendar
import numpy as np
import pandas as pd
import seaborn as sn # matplotlib更高级封装的库
from scipy import stats
import missingno as msno #缺失值可视化处理
from datetime import datetime
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import GridSearchCV
pd.options.mode.chained_assignment = None # 避免pandas报错
warnings.filterwarnings("ignore") # 忽略警告
%matplotlib inline

一、检视数据信息

1.帮助我们查看字段的特征和字段的名称
2.查看是否存在所谓的缺失值(任何数据操作前都要先查看缺失值)
3.数据的分布状态

1和2步骤用info函数操作,3步骤用descivbe函数操作

本应用train和test两个数据集,因为kaggle上test数据上需要上网验证效果,所以在这里只使用train进行处理,所有数据都是每个月的前20天的信息

df=pd.read_csv("./input_data/train.csv")

查看样本的所有数据,能够查看数据字段进行分析
第一点,需要对datetime进行处理,
第二点, casual + register = count

df.head()

可以通过info方法,查看数据类型,是否有缺失值等信息
可以看出,用车量是casual 和registered 的总和(这样就可以把count保留,去除casual 和registered )

df.info()# information

RangeIndex: 10886 entries(样本数)

主要查看数据分布状态,可以更好的对数据进行分析

df.describe()

在进行数据分析之前,对数据进行切分,只查看训练集进行数据分析

from sklearn.model_selection import train_test_split
train_df, test_df = train_test_split(df)#将数据集进行切分,训练集和测试集比例为7.5:2.5

查看训练集信息

train_df.info() # 查看数据量

二、数据处理

为了能够统一设置数据集,将训练集和测试集设置名称,将进行拼接成整体
all_df统一设置, 后续做预处理时,需要对训练集和测试集统一处理
因为我们真实状态下观察样本信息时,只能通过训练集观察,如果观察测试集数据,现实工程中不可行,而且会影响模型预测精度(所有的分析都是针对训练集的)

test_df["traintest"]='test';
train_df["traintest"]='train';
all_df=pd.concat((train_df,test_df))

datetime字段比较复杂,将它进行切分处理
date 为日期
month 为英文
monthnum 为中文
lambda表达式,是一种匿名函数,参数: 方法体

all_df["date"] = all_df.datetime.apply(和map一样可以对函数的数值进行调整)(lambda x : x.split()(括号里没字符可以是把空格当作分割线)[0](0在这是提取了日期,后面的空格把时间分成第二个索引了))
all_df["month"] = all_df.date.apply(
    lambda dateString : 
    calendar(生成日期维度).month_name[da
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T o r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值