在寫線性模型之前,我先概述下普通的最小二乘法。
一、最小二乘法
最小二乘法就是普通的無約束優化問題,具體請看吳立德教授的 https://www.bilibili.com/video/av10289610/?p=17.
有了最小二乘法的概念,我們再來看看機器學習中的線性模型。
二、線性模型
由於線性模型的函數是凸函數,所以它的最優化解的一階充分必要條件爲一階導數爲0。
三、LinearRegression
有了原理之後,我再向大家介紹使用sklearn中的LinearRegression。一個簡單的例子如下。
>>> from sklearn import linear_model
>>> reg = linear_model.LinearRegression()
>>> reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
>>> reg.coef_
array([ 0.5, 0.5])
下面我對LinearRegression的參數進行如下說明:
Parameters :
fit_intercept : boolean, optional, default True
模型是否使用截距,也就是模型中的獨立變量b。值默認爲True,如果值爲False,則不會計算截距。
normalize : boolean, optional, default False
數據樣本X在訓練之前是否需要標準化,如果 fit_intercept = False,則此參數忽略。標準化的原理和
sklearn.preprocessing.StandardScaler一樣。
copy_X : boolean, optional, default True
當值爲True的時候,即可保證訓練過程不會修改原來的數據樣本,否則有可能修改原來的數據樣本。
n_jobs : int, optional, default 1
計算時使用的CPU數目。
Attributes:
coef_ : array, shape (n_features, ) or (n_targets, n_features)
線性迴歸的參數,即模型中的W。
intercept_ : array
截距,即模型中的獨立變量b
Methods:
fit
(X, y[, sample_weight])
擬合模型,即利用數據樣本訓練,得到模型的參數。
predict
(X)
對輸入的新數據樣本進行迴歸預測。
score
(X, y[, sample_weight])
返回模型在數據樣本X、y上的得分。得分計算公式R2定義。
以上就是這次的線性模型的內容。