【机器学习】线性回归之预测商品的销售额
目录
情境:
一、读取数据
二、分析数据
1、热度图 heatmap()
2、散点图
三、特征集和标签集
1、学会查看数据
2、拆分训练集和测试集
四、线性回归
五、开始预测
六、评价测度
七、模拟效果对比图 ROC曲线
八、给模型打分
情境:
一家商店为了扩大销售额,进行了宣传
采用了以下三种方式:
微信:wechat
报纸:newspaper
电视:tv
而销售额:sales(千元)
一、读取数据
数据的读取 pandas 的 read_csv
nidm 阶
shape (200,4)两百行4列
head()前五条数据
tail()后五条数据
import pandas as pddata = pd.read_csv('./data/advertising.csv')
print(data.ndim) # 维度(阶
print(data.shape) # (200,4) 说明有两百条数据,4列 其中第四列sales作为标签 ,其他三个为特征
data.head() # 显示前五条数据
二、分析数据
1、热度图 heatmap()
# 分析数据
# 可视化数据
# 数据的相关分析
# seaborn 包,这个包数据可视化效果比较好,其实它也属于Matplotlib的内部包,但是需要单独安装
有关seaborn包:
Seaborn的简述_熊️兔的博客-CSDN博客_seaborn
Seaborn详细教程-数据分析必备手册(2万字总结)seaborn中文手册
import matplotlib.pyplot as plt
import seaborn as sns
# sns.heatmap() 热度图
# cmap:设置颜色带的色系
# annot:是否显示数值注释
sns.heatmap(data.corr(),annot=True,cmap='RdBu_r') # 使用data.corr()计算相关系数
plt.show()
# 相关性越高,颜色越深
可以看出,微信宣传效果比较好
2、散点图
#显示销量和各种广告投放量的散点图
# 参数size,aspect 来调节显示的大小和比例
# kind = 'reg',可以添加一条最佳拟合直线和95%的置信带
sns.pairplot(data,x_vars=['wechat', 'newspaper', 'tv'],y_vars='sales',size=7, aspect=0.9,kind='reg')
plt.show()
# 根据结果可以看出wechat 线性关系比较强
可以看到,wechat的拟合线性比较好
三、特征集和标签集
1、学会查看数据
from IPython.core.display_functions import display# 线性回归模型
'''
优点:快速并且没有调节参数
缺点:相比其他复杂点的模型,它的预测准确率不高,而且它假设特征和标签之间有线性关系,对一些非线性的关系,不能很好进行数据建模
'''# drop 默认删除行,删除列的话加上 “axis=1”
X = data.drop('sales',axis=1) # 去掉最后一列标签
print('特征集前五条数据\n',X.head())
y = data['sales'] # 从Dataframe 中选择一个Series
display('标签集前五条',y.head())
2、拆分训练集和测试集
这里用了sklearn的拆分工具
from sklearn.model_selection import train_test_split# 构建训练集和测试集
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=1,train_size=0.7) # train 0.7,test 0.3
# print(X_train.shape) # (140,3)
# print(X_test.shape) # (60, 3)
display(X_train)
四、线性回归
# sklearn 的线性回归
from sklearn.linear_model import LinearRegressionlinreg = LinearRegression()
model = linreg.fit(X_train,y_train)
print("模型:",model)
print(linreg.coef_) # w
print(linreg.intercept_) # b
输出:
模型: LinearRegression()
[0.01170566 0.01323019 0.00058797]
4.599516690419023
五、开始预测
# 预测
y_pred = linreg.predict(X_test)
display(y_pred)
六、评价测度
1、线性回归常用的三种:
- 平均绝对误差(MAE)
- 均方误差(MSE)
- 均方根误差(RMSE)
# RMSE
from sklearn import metrics
import numpy as npsum = 0
for i in range(len(y_pred)):sum += (y_pred[i] - y_test.values[i]) **2sum_erro = np.sqrt(sum / len(y_test))
print(sum_erro)# 上面的代码可以直接这样:
print(np.sqrt(metrics.mean_squared_error(y_test, y_pred)))
输出:
1.523063932837681
1.523063932837681
七、模拟效果对比图 ROC曲线
有关ROS曲线:机器学习之ROC曲线_荒野雄兵的博客-CSDN博客_机器学习roc曲线
plt.figure()
plt.plot(range(len(y_pred)), y_pred, 'b', label="predict")
plt.plot(range(len(y_pred)), y_test, 'r', label="test")# 'upper right', 'upper left',
# 'lower left', 'lower right', 'right',
# 'center left', 'center right', 'lower center',
# 'upper center', 'center'
plt.legend(loc="upper left") # 显示图中的标签 -->左上角
plt.xlabel("number")
plt.ylabel('value')
plt.show()
八、给模型打分
linreg.score(X_test, y_test)
可以看到还不错
【机器学习】线性回归之预测商品的销售额相关推荐
- 作业——机器学习教你预测商品销售额
(一)作业要求 advertising.csv文件(文件私聊可取)是某商品的广告推广费用(单位为元)和销售额数据(单位为千元),其中每行代表每一周的广告推广费用(包含微信.微博和其他类型三种广告费用) ...
- 一元线性回归模型预测双十一销售额
又是一年一度"剁手节"有人说感到今年的双十一冷清了许多,很多人都很好奇今年双十一会产生多少交易额?SPSAU这里打算科学预测一下今年的天猫"双十一"的销售额. ...
- python 预测算法_通过机器学习的线性回归算法预测股票走势(用Python实现)
本文转自博客园,作者为hsm_computer 原文链接:https://www.cnblogs.com/JavaArchitect/p/11717998.html在笔者的新书里,将通过股票案例讲述P ...
- 机器学习(二)多元线性回归算法预测房价
机器学习(二)多元线性回归算法预测房价 本篇文章已作为重庆交通大学19级微课<机器视觉>大作业提交,提前声明,避免抄袭误会 "garbage in garbage out&quo ...
- 机器学习线性回归实践,广告投放收益预测,手写梯度下降
机器学习线性回归模型,广告投放与收益预测,梯度下降法python实现 数据集介绍 代码 数据导入 特征缩放 绘制三个不同地方广告投入与收益的散点图 数据处理 添加偏置列 定义代价函数 梯度下降 初始化 ...
- 通过机器学习的线性回归算法预测股票走势(用Python实现)
在本人的新书里,将通过股票案例讲述Python知识点,让大家在学习Python的同时还能掌握相关的股票知识,所谓一举两得.这里给出以线性回归算法预测股票的案例,以此讲述通过Python的sklearn ...
- python计算股票趋势_通过机器学习的线性回归算法预测股票走势(用Python实现)...
1 波士顿房价数据分析 安装好Python的Sklearn库后,在安装包下的路径中就能看到描述波士顿房价的csv文件,具体路径是"python安装路径\Lib\site-packages\s ...
- 机器学习——线性回归、房价预测案例【正规方案与梯度下降】
# coding:utf-8 # 1.获取数据集 #2.数据基本处理 #2.1.数据划分 #3.特征工程--标准化 #4.机器学习(线性回归) #5.模型评估 from sklearn.dataset ...
- 4.Spark 学习成果转化—机器学习—使用Spark ML的线性回归来预测房屋价格 (线性回归问题)
本文目录如下: 第4例 使用Spark ML的线性回归来预测房屋价格 4.1 数据准备 4.1.1 数据集文件准备 4.1.2 数据集字段解释(按列来划分) 4.2 使用 Spark ML 实现代码 ...
最新文章
- 学习笔记(2)IPC机制
- Python OpenCV中色彩空间的转换类型
- MyBatis的DAO接口中参数传递建议使用map类型的原因
- unity3d 数学的数学基础和辅助类
- Java基础01 从HelloWorld到面向对象
- SpringBoot配置RestTemplate的代理和超时时间
- 天池NLP赛道top指南
- CSSS - CSS幻灯片
- android 应用程序Activity之间数据传递与共享的几种途径
- 如何将NEF格式文件转换为JPG格式
- 合成孔径 saft matlab,合成孔径聚焦超声成像研究
- 如何键盘锁定计算机,如何锁定电脑键盘或鼠标防止误操作
- 四叶草python_标签:python - 四叶草
- 如何提高游戏中的打击感?
- Simulink学习案例2
- matlab如何打开flt文件,科学网—grb文件的读取 (更新) - 张凌的博文
- sphinx安装及使用
- 7-6,输入厘米,输出英尺英寸
- 与Mr. Zuul男神的亲密接触 | 温哥华峰会Day3
- LRU算法,走迷宫,数根,星际战争
热门文章
- 电机控制第一天(上):电机基础知识
- 移动端调试工具vConsole与Eruda
- ET框架---PlayerComponent学习笔记
- Ping通外网百度,但是打不开网页(能登入QQ和微信,但是打不开网页)
- LzDingTalk-免费的钉钉机器人框架
- idea中文件编码方式_idea设置编码格式为utf8
- 苹果开发者账号中,测试机器列表达到100台上限,如何删除一些设备、添加新设备?
- latex排版论文(学习笔记)
- 投资之路,简要反思:成功的故事,难以复制。失败的经验,刻骨铭心。
- 三秒钟自动完成票据识别录入,“财务机器人”了解一下