機器學習(二):機器學習四大難題與線性迴歸

1  機器學習四大問題

1.1   機器學習四大問題

上一篇主要介紹機器學習準備工具numpy、pandas、matplotlib的使用。從本篇開始,我將正式進入機器學習算法內容的介紹,像很多的參考資料介紹的那樣,我也從線性迴歸算法說起。不同的是,我根據自己的學習以及參考他人的資料在這裏進行詳細的理論解釋與數學公式推導並分析解釋,從我個人的學習經歷來看,機器學習的難點有幾個方面:

(1)複雜算法的概念抽象不易理解。

(2)數據維度稍微高一點就會導致數學公式極其龐大,這個一方面讓人產生畏難的心理,另一方面會使人失去學習的興趣

(3)計算機編程實戰能力不足。編程實現算法是最終的目的,之前在理論方面所有的戰鬥都是爲了更好的熟悉編程的流程。但是有時候花費了幾天時間才從頭到尾弄明白一個算法,儘管你可能非常熟悉某一門編程語言,最後到真正去編程算法實現時又面對着巨大的困難。

(4)英語論文閱讀的能力。這一點並不是所有人都有必要具有的能力,爲什麼在這裏要說呢,因爲從傳統的機器學習算法到當今的深度學習,很多的問題只有深度學習才能搞定,如果想要高人一等,英文論文的閱讀是必不可少的,爲什麼是英文而不是中文呢,中文的沒有,全世界頂級的算法都是發表在國外頂級的會議和頂級期刊上的,以中文的形式提出的頂級算法有嗎,當然沒有,你也從來沒聽過,中國人以及華裔提出的英文形式的算法遍地都是。那麼,中文的哪些論文是可以拿來用的呢,一個是中文頂級期刊的論文,這裏強調的是中文頂級期刊,不是別的期刊和會議。爲什麼要推薦中文頂級期刊的論文呢,原因主要有三個:一是中文頂級期刊一般都是EI檢索,文章的真實性較高、數據比較可靠、文章內容結構完整調理清晰,文章的篇幅也較長,讀起來比較舒服,國內的很多期刊會議你也許知道很水很爛,打開中國知網,隨便一搜基本都是垃圾,我記得自己當時在學習唐宇迪大神的視頻時他就直言不諱了不要打開知網,所以查中文論文資料一定要選擇中文頂級期刊上的,比如計算機學報、軟件學報、計算機研究與發展、模式識別與人工智能等等,二是中文頂級期刊一般大多數是專題類綜述類,看這類文章能讓你快速知道某個領域的研究動態,它爲你指明瞭下一步該幹什麼,但是由於中文頂級期刊的審稿週期略長,所以你現在看到的論文可能是2年前的研究動態,後面就需要你自己再查英文的了。三是中文頂級期刊大都是國內在這個領域進行長期研究的專家的作品,舉一反三,你可以站在巨人的肩膀上。中文論文第二個能拿來用的就是國內牛人或者著名研究機構的官方主頁上提供的論文。比如南京大學周志華https://cs.nju.edu.cn/zhouzh/、清華大學劉洋  http://nlp.csai.tsinghua.edu.cn/~ly/、微軟亞洲研究院周明https://www.microsoft.com/en-us/research/people/mingzhou/、清華大學自然語言處理與社會人文計算實驗室http://nlp.csai.tsinghua.edu.cn/site2/index.php/zh/people、南京大學自然語言處理研究組http://nlp.nju.edu.cn/homepage/等等,稍微搜索下各類牛人和知名高校的實驗室都會提供很多的資料信息。所以針對第四個難點,如果你想在機器學習包括深度學習領域長期深入發展你需要重點注意。順便說下,英文論文主要在頂級會議,其次是頂級期刊,頂級會議是核心,頂級會議各個都太出名了以至於你搜一下關鍵詞加官網就出來了,比如機器學習頂級會議機器學習領域:ICML、NIPS、COLT、ECML、UAI、AISTATS,計算機視覺與機器學習混合:CVPR,ICCV,ECCV,機器學習與數據挖掘大雜燴:AAAI,IJCAI,主要是數據挖掘領域:KDD,SDM,ICDM,這裏就不再一一列舉,當然了國外的牛人與團隊也有很多,這裏列舉下我認爲最出名的幾位 ,首先是2019年3月27日宣佈的,ACM 2018 年圖靈獎得主 Yoshua Bengio, Geoffrey Hinton 和 Yann LeCun   https://mila.quebec/en/yoshua-bengio/http://www.cs.toronto.edu/~hinton/、 http://yann.lecun.com/,其他知名人物,Facebook的Tomas Mikolov,其在機器學習和NLP,尤其是NLP領域貢獻突出,https://research.fb.com/people/mikolov-tomas/、斯坦佛大學吳恩達,他的機器學習和深度學習視頻課程在國內是機器學習入門者的必學資料,絕對的良心教程資料,你值得擁有,https://www.andrewng.org/,斯坦佛大學李菲菲,李菲菲團隊創造的ImageNet數據集是ILSVRC的數據集,她還提供深度學習與計算機視覺視頻教程https://profiles.stanford.edu/fei-fei-li/ ,澳大利亞阿萊德萊大學沈春華 https://cs.adelaide.edu.au/~chhshen/index.html等等等等。截然不同的是,如果你只是想將算法理論在實際中的某個領域進行應用,那麼在需要的時候學習找對應的中文資料基本就可以搞定。

                                        

1.2  個人的嘗試解決方法

 第四個難點其實我已經說的很清楚了,你需要與否以及對應的方法都已提供。下面針對前三個難點,簡單說一下個人的解決策略。第一個難點是複雜算法概念抽象,個人的解決方法書讀百遍其義自見,精讀加思考,然後根據多部精典的參考書和高質量的視頻教程(這個要自己篩選,書我用了李航 《李航統計學習方法》 周志華《機器學習》 雷明《機器學習與應用》等 ,視頻主要是b站上的。)第二個難點是數學公式龐大,這個需要有一定的數學基礎,首先微積分、矩陣分析、概率統計的基礎知識要明白,然後是對公式的逐步推導加理解,公式龐大且複雜的原因是數據是多個的且是多維的,所以在進行分析時可以單個數據分析然後慢慢推廣到多個,這樣纔不至於一下拿那麼多數據而出現的困擾。第三個問題是計算機編程,這個是核心問題,是你的實踐能力問題。編程語言的選擇上,多數人應該都是選擇的python,我用的也是python。僅僅使用python進行學術研究是完全足夠的,但是工作上顯得不那麼夠,根據業務需求你可能還要基本瞭解和能簡單使用一些其他語言,比如java、c++,畢竟編程語言三巨頭。回到計算機編程的問題,怎麼解決呢,最快的方法是跟隨教學視頻邊看邊練習,唯有多練習才能熟練,上機實戰時間決定熟練度,沒辦法,任何一個編程大神都是要大量時間大量練習的。

2 線性迴歸

2.1  樣本數據

下面就開始介紹第一個算法,線性迴歸。機器學習的問題根據給定的數據有無標籤可以分爲監督學習和無監督學習,監督學習根據根據標籤是離散值和連續值分爲分爲分類問題和迴歸問題,分類算法主要有K近鄰(KNN)、線性迴歸(Linear Regression)、決策樹(Decision Tree)、樸素貝葉斯(Naive Bayes)、支持向量機(SVM)、集成學習方法(Ensemble Learning)、神經網絡(Artificial Neural Network)等等。無監督學習又分爲聚類和密度估計,主要算法有k均值(K-Means)、均值漂移(Means-Shift)、基於密度的聚類方法(DBSCAN)、凝聚層次聚類(Hierarchical Clustering)、譜聚類(Spectral Clustering)等等。下面開始線性迴歸算法介紹。

假設數據集爲D:

                                            D=\left \{ \left ( x_{1},y_{1} \right ),\left ( x_{2},y_{2} \right ),\cdot \cdot \cdot ,\left ( x_{N},y_{N}\right ) \right \}                                          (1)

其中,

                                            X=( x_{1},x_{2} ,\cdot \cdot \cdot ,x_{N}\right \))^{T}=\begin{pmatrix} x_{11} & x_{12}& \cdot \cdot \cdot & x_{1d}\\ x_{21}& x_{22}& \cdot \cdot \cdot & x_{2d} \\ \cdot \cdot \cdot & \cdot \cdot \cdot & \cdot \cdot \cdot & \cdot \cdot \cdot \\ x_{N1}& x_{N2}& \cdot \cdot \cdot & x_{Nd} \end{pmatrix}                           (2)

                                             Y=\begin{pmatrix} y_{1}\\ y_{2}\\ \cdot \cdot \cdot \\ y_{N} \end{pmatrix}                                                                                           (3)

