回歸分析 | 使用Sklearn做線性回歸分析及 rmse 和 mae 講解


一 概述

  • 回歸分析模型:銷售額 =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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM