視頻詳解:01-機器學習-線性回歸-LinearRegress
1、什麼是線性回歸?
- 線性:兩個變量之間的關係是一次函數關係的
- 非線性:兩個變量之間的關係不是一次函數關係的
2、應用場景
- 房價預測
- 流量預測
- 票房預測
- ....
3、表達式&優化函數
- 表達式: =+
w是x的係數,b是偏置項
- 目標函數(Loss Function)
- 利用梯度下降法求 J 的最小值,從而推導出w和b
4、為什麼需要正則化
4.1 L1正則化(Lasso回歸)
L1正則化項:
L1如何解決過擬合問題:
- 特徵稀疏性
4.2 L2正則化(嶺回歸)
L2正則化項:
L2如何解決過擬合問題
- 擬合過程中通常都傾向於讓權值儘可能小
- 參數很小,數據偏移得多一點也不會對結果造成什麼影響,魯棒性更強
- 參數:=0.01
代碼實現:房價回歸預測-LinearRegression
# encoding: utf-8
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# 1.獲取數據集
boston_data = load_boston()
x = pd.DataFrame(boston_data.data) # 波士頓房價data
y = boston_data.target # 波士頓房價真實值
x.columns = boston_data.feature_names # 特徵賦值
#特徵14個:
#CRIM: 城鎮人均犯罪率
#ZN: 住宅用地所占比例
#INDUS: 城鎮中非住宅用地所占比例
#CHAS: 虛擬變量,用於回歸分析
#NOX: 環保指數
#RM: 每棟住宅的房間數
#AGE: 1940 年以前建成的自住單位的比例
#DIS: 距離 5 個波士頓的就業中心的加權距離
#RAD: 距離高速公路的便利指數
#TAX: 每一萬美元的不動產稅率
#PTRATIO: 城鎮中的教師學生比例
#B: 城鎮中的黑人比例
#LSTAT: 地區中有多少房東屬於低收入人群
#MEDV: 自住房屋房價中位數(也就是均價)
# 2.劃分訓練集、測試集
xtrain,xtest,ytrain,ytest = train_test_split(x,y,test_size=0.2,random_state=125)
# 3.建立線性回歸模型
model = LinearRegression().fit(xtrain,ytrain)
# 4.1 獲取預測值
y_pred = model.predict(xtest)
y_w = model.coef_
# 4.4 將回歸係數與特徵對應
compare_feature = [*zip(xtrain.columns,y_w)]
# 5.預測結果可視化
plt.rcParams['font.sans-serif'] = 'SimHei'
fig = plt.figure(figsize=(10,6))
plt.plot(range(ytest.shape[0]),ytest,color='black',linestyle='-',linewidth=1.5)
plt.plot(range(y_pred.shape[0]),y_pred,color='red',linestyle='-.',linewidth=1.5)
plt.xlim((0,102))
plt.ylim((0,55))
plt.legend(['真實值','預測值'])
plt.show()
預測值&實際值效果圖: