机器学习练手---负荷数据预测

纸上得来终觉浅,得知此事要躬行


前言

提示:这里可以添加本文要记录的大概内容:

简单记录一下机器学习课程中的练手小项目,记录自己的技术沉淀过程。


一、数据清洗

关于机器学习,我觉得更多的时间是花在了得到一份更好的特征上面,因此在进行模型训练之前,首先要做的就是得到一些自己满意的特征。所以先看一下已给数据的分布情况来为下一步处理做准备。

查看特征与label的关联程度

Rgr = pd.read_excel('data.xlsx', sheet_name='Regression')
# 查看数据特征
features = ['feature1', 'feature2', 'feature3', 'feature4', 'feature5', 'feature6', 'feature7',
            'feature8', 'feature9', 'feature10', 'feature11', 'feature12', 'feature13', 'feature14',
            'feature15', 'feature16', 'feature17', 'feature18']
pic = sns.pairplot(train_data, x_vars=features, y_vars='test', kind="reg", height=5, aspect=0.7)
pic.savefig('new.png')

最终的图片如下所示特征与标签关系

查看特征自身的差异性。

for i in range(len(features)):
    plt.plot(train_data[features[i]], label=features[i])

特征差异性

特征筛选

因为前面的特征体现出均有较好的线性关系,所以这里不再进行特征筛选,直接选用全部特征

二、引入模型

1.选择多元线性回归模型

代码如下(示例):

X = train_data[features[0:5] + features[5:12] + features[12:14] + features[16:]]
y = label
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=532)  # 选择20%为测试集
print('训练集测试及参数:')
print('X_train.shape={}\n y_train.shape ={}\n X_test.shape={}\n,  y_test.shape={}'.format(X_train.shape,
                                                                                            y_train.shape,
                                                                                              X_test.shape,
                                                                                              y_test.shape))
linreg = LinearRegression()
# 训练
model = linreg.fit(X_train, y_train)
print('模型参数:')
print(model)
# 训练后模型截距
print('模型截距:')
print(linreg.intercept_)
# 训练后模型权重(特征个数无变化)
print('参数权重:')
print(linreg.coef_)
y_pred = linreg.predict(X_test)
r2 = r2_score(y_test, y_pred)
print("r2 by hand:", r2)

rom曲线
运行结果

2.尝试预测

利用训练好的模型进行预测

predict = Rgr.iloc[1096:, :]
ready = predict[features]
y = linreg.predict(ready)
pd.DataFrame(y).to_excel('regression.xlsx')

最终得到预测数据
在这里插入图片描述


总结

非常简单的使用了回归模型进行简单的预测,大概知道机器学习就是一个非常简单的工具,只要数据找得好,预测准确度绝对嘎嘎厉害。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值