數據說明:數據集D包含有N個數據,每個數據都由兩部分組成可以稱爲特徵與值(或者自變量與因變量),見公式(1)。每個特徵都是一個d維的列向量,見公式(1);每個值都是1個數,見公式(3)。

線性迴歸就是用數據來擬合一條直線(多維就是面)使得直線上的點與目標值差的平方和最小,即最小二乘法。設權重參數向量爲:

                                                   \theta =(\begin{matrix} \theta _{1} ,\theta _{2},\cdot \cdot \cdot ,\theta_{d} \end{matrix})                                                                        (4)

偏置爲b,這裏爲了下面方便將其用\theta_{0}來表示,則對每一個樣本數據x_{i}都能夠通過同樣的權重參數與偏置的組合得到一個預測值,

                                                \hat{y}_{i}=\begin{pmatrix} \theta _{1}, \theta _{2},\cdot \cdot \cdot ,\theta _{d} \end{pmatrix}\ast \begin{pmatrix} x_{i1}\\ x_{i1}\\ \cdot \cdot \cdot \\ x_{id} \\ \end{pmatrix}+\theta _{0}                                                 (5)

爲了寫成矩陣形式,給樣本數據X在第一列插入全爲1的列,公式(2)改寫成公式(6),公式(3)不變,公式(5就可以寫成公式(7)的矩陣形式。

                                         X=( 1,x_{1},x_{2} ,\cdot \cdot \cdot ,x_{N}\right \))^{T}=\begin{pmatrix} 1,x_{11} & x_{12}& \cdot \cdot \cdot & x_{1d}\\ 1,x_{21}& x_{22}& \cdot \cdot \cdot & x_{2d} \\ 1,\cdot \cdot \cdot & \cdot \cdot \cdot & \cdot \cdot \cdot & \cdot \cdot \cdot\\ 1,x_{N1}& x_{N2}& \cdot \cdot \cdot & x_{Nd} \end{pmatrix}                     (6)

 

                                              \hat{y}_{i}=\begin{pmatrix} \theta _{0},\theta _{1},\theta _{2},\cdot \cdot \cdot \theta _{d} \end{pmatrix}\ast \begin{pmatrix} 1\\ x_{i1}\\ x_{i2}\\ \cdot \cdot \cdot \\ x_{id} \end{pmatrix}                                                          (7)         

2.2 損失函數

2.2.1 損失函數直接求解

         定義損失函數爲估計值與實際值差的平方再對所有樣本求和,即公式(8)。

                                                  Loss(w)=\sum_{i=1}^{N}\left \| w^{T}\ast x_{i} -{y}_{i} \|^{2}                                                           (8)

        將公式(8)展開,得到公式(9)。這裏的x_{i}與一開始的x_{i}相比在第一列加了1,但是數據樣本的個數沒有增加,仍然爲N。

Loss(w)=\begin{pmatrix} w^{T } \ast x_{1}-y_{1},w^{T}*x_{2}-y_{2},\cdot \cdot \cdot \cdo,w^{T } \ast x_{N}-y_{N} \end{pmatrix}*\begin{pmatrix} w^{T } \ast x_{1}-y_{1}\\ w^{T}*x_{2}-y_{2}\\ \cdot \cdot \cdot \\ w^{T}*x_{N}-y_{N}\\ \end{pmatrix} \\ =(w^{T}(x_{1},x_{2},\cdot \cdot \cdot ,x_{N})-\begin{pmatrix} y_{1}, y_{2},\cdot \cdot \cdot ,y_{N} \end{pmatrix})\ast (\begin{pmatrix} w^{T}x_{1}\\ w^{T}x_{2}\\ \cdot \cdot \cdot \\ w^{T}x_{N} \\ \end{pmatrix}-\begin{pmatrix} y_{1}\\ y_{2}\\ \cdot \cdot \cdot \\ y_{N}\\ \end{pmatrix}) \\ = (w^{T}\ast X^{T}-Y^{T})\ast (XW-Y) \\ \\=w^{T}X^{T}XW-2w^{T}X^{T}Y}+Y^{T}Y                (9)

