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