參考url:
最廣為人知的線性模型——將資料擬合成一條直線。
直線擬合的模型方程為y=ax+b,其中a是直線斜率,b是直線截距。
linearregression評估器除了簡單的直線擬合,它還可以處理多維度的線性回歸模型:
y=a0+a1x1+a2x2+...裡面有多個x變數
從幾何學的角度看,這個模型是擬合三維空間中的乙個平面,或者是為更高維度的資料點擬合乙個超平面。
通過這種方式,就可以用乙個linearregression評估器擬合資料的回歸直線、平面和超平面了。
通過基函式對元素資料進行交換,從而將變數間的線性回歸模型轉換為非線性回歸模型。
基函式回歸的多維模型是:y=a0+a1x1+a2x2+a3x3+...,其中一維的輸入變數x轉換成了x1、x2和x3。讓xn = fn(x),這裡的fn()是轉換資料的函式。
假如fn(x)=xn,那麼模型就會變成多項式回歸:y=a0+a1x+a2x2
+a3x3
+...這個模型仍然是乙個線性模型,也就是說係數an彼此不會相乘或相除。
我們其實是將一維的x投影到了高維空間,因此通過線性模型就可以擬合出x與y間更複雜的關係。
有一種常用的擬合模型方法使用的並不是一組多項式基函式,而是一組高斯基函式。
scikit-learn並沒有內建高斯基函式,我們可以自己寫乙個轉換器來建立高斯基函式。
如果將資料投影到30維的基函式上,模型就會變得過於靈活,從而能夠適應資料中不同位置的異常值。
如果對較大的模型引數進行懲罰(penalize),從而抑制模型劇烈波動,就可以解決相鄰基函式的係數相互抵消而出現過擬合的問題
這中懲罰機制被稱為正則化(regularization):
正則化最常見的形式可能就是嶺回歸(ridge regression,或者l2範數正則化),有時也被稱為吉洪諾夫正則化(tikhonov regularization)。
其處理方法是對模型係數平方和(l2範數)進行懲罰,模型擬合的懲罰項為:
其中,α是乙個自由引數,用來控制懲罰的力度。
這種帶懲罰項的模型內建在scikit-learn的ridge評估器中
引數α是控制最終模型複雜度的關鍵,如果α→
0,那麼模型就恢復到標準線性回歸結果,如果α→
∞,那麼所有模型響應都會被壓制。
嶺回歸的乙個重要優點是,他可以非常高效地計算——因此相比原始的線性回歸模型,幾乎沒有消耗更多的計算資源。
2、lasso正則化(l1範數)
另一種常用的正則化被稱為lasso,其處理方法是對模型係數絕對值的和(l1範數)進行懲罰:
雖然它在形式上非常接近嶺回歸,但是其結果與嶺回歸差別很大。
由於其幾何特性,lasso正則化傾向於構建稀疏模型,也就是說,它更喜歡將模型係數設定為0
通過lasso回歸懲罰,大多數基函式的係數都變成了0,所以模型變成了原來基函式的一小部分。
與嶺回歸正則化類似,引數α控制懲罰力度,可以通過交叉檢驗來確定。
sklearn 線性回歸 sklearn 線性回歸
sklearn 線性回歸 資料集匯入,以及模型的建立,和線性回歸的應用。import matplotlib.pyplot as plt import numpy as np from sklearn import datasets,linear model from sklearn.metrics ...
sklearn 線性回歸
在統計學中,線性回歸 linear regression 是利用稱為線性回歸方程的最小平方函式對乙個或多個自變數和因變數之間關係進行建模的一種回歸分析。這種函式是乙個或多個稱為回歸係數的模型引數的線性組合。只有乙個自變數的情況稱為簡單回歸,大於乙個自變數情況的叫做多元回歸。這反過來又應當由多個相關的...
Sklearn實現線性回歸
sklearn是機器學習中常用的第三方模組,對常用的機器學習方法進行了封裝,包括回歸 regression 降維 dimensionality reduction 分類 classfication 聚類 clustering 等方法。今天我們用sklearn實現乙個最簡單的線性回歸模型。coding...