線性模型
為線性模型
分類和回歸的區(qū)別
分類:離散
回歸:連續(xù)
本文主要關(guān)注線性回歸模型
常用線性回歸模型類型
OLS(最小二乘法)
通過(guò)最小化 真值和預(yù)測(cè)值之間 的差 的平方和 找到超參數(shù)
或者用公式表示為
嶺(Ridge)回歸
在最小二乘法的基礎(chǔ)上增加了一個(gè)回歸目標(biāo)函數(shù)的項(xiàng)帝洪,這個(gè)項(xiàng)用于克服最小二乘法回歸中高維度產(chǎn)生的過(guò)擬合問(wèn)題
目標(biāo)函數(shù)用公式表示為
Lasso回歸
在嶺回歸模型中常常得到不重要參數(shù)為接近0的很小的數(shù)的情況纲酗,而不是直接讓這些參數(shù)置0以直接簡(jiǎn)化模型,因此使用絕對(duì)值代替平方對(duì)加項(xiàng)進(jìn)行優(yōu)化贸伐,得到Lasso回歸模型
目標(biāo)函數(shù)用公式表示為
線性回歸模型的代碼實(shí)現(xiàn)
使用sklearn庫(kù)進(jìn)行實(shí)現(xiàn)的線性回歸模型
# To add a new cell, type '# %%'
# To add a new markdown cell, type '# %% [markdown]'
# %%
import sklearn
import numpy as np
from sklearn import linear_model
# %%
X = np.array([[0, 1], [3, -2], [2, 3]])
y = np.array([0.5, 0.3, 0.9])
# %%
linear_reg = linear_model.LinearRegression()
# %%
linear_reg.fit(X, y)
# %%
print(linear_reg.intercept_, linear_reg.coef_)
# 0.36666666666666675 [0.06666667 0.13333333]
# %%
print(linear_reg.predict(np.array([[1,2]])))
# [0.7]
其他回歸模型包括Ridge回歸和Lasso回歸可直接使用scipy的模型
from sklearn.linear_model import Ridge
from sklearn.linear_model import Lasso
直接進(jìn)行擬合即可
scipy中還有其他的線性回歸器如下圖所示
scipy中的線性回歸器
如想使用編程語(yǔ)言對(duì)最小二乘法線性回歸手動(dòng)實(shí)現(xiàn)勘天,可參考:《數(shù)值分析》中 線性回歸:最小二乘法 章節(jié)