損失函數最小化,公式(10)。

                                                  \hat{w}=arg min(Loss(w))                                                                   (10)

求偏導數並置0,\frac{\partial Loss(w)}{\partial w}=2X^{T}XW-2X^{T}Y=0,解得公式(11)。

                                                X^{T}XW=X^{T}Y

                                               w=(X^{T}X)^{-1}X^{T}Y                                                                            (11)

2.2.2  概率求解與高斯分佈

        誤差值爲真實值與預測值之差,公式(12)。

                                                         \epsilon _{i}=y_{i}-w^{T}*x_{i}                                                                              (12)

        線性迴歸假設誤差服從均值爲0,方差爲\sigma ^{2}的高斯分佈。所以根據高斯分佈公式,得到公式(13)。

                                                p(\epsilon_{i})= \frac{1}{\sqrt{2\pi}\sigma }*exp(-\frac{(\epsilon_{i})^{2}}{2\sigma ^{2}})                                                                (13)

        將公式(12)帶入公式(13),得到含參數w的方程(14)。

                                            p(\epsilon _{i})= p(y_{i}|x_{i};w)=\frac{1}{\sqrt{2\pi}\sigma }*exp(-\frac{(y_{i}-w^{T}*x_{i})^{2}}{2\sigma ^{2}})                              (14)

       對所有樣本,得到似然函數,公式(15)。

                                 L(w)= \coprod_{i=1}^{N}p(y_{i}|x_{i};w)=\coprod_{i=1}^{N}\frac{1}{\sqrt{2\pi}\sigma }*exp(-\frac{(y_{i}-w^{T}*x_{i})^{2}}{2\sigma ^{2}})                          (15)

      兩邊取對數,得到對數似然,公式(16)。

                                log(L(w)) = log(\coprod_{i=1}^{N}\frac{1}{\sqrt{2\pi}\sigma }*exp(-\frac{(y_{i}-w^{T}*x_{i})^{2}}{2\sigma ^{2}}))\\=\sum_{i=1}^{N}(log(\frac{1}{\sqrt{2\pi}\sigma })+log(exp(-\frac{(y_{i}-w^{T}*x_{i})^{2}}{2\sigma ^{2}})))\\=\sum_{i=1}^{N}(log(\frac{1}{\sqrt{2\pi}\sigma })-\sum_{i=1}^{N}\frac{(y_{i}-w^{T}*x_{i})^{2}}{2\sigma ^{2}})                                   (16)

     公式(16)第一項爲常數項,求解對數極大似然估計,公式(17)。

                      \hat{w}=arg max(L(w)) = arg max \sum_{i=1}^{N}(-\frac{1}{2\sigma ^{2}}*(y_{i}-w^{T}*x_i)^{2})                                       (17)

   公式(17)等價於求公式(18)的極小值,公式(18)。

                     \hat{w}=arg max(L(w)) \\ = arg max \sum_{i=1}^{N}(-\frac{1}{2\sigma ^{2}}*(y_{i}-w^{T}*x_i)^{2}) \\ = arg min \sum_{i=1}^{N}\frac{1}{2\sigma ^{2}}*(y_{i}-w^{T}*x_i)^{2}\\=arg min \sum_{i=1}^{N}(y_{i}-w^{T}*x_i)^{2}                                                                        (18)

     公式(18)就是公式(8)!!!,直接求解即可。

2.3   正則化

           2.1 節和2.2節是異曲同工的,求解的參數形式見公式(11)。但是爲防止過擬合,通常在損失函數(8)或者公式(18)中加入正則化項,正則化項通常有L1和L2正則,公式(19)和公式(20),分別稱作Lasso迴歸和Ridage迴歸。

                                                    Loss(w)=\sum_{i=1}^{N}\left \| w^{T}\ast x_{i} -{y}_{i} \|^{2}+\lambda \left \| w \right \|                                           (19)  

                                                   Loss(w)=\sum_{i=1}^{N}\left \| w^{T}\ast x_{i} -{y}_{i} \|^{2}+\lambda \left \| w \right \|^{2}                                          (20)

        利用公式(9)、(19)、(20),得到公式(21)和公式(22)。

                                                  Loss(w)=w^{T}X^{T}XW-2w^{T}X^{T}Y}+Y^{T}Y+\lambda \left \| w \right \|                        (21)

                                                  Loss(w)=w^{T}X^{T}XW-2w^{T}X^{T}Y}+Y^{T}Y+\lambda \left \| w \right \|^{2}                      (22)

       由於Lasso迴歸引入絕對值,導致函數不可導,故不能用求導的方法解決,即沒有解析解。求解方法有座標軸下降法(coordinate descent)和最小角迴歸法( Least Angle Regression, LARS)、近端梯度下降法(Proximal Gradient Descent,PGD)。

      對於Ridage迴歸,直接求偏導數並置0,\frac{\partial Loss(w)}{\partial w}=0,解得公式(23))。   

                                               w=(X^{T}X+\lambda I)^{-1}X^{T}Y                                                                 (23)

