首页 > 其他 > 详细

回归分析 | 使用Sklearn做线性回归分析及 rmse 和 mae 讲解

时间:2020-02-29 16:48:10      阅读:688      评论:0      收藏:0      [点我收藏+]

一 概述

  • 回归分析模型:销售额 =93765+0.3* 百度+0.15 * 社交媒体+0.05 *电话直销+0.02 * 短信
  • 线性回归
    • 研究自变量 x 对因变量 y 影响的一种数据分析方法
    • 可以表示为Y=ax+b+ε,其中Y为因变量,x为自变量,a为影响系数,b为截距,ε为随机误差。
  • 常见应用场景
    • 主要应用场景是进行预测和控制例如计划制定、KPI制定、目标制定等
    • 也可以基于预测的数据与实际数据进行比对和分析,确定事件发展程度并给未来行动提供方向性指导

二 案例演示

目的:计算各个宣传渠道对销售额的影响

1 预处理过的数据

技术分享图片

 

 2 相关性分析

df.corr()[[revenue]].sort_values(by=revenue, ascending=False)

技术分享图片

 

 3 线性回归分析 建模

  注意:数据有缺失会报错

1> 建模核心代码

from sklearn.linear_model import LinearRegression
line_model = LinearRegression()

# 设定因变量
y = df[revenue]
# 设定自变量
x = df[[local_tv,person,instore]]

a = line_model.fit(x,y)

2> 指标

自变量系数

line_model.coef_

截距

line_model.intercept_

 

4 模型评估

模型得分:score 越高越好

score = line_model.score(x,y)

利用特征去计算(预测)y 的预测值

prediction = line_model.predict(x)

计算误差

error = prediction - y

均方根误差 rmse 越小越好【后附公式】

rmse = (error**2).mean()**0.5

计算平均绝对误差 mae 越小越好【后附公式】

mae = abs(error).mean()

 

附:

1> 直接用 sklearn 中的方法计算 rmse 和 mae 

import numpy as np
from sklearn.metrics import mean_squared_error, mean_absolute_error

# 根均方误差(RMSE)
np.sqrt(mean_squared_error(y_true,y_pred))

# 平均绝对误差(MAE)
mean_absolute_error(y_true, y_pred)

 

2> 公式

技术分享图片

 

【标准差】是用来衡量一组数自身的离散程度,
【均方根误差】是用来衡量观测值同真值之间的偏差,它们的研究对象和研究目的不同,虽然计算过程有些相似

 

3> 可视化 API

import seaborn as sns
sns.regplot(local_tv, revenue, df)

技术分享图片

 

回归分析 | 使用Sklearn做线性回归分析及 rmse 和 mae 讲解

原文:https://www.cnblogs.com/ykit/p/12383554.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!