机器学习——共享的单车实战演练

数据

数据下载地址 http://archive.ics.uci.edu/ml/datasets/Bike+Sharing+Dataset

案例分析

1.拿到这个数据需要删除那些没有用的列,比如序号
2.进行独热编码
3.进行多项式扩展
4.标准化
5.切分数据集
6.建立模型求出数据

代码如下

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.preprocessing import OneHotEncoder, PolynomialFeatures, StandardScaler
# 读取数据
path = '../../datas/hour.csv'
data = pd.read_csv(path)

# 处理数据
# 删除无用列
data.drop(columns=["instant", "dteday", "casual", "registered"], inplace=True)

# 独热编码
# 提取要进行独热编码的列
hot = data[["season", "mnth", "hr", "weekday"]]
hotCoder = OneHotEncoder(sparse=False)
hot = pd.DataFrame(hotCoder.fit_transform(hot))

# 删除掉独热编码的列
data.drop(columns=["season", "mnth", "hr", "weekday"], inplace=True)

# 多项式扩展
ploy = data[["weathersit", "temp", "atemp", "hum", "windspeed"]]
ployCoder = PolynomialFeatures(degree=2, interaction_only=False, include_bias=False)
ploy = pd.DataFrame(ployCoder.fit_transform(ploy), columns=ployCoder.get_feature_names())

# 标准化
ssCoder = StandardScaler()
ploy = pd.DataFrame(ssCoder.fit_transform(ploy), columns=ployCoder.get_feature_names())

# 删掉多项式扩展的列
data.drop(columns=["weathersit", "temp", "atemp", "hum", "windspeed"], inplace=True)

# 合并
df = pd.concat([hot, ploy, data], axis=1)

# 构建XY
X = df.iloc[:, :-1]
Y = df.iloc[:, [-1]]

# 切分数据集
train_x, test_x, train_y, test_y = train_test_split(X, Y, test_size=0.3, random_state=2)

# 训练LinearRegression模型
model = LinearRegression()
model.fit(train_x, train_y)
print('LinearRegression精度为:', model.score(test_x, test_y))

# 训练Ridge模型
model = Ridge()
model.fit(train_x, train_y)
print('Ridge精度为:', model.score(test_x, test_y))

效果

LinearRegression精度为: 0.695209732049
Ridge精度为: 0.695128876927
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值