通常的線性迴歸問題,採用線性迴歸方法基本就能解決,Lasso迴歸和Ridage迴歸的正則化方法也可以進行實驗,綜合選擇效果最好的方法。

2.4    sklearn 與線性迴歸實踐

2.4.1  sklearn機器學習庫

sklearn是一個重要的機器學習庫,官網是https://scikit-learn.org/stable/,官方github:https://github.com/scikit-learn/scikit-learn,主要包括6大部分:分類、迴歸、聚類、降維、模型選擇、數據預處理。每個部分都包含了多種具體的算法及其介紹並給出實例,對於機器學習算法的學習是一個很好的參考,同時也是以後對實際問題處理的一個很好的工具。在windows或者Linux系統上直接使用pip install sklearn進行安裝即可。下圖給出了一個從官網下載的sklearn 算法的介紹圖。具體詳見官網,這裏只是一個推薦,不做也不能多做介紹。

2.4.2  線性迴歸的python實現

首先說兩點,第一是數據,無論採用的是什麼算法(當然,除了極具創新的算法除外),數據纔是核心,對數據的處理或者稱爲特徵提取是關鍵,所有特徵工程是必須要進行認真研究的;第二是算法實現的框架(或者稱爲平臺),現在很多的深度學習框架如Tensorflow、Pytorch、Caffe、Mxnet、Keras等等,Tensorflow可以是使用最多的框架,在傳統機器學習與深度學習領域都能很好使用,Pytorch與TensorFlow齊頭並進,在自然語言處理領應用廣泛,如果你研究自然語言建議使用,Caffe在目標檢測領域是絕對的優先使用者,基於C++的內核使得其運行速度很快,Mxnet是華人李沐、Aston Zhang開發的,Keras是高層神經網絡API,後端採用Tensorflow或者theano,高度封裝的優缺點都很明顯,有點是使用簡單,缺點是開發難。不管什麼框架,你應該根據自己的研究領域選擇,詳細內容這裏都不做介紹與使用。我個人主要使用Tensorflow,對pytorch和caffe正在學習和使用。

下面我按照上面的原理,進行一個實例的線性迴歸演示。爲了方便,我的數據也是使用sklearn的Boston房價的數據還有一個特徵爲1維的數據(如有侵權請周知),不同的是我在這裏不用梯度下降優化的方法,而是直接使用矩陣求解法,但是同時也給出使用sklearn的實現。先使用Boston房價的數據,在使用一個網上找的一個特徵爲1維的數據。

下面使用Boston房價的數據。

2.4.2.1  直接求解

step1:導入模塊和庫,數據集、numpy、matplotlib、顯示中文。

from sklearn.datasets import load_boston
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']

step2:載入原始數據,字典類型,特徵名稱、特徵數據、目標數據。

sample_data = load_boston()

feature_name = sample_data.feature_names
feature_data = sample_data.data
label_data = sample_data.target

print(feature_name)
print(feature_data)
print(label_data)

step3:根據原理,將特徵數據矩陣最前加一列1。

modify_data = np.insert(feature_data, 0, 1, axis=1)

step4:基本線性迴歸,按公式(11)直接計算w、預測值、誤差、畫圖。

w = np.matmul(np.matmul(np.linalg.inv(np.matmul(np.transpose(modify_data), modify_data)), np.transpose(modify_data)), label_data)
y_ = np.matmul(modify_data, w)
e = y_ - label_data

plt.figure(1)
plt.plot(e)
plt.xlabel("/數據")
plt.ylabel("/誤差")
plt.savefig("res1.png")
plt.show()

