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

文章目录

  • 前言
  • 一、数据清洗
    • 查看特征与label的关联程度
    • 查看特征自身的差异性。
    • 特征筛选
  • 二、引入模型
    • 1.选择多元线性回归模型
    • 2.尝试预测
  • 总结

前言

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

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


一、数据清洗

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

查看特征与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)


2.尝试预测

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

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

最终得到预测数据


总结

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

机器学习练手---负荷数据预测相关推荐

  1. 42个机器学习练手项目

    从个性化推送(今日头条).自拍美颜.自动翻译,到无人驾驶.图像识别等诸多领域--人工智能已经渗透进我们生活的方方面面,人工智能背后的机器学习和深度学习技术,也成为了"高薪"的代名词 ...

  2. 学习java的第一个实践练手项目---彩票预测系统

    这个项目用了8个晚上(20:00-23:00)加上2个白天完成. 一.所用知识点 1.java语言基础 2.多线程 3.Swing控件 4.数据库技术(MySQL) 二.项目目标 1.通过登录窗体点击 ...

  3. 智能优化与机器学习结合算法实现数据预测matlab代码清单

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  4. 推荐:26种NLP练手项目(代码+数据)

    1.分词 Word Segmentation chqiwang/convseg ,基于CNN做中文分词,提供数据和代码. 对应的论文Convolutional Neural Network with ...

  5. 机器学习没有项目练手?黄博邀您参加天池视觉AI比赛了!还有比赛奖金等你来拿...

    机器学习需要实战,没有项目练手?黄博邀您参加天池视觉AI比赛了!还有奖金哦!百万奖金等你来拿! 2019中国国际智能产业博览会上,重庆市大数据应用发展管理局.重庆市江津区人民政府联合阿里云共同启动首届 ...

  6. 神经网络预测模型算法_MATLAB Elman神经网络的数据预测—电力负荷预测模型研究...

    点击上方蓝字关注"公众号" MATLAB  Elman神经网络的数据预测-电力负荷预测模型研究 负荷预测的核心问题是预测的技术问题,或者说是预测的数学模型. 传统的数学模型是用显示 ...

  7. 基于机器学习的时序数据预测方法

    预测模型建模 时序数据的预测通常建模为利用历史数据值预测未来的数据走势. 简单的数学表示: x => S => x^' 其中: x = {x_1,x_2,-,x_t} 表示历史数据, S ...

  8. 机器学习实战(八)——预测数值型数据:回归

    机器学习实战(八)--预测数值型数据:回归 一.用线性回归找到最佳拟合曲线 1.线性回归与非线性回归 线性回归:具体是可以将输入项分别乘上一些常量,然后再进行求和得到输出 非线性回归:输入项之间不只是 ...

  9. 东北大学大数据班机器学习大作业——印度房价预测

    目录 1.项目背景. 3 2.实验描述. 3 3.实验目的. 3 4.实验环境. 3 5.实验原理. 4 5.1 决策树. 4 5.2 随机森林. 4 5.3 数据预处理与特征工程. 4 5.4 主成 ...

最新文章

  1. linux下的软硬资源限制,关于ulimit命令修改软硬资源大小说明及正确修改软硬资源限制数配置...
  2. nginx 配置并发数限制
  3. 【转】细说.NET中的多线程 (五 使用信号量进行同步)
  4. Centos7 安装Docker(v2021 version 20.10.5) 并通过docker-compose运行TiDB集群
  5. MONO Jexus部署最佳体验
  6. php站群系统,ThinkPhp内核逐鹿泛目录站群系统 毫秒级加载速度 丰富的内容库搭配(价值8000元)...
  7. 用Prime95来做linux下CPU压力测试
  8. python自动下载图片_python简易爬虫来实现自动图片下载
  9. 思维挑战6:奔跑的小人
  10. 档案管理系统操作说明
  11. 一些可以使用的网上图片地址
  12. java中字输入输出异常_Java:详解Java中的异常(Error与Exception)
  13. IPv6和IPv4共存技术之 ISATAP隧道技术
  14. 云效·Insight(效能洞察)一款面向企业研发管理层的研发效能数字化度量服务
  15. 亚利桑那州立大学计算机专业,美国大学亚利桑那州立大学计算机科学专业课程设置...
  16. 链路层交换机及和路由器的比较
  17. XILINX XST综合的选项的含义
  18. mysql“Access denied for user 'root'@'IP地址'
  19. 如何利用拼音首字母查询数据库
  20. Python 工具和库整理

热门文章

  1. Latex 常用括号类表达式
  2. 典型工业数据分析场景解读:机械设备振动监测和故障诊断
  3. 人工智能工程师的三个层次
  4. 止盈快回撤小但容易错过行情,怎样处理才能恰到好处?
  5. Nacos集群(三节点)部署后总是出现某个节点或者某两个节点DOWN或者变成SUSPICIOUS
  6. PDN设计关键点之滤波电容位置
  7. Python pandas 读取csv/txt数据文件 python读取csv/txt文件
  8. linux系统下怎么安装.deb文件?
  9. Dagger2与AndroidInjector
  10. CSS 行内元素设置高度