数据分析之回归分析

回归分析是研究自变量和因变量之间数量变化关系的一种分析方法。

回归分析包括线性回归和非线性回归。线性回归包括简单线性回归和多重线性回归。

现有一份某超市的广告费用和销售额的数据,求广告费用和销售额之间的线性关系。
数据源:https://pan.baidu.com/s/1a9vrAcz2CxaqG1EFJSqMZg

代码如下:

一、导入数据

import pandas as pd
import numpy as np

#导入数据
data=pd.read_csv('C:/Users/86138/Desktop/PDABook/wu/5.10.2 简单线性回归分析/线性回归.csv')
#查看数据基本信息
print(data.head())
print(data.info())
#修改列名
data.columns=['yuefen','guanggao','xiaoshoue']
#指定x、y
x=np.array(data['guanggao']).reshape(-1,1)
y=np.array(data['xiaoshoue']).reshape(-1,1)

输出


image.png

二、绘制散点图

#绘制散点图
import matplotlib.pyplot as plt
plt.scatter(x,y)
plt.show()

输出


image.png

从散点图可看出,两者有明显的线性关系。

三、计算相关系数

a=data['guanggao'].corr(data['xiaoshoue'])
print(a)

输出相关系数为0.94,高度相关。

四、建立模型

#建立模型
from sklearn.linear_model import LinearRegression
IrModel=LinearRegression()
IrModel.fit(x,y)
print(IrModel.coef_)            #系数
print(IrModel.intercept_)       #截距,常数项

输出


image.png

所以,销售额y与广告费用x之间的线性关系为:
y=17.32x + 291.90

模型拟合度:

print(IrModel.score(x,y))       #模型拟合度R方

得到R方为0.88,拟合效果非常不错。R方越接近1,表示回归模型拟合效果越好。
(R方的值等于y值和模型计算出来的y_值的相关系数R的平方)

预测:

pred_y=IrModel.predict(pred_x)  #预测,输入要预测的pred_x值,得到预测y值
print(pred_y)

第一次运行时报错:


image.png

这是由于在新版的sklearn中,所有的数据都应该是二维矩阵,哪怕它只是单独一行或一列(比如前面做预测时,仅仅只用了一个样本数据),所以需要使用.reshape(1,-1)进行转换,具体操作如下。
需改为


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容