step5:L2正則化,按公式(23),設置3個不同的懲罰係數,直接計算w、預測值、誤差、畫圖。

說明:L1正則化損失函數由於不可導,不可直接計算,通常採用優化的方法來解決。

p_ = [10, 1, 0.01]
plt.figure(2)
for p in p_:
    x_T = np.transpose(modify_data)
    t1 = np.matmul(x_T, modify_data)
    t2 = p * np.eye(14)

    x_I = np.linalg.inv(np.add(t1, t2))
    t3 = np.matmul(x_I, x_T)

    w_l2 = np.matmul(t3, label_data)
    print(w_l2)

    y_l2 = np.matmul(modify_data, w_l2)
    e_l2 = y_l2 - label_data

    plt.plot(e_l2)
    plt.xlabel("/數據")
    plt.ylabel("/誤差")
plt.savefig("res2.png")
plt.show()

2.4.2.2  sklearn的方法

step1:導入模塊和庫,線性迴歸、數據集、訓練測試集劃分、R^{2}得分。

from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score
import matplotlib.pyplot as plt

  step2:特徵數據、目標數據。

sample = load_boston()
print(sample)

sample_data = sample.data
sample_target = sample.target

  step3:訓練集、測試集劃分。

x_train, x_test, y_train, y_test = train_test_split(sample_data, sample_target, test_size=0.15, random_state=10)

  step4:線性迴歸模型、訓練、權重參數與偏置項。

model = LinearRegression()

model.fit(x_train, y_train)

# 係數與截距
print("權重參數: ", model.coef_)
print("偏置項: ", model.intercept_)

step5:預測值、殘差、繪圖。

y_ = model.predict(x_test)

print("預測值: ", y_)

e = y_ - y_test
print("殘差: ", e)

plt.figure(1)

plt.plot(e)
plt.savefig("sklearn.png")
plt.show()

 下面一維數據。工作時間(經驗,年)-薪水(元)。

1.1 39343.00
1.3 46205.00
1.5 37731.00
2.0 43525.00
2.2 39891.00
2.9 56642.00
3.0 60150.00
3.2 54445.00
3.2 64445.00
3.7 57189.00
3.9 63218.00
4.0 55794.00
4.0 56957.00
4.1 57081.00
4.5 61111.00
4.9 67938.00
5.1 66029.00
5.3 83088.00
5.9 81363.00
6.0 93940.00
6.8 91738.00
7.1 98273.00
7.9 101302.00
8.2 113812.00
8.7 109431.00
9.0 105582.00
9.5 116969.00
9.6 112635.00
10.3 122391.00
10.5 121872.00

線性迴歸直接計算。

txt_data = np.genfromtxt('./data/Salary_Data')
# print(txt_data)
x_data = txt_data[:, 0]
y_data = txt_data[:, 1]

t = np.ones_like(x_data)

x_data = np.column_stack((t, x_data))
print(x_data)

w3 = np.matmul(np.matmul(np.linalg.inv(np.matmul(np.transpose(x_data), x_data)), np.transpose(x_data)), y_data)
print(w3)
y3 = np.matmul(x_data, w3)
e3 = y3 - y_data
print(e3)

plt.figure(3)
plt.plot(e3)
plt.xlabel("/數據")
plt.ylabel("/誤差")
plt.savefig("res3.png")
plt.show()

 3 總結

       主要介紹機器學習中的一些問題以及解決對策,然後介紹了線性迴歸以及正則化方法,最後給出實例解釋。這裏並沒有使用在機器學習包括深度學習中的一些手段如梯度下降,也沒有使用任何的框架,更沒有討論數據特徵的重要性而是使用全部特徵,還沒有對線性迴歸做更加深度的分析解釋,如線性迴歸cholesky矩陣分解、total迴歸、lasso迴歸(L1)、ridge迴歸(L2)、彈性網絡迴歸等進行概率角度的原理推導(包括這些的更多實例我會在tensorflow實戰這一模塊中演示)。再次說明,本文的目的是介紹線性迴歸的原理及其存在的問題,並介紹兩種正則化方法,並給出簡單的舉例,希望加深自己的理解,也希望能有益於人,如果想對線性迴歸深究則需要參考更多更詳細的資料。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章