機器學習 線性回歸演算法梳理

2021-09-14 02:29:31 字數 2729 閱讀 3498

學習內容

機器學習的一些概念

有監督、無監督、泛化能力、過擬合欠擬合(方差和偏差以及各自解決辦法)、交叉驗證

線性回歸的原理

線性回歸損失函式、代價函式、目標函式

優化方法(梯度下降法、牛頓法、擬牛頓法等)

線性回歸的評估指標

sklearn引數詳解

1.基本概念

有監督:訓練資料有標記資訊,如分類和回歸。

無監督:訓練資料無標記資訊,如聚類。

泛化能力(generalization ability):訓練好的模型適用於新樣本的能力,而不是僅僅在訓練樣本上表現得很好。具有強泛化能力的模型能很好地適用於整個樣本空間。

過擬合(overfitting):學習器把訓練樣本自身的一些特點當做了所有潛在樣本都會具有的一般性質,從而導致泛化效能下降。在過擬合時,方差》偏差。

解決方法:資料集擴增(data augmentation)、正則化(regularization)等。

欠擬合(underfitting):對訓練樣本的一般性質尚未學好。在欠擬合時,偏差主導了泛化錯誤率,偏差》方差。

解決方法:增強學習能力,例如在決策樹學習中擴充套件分支、在神經網路學習中增加訓練輪數等。

交叉驗證(cross validation):也稱為k折交叉驗證,將資料集劃分為k個大小相似的互斥子集,每個自己盡可能保持資料分布的一致性;每次用k-1個子集的並集作為訓練集,剩餘的那個子集作為測試集,即可進行k次訓練和測試;最終返回k次測試結果的均值。

2.線性回歸的原理

線性回歸通過學得乙個線性模型(f(x)=wtx+b)從而盡可能準確地**輸出label。如此一來,可根據訓練資料得到估計的label值(y hat),使用cost function來衡量**值與真實y的距離,可通過最小二乘法、極大似然方法、梯度下降等使cost function達到最小,從而得到估計的引數值,推導出最佳線性模型。

3.線性回歸損失函式、代價函式、目標函式

損失函式(loss function):單個樣本

代價函式(cost function):訓練集上所有樣本

損失/代價函式越小,代表模型擬合得越好。一般而言,不必過度區分以上二者。

目標函式:代價函式+l1/l2正則化項

深入理解:

1.《統計機器學習》第一章p8-9

2.部落格:

4.優化方法

梯度下降:repeat

注意同步更新所有θj;

α為學習率(learning rate),即不能過大(可能不收斂)),也不能過小(下降速度慢)。

牛頓法:牛頓方法收斂速率更快。核心思想是通過乙個嚴格的二次凹/凸方程對目標函式作拒不近似,且保證每一次迭代這個二次方程都是優化的。

第t+1次迭代演算法如下:

擬牛頓法:通過正定矩陣近似海森矩陣的逆矩陣或海森矩陣,簡化了牛頓演算法求解海森矩陣的逆矩陣這一計算過程。

5.線性回歸的評估指標

均方誤差(mse):對應歐氏距離,有非常好的幾何意義。對應均方誤差最小化的方法為最小二乘法,即試圖找到一條直線,使所有樣本到直線上的歐氏距離之和最小。

其他:殘差、決定係數(r-square)、adjusted r-square。

6.sklearn引數詳解

目前用過的sklearn如下:

from sklearn.preprocessing import standardscaler

from sklearn.preprocessing import onehotencoder

from sklearn.preprocessing import labelencoder

from sklearn.preprocessing import robustscaler

from sklearn.linear_model import ridge

from sklearn.linear_model import lasso

from sklearn.linear_model import elasticnet

from sklearn.ensemble import gradientboostingregressor

from sklearn.pipeline import make_pipeline

【著重看sklearn.linear_model】

待動手用一遍:

交叉驗證:

from sklearn.cross_validation import cross_val_score

使用:cross_val_score(model, x, y),返回k次測試結果的均值

均方誤差(mse):

from sklearn.metrics import mean_squared_error

使用:mean_squared_error(y_true, y_pred)

新增正則化項:

from sklearn.linear_model import lasso

lasso = lasso(alpha= ) #l1正則化係數

lasso.fit(x_train, y_train)

y_train_pred = lasso.predict(x_train)

線性回歸演算法梳理

機器學習的一些概念 有監督 有目標值y 無監督 無目標值y 泛化能力 在 集上的 能力 過擬合欠擬合 方差和偏差以及各自解決辦法 測試集 能力不好叫欠擬合,在測試集上ok,訓練集ng 方差能解決過你和問題,偏差能解決欠擬合問題 交叉驗證 將樣本分為n分,按照一定的劃分方式劃分訓練集和測試集,互相交叉...

線性回歸演算法梳理

有監督 資料做過標記 無監督 對原始資料進行處理,未做標記 泛化能力 由訓練資料建立的模型對同類問題的解決能力 過擬合 模型過於複雜導致解決問題能力差 欠擬合 模型過於簡單導致擬合資料的能力差 方差和偏差以及各自解決辦法 交叉驗證 當資料比較少時,將資料分成n份,取n 1份做訓練集,1份做驗證集,改...

線性回歸演算法梳理

監督學習 資料集中的每個樣本有相應的標籤,根據這些樣本做出 無監督學習 資料集中沒有標籤。無監督學習的任務是從給定的資料集中,找出可能具有的結構。泛化能力 指乙個機器學習演算法對於沒有見過的樣本的識別能力。過擬合欠擬合 方差和偏差以及各自解決辦法 欠擬合 模型沒有很好地捕捉到資料特徵,不能夠很好地擬...