你不得不瞭解的機器學習知識

你不得不瞭解的機器學習知識

1.什麼是機器學習?

(1)機器學習、深度學習、人工智能是什麼關係?

  • 機器學習包含了很多種不同的算法,深度學習就是其中之一,其他方法包括決策樹,聚類,貝葉斯等。
  • 深度學習的靈感來自大腦的結構和功能,即許多神經元的互連。人工神經網絡(ANN)是模擬大腦生物結構的算法。
  • 不管是機器學習還是深度學習,都屬於人工智能(AI)的範疇。所以人工智能、機器學習、深度學習可以用下面的圖來表示:

(2)機器學習的基本思路

通過訓練集,不斷識別特徵,不斷建模,最後形成有效的模型,這個過程就叫“機器學習”!

(3)監督學習、非監督學習、強化學習

機器學習根據訓練方法大致可以分爲3大類:

  • 監督學習
  • 非監督學習
  • 強化學習

a.監督學習

監督學習是指我們給算法一個數據集,並且給定正確答案。機器通過數據來學習正確答案的計算方法。

我們準備了一大堆貓和狗的照片,我們想讓機器學會如何識別貓和狗。當我們使用監督學習的時候,我們需要給這些照片打上標籤。
我們給照片打的標籤就是“正確答案”,機器通過大量學習,就可以學會在新照片中認出貓和狗。

b.非監督學習

非監督學習中,給定的數據集沒有“正確答案”,所有的數據都是一樣的。無監督學習的任務是從給定的數據集中,挖掘出潛在的結構。

我們把一堆貓和狗的照片給機器,不給這些照片打任何標籤,但是我們希望機器能夠將這些照片分分類。

非監督學習中,雖然照片分爲了貓和狗,但是機器並不知道哪個是貓,哪個是狗。對於機器來說,相當於分成了 A、B 兩類。

c.強化學習

強化學習更接近生物學習的本質,因此有望獲得更高的智能。它關注的是智能體如何在環境中採取一系列行爲,從而獲得最大的累積回報。通過強化學習,一個智能體應該知道在什麼狀態下應該採取什麼行爲。

最典型的場景就是打遊戲。

(4)機器學習實戰的步驟

(5).經典機器學習算法

  • 線性迴歸
  • 邏輯迴歸
  • 決策樹
  • K近鄰
  • 支持向量機
  • 隨機森林
  • AdaBoost

2.線性迴歸 – linear regression

線性迴歸的位置如上圖所示,它屬於機器學習 – 監督學習 – 迴歸 – 線性迴歸。

(1)什麼是迴歸

迴歸的目的是爲了預測,比如預測明天的天氣溫度,預測股票的走勢…

(2)什麼是線性

(3)什麼是線性迴歸

線性迴歸本來是是統計學裏的概念,現在經常被用在機器學習中。

如果 2 個或者多個變量之間存在“線性關係”,那麼我們就可以通過歷史數據,摸清變量之間的“套路”,建立一個有效的模型,來預測未來的變量結果。

優點:

  • a.建模速度快,不需要很複雜的計算,在數據量大的情況下依然運行速度很快
  • b.可以根據係數給出每個變量的理解和解釋

缺點:

  • 不能很好地擬合非線性數據。所以需要先判斷變量之間是否是線性關係。

3.邏輯迴歸 – Logistic regression

邏輯迴歸的位置如上圖所示,它屬於機器學習 – 監督學習 – 分類 – 邏輯迴歸。

邏輯迴歸(Logistic Regression)主要解決二分類問題,用來表示某件事情發生的可能性。

邏輯迴歸 vs 線性迴歸

  • a.線性迴歸只能用於迴歸問題,邏輯迴歸雖然名字叫回歸,但是更多用於分類問題
  • b.線性迴歸要求因變量是連續性數值變量,而邏輯迴歸要求因變量是離散的變量
  • c.線性迴歸要求自變量和因變量呈線性關係,而邏輯迴歸不要求自變量和因變量呈線性關係
  • d.線性迴歸可以直觀的表達自變量和因變量之間的關係,邏輯迴歸則無法表達變量之間的關係

4.決策樹 – Decision tree

決策樹是一種邏輯簡單的機器學習算法,它是一種樹形結構,所以叫決策樹。

決策樹算法採用樹形結構,使用層層推理來實現最終的分類。決策樹由下面幾種元素構成:

  • 根節點:包含樣本的全集
  • 內部節點:對應特徵屬性測試
  • 葉節點:代表決策的結果

預測時,在樹的內部節點處用某一屬性值進行判斷,根據判斷結果決定進入哪個分支節點,直到到達葉節點處,得到分類結果。

這是一種基於 if-then-else 規則的有監督學習算法,決策樹的這些規則通過訓練得到,而不是人工制定的。

(1)決策樹例子

銀行要用機器學習算法來確定是否給客戶發放貸款,爲此需要考察客戶的年收入,是否有房產這兩個指標。領導安排你實現這個算法,你想到了最簡單的線性模型,很快就完成了這個任務。

首先判斷客戶的年收入指標。如果大於20萬,可以貸款;否則繼續判斷。然後判斷客戶是否有房產。如果有房產,可以貸款;否則不能貸款。

這個例子的決策樹如下圖所示:

(2)決策樹學習的3個步驟

  • a.特徵選擇

特徵選擇決定了使用哪些特徵來做判斷。在訓練數據集中,每個樣本的屬性可能有很多個,不同屬性的作用有大有小。因而特徵選擇的作用就是篩選出跟分類結果相關性較高的特徵,也就是分類能力較強的特徵。

  • b.決策樹生成

選擇好特徵後,就從根節點觸發,對節點計算所有特徵的信息增益,選擇信息增益最大的特徵作爲節點特徵,根據該特徵的不同取值建立子節點;對每個子節點使用相同的方式生成新的子節點,直到信息增益很小或者沒有特徵可以選擇爲止。

  • c.決策樹剪枝

剪枝的主要目的是對抗“過擬合”,通過主動去掉部分分支來降低過擬合的風險。

(3)3種典型的決策樹算法

  • ID3算法

    ID3 是最早提出的決策樹算法,他就是利用信息增益來選擇特徵的。

  • C4.5 算法

    ID3 的改進版,它不是直接使用信息增益,而是引入“信息增益比”指標作爲特徵的選擇依據。

  • CART(Classification and Regression Tree)

    這種算法即可以用於分類,也可以用於迴歸問題。CART 算法使用了基尼係數取代了信息熵模型。

5.K鄰近 – k-nearest neighbors | KNN

通過搜索K個最相似的實例(鄰居)的整個訓練集並總結那些K個實例的輸出變量,對新數據點進行預測。對於迴歸問題,這可能是平均輸出變量,對於分類問題,這可能是模式(或最常見)類值。

訣竅在於如何確定數據實例之間的相似性。如果您的屬性具有相同的比例(例如,以英寸爲單位),則最簡單的技術是使用歐幾里德距離,您可以根據每個輸入變量之間的差異直接計算該數字。

6.支持向量機

超平面是分割輸入變量空間的線。在SVM中,選擇超平面以最佳地將輸入變量空間中的點與它們的類(0級或1級)分開。在二維中,您可以將其視爲一條線,並假設我們的所有輸入點都可以被這條線完全分開。SVM學習算法找到導致超平面最好地分離類的係數。

支持向量機的基礎概念可以通過一個簡單的例子來解釋。讓我們想象兩個類別:紅色和藍色,我們的數據有兩個特徵:x 和 y。我們想要一個分類器,給定一對(x,y)座標,輸出僅限於紅色或藍色。我們將已標記的訓練數據列在下圖中:

支持向量機會接受這些數據點,並輸出一個超平面(在二維的圖中,就是一條線)以將兩類分割開來。這條線就是判定邊界:將紅色和藍色分割開。

但是,最好的超平面是什麼樣的?對於 SVM 來說,它是最大化兩個類別邊距的那種方式,換句話說:超平面(在本例中是一條線)對每個類別最近的元素距離最遠。

7.隨機森林

隨機森林是一種由決策樹構成的集成算法,它在很多情況下都能有不錯的表現。

隨機森林屬於 集成學習 中的 Bagging(Bootstrap AGgregation 的簡稱) 方法。如果用圖來表示他們之間的關係如下:

(1)隨機森林

隨機森林是由很多決策樹構成的,不同決策樹之間沒有關聯。

當我們進行分類任務時,新的輸入樣本進入,就讓森林中的每一棵決策樹分別進行判斷和分類,每個決策樹會得到一個自己的分類結果,決策樹的分類結果中哪一個分類最多,那麼隨機森林就會把這個結果當做最終的結果。

(2)構造隨機森林的4個步驟

  • a.假如有N個樣本,則有放回的隨機選擇N個樣本(每次隨機選擇一個樣本,然後返回繼續選擇)。這選擇好了的N個樣本用來訓練一個決策樹,作爲決策樹根節點處的樣本。
  • b.當每個樣本有M個屬性時,在決策樹的每個節點需要分裂時,隨機從這M個屬性中選取出m個屬性,滿足條件m << M。然後從這m個屬性中採用某種策略(比如說信息增益)來選擇1個屬性作爲該節點的分裂屬性。
  • c.決策樹形成過程中每個節點都要按照步驟2來分裂(很容易理解,如果下一次該節點選出來的那一個屬性是剛剛其父節點分裂時用過的屬性,則該節點已經達到了葉子節點,無須繼續分裂了)。一直到不能夠再分裂爲止。注意整個決策樹形成過程中沒有進行剪枝。
  • d.按照步驟1~3建立大量的決策樹,這樣就構成了隨機森林了

8.集成學習

在機器學習中,我們講了很多不同的算法。那些算法都是單打獨鬥的英雄。而集成學習就是將這些英雄組成團隊。實現“3 個臭皮匠頂個諸葛亮”的效果。

本文將介紹集成學習的 2 種主要思路:bagging、boosting。

(1)什麼是集成學習

集成學習歸屬於機器學習,他是一種「訓練思路」,並不是某種具體的方法或者算法。

現實生活中,大家都知道「人多力量大」,「3 個臭皮匠頂個諸葛亮」。而集成學習的核心思路就是「人多力量大」,它並沒有創造出新的算法,而是把已有的算法進行結合,從而得到更好的效果。

集成學習會挑選一些簡單的基礎模型進行組裝,組裝這些基礎模型的思路主要有 2 種方法:

  • bagging(bootstrap aggregating的縮寫,也稱作“套袋法”)
  • boosting

(2)Bagging

Bagging 的核心思路是——民主。

Bagging 的思路是所有基礎模型都一致對待,每個基礎模型手裏都只有一票。然後使用民主投票的方式得到最終的結果。

大部分情況下,經過 bagging 得到的結果方差(variance)更小。

具體過程:

  • a.從原始樣本集中抽取訓練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取,得到k個訓練集。(k個訓練集之間是相互獨立的)
  • b.每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型。(注:這裏並沒有具體的分類算法或迴歸方法,我們可以根據具體問題採用不同的分類或迴歸方法,如決策樹、感知器等)
  • c.對分類問題:將上步得到的k個模型採用投票的方式得到分類結果;對迴歸問題,計算上述模型的均值作爲最後的結果。(所有模型的重要性相同)

(3)Boosting

Boosting 的核心思路是——挑選精英。

Boosting 和 bagging 最本質的差別在於他對基礎模型不是一致對待的,而是經過不停的考驗和篩選來挑選出「精英」,然後給精英更多的投票權,表現不好的基礎模型則給較少的投票權,然後綜合所有人的投票得到最終結果。

大部分情況下,經過 boosting 得到的結果偏差(bias)更小。

具體過程:

  • a.過加法模型將基礎模型進行線性的組合。
  • b.每一輪訓練都提升那些錯誤率小的基礎模型權重,同時減小錯誤率高的模型權重。
  • c.在每一輪改變訓練數據的權值或概率分佈,通過提高那些在前一輪被弱分類器分錯樣例的權值,減小前一輪分對樣例的權值,來使得分類器對誤分的數據有較好的效果。

(4)Bagging 和 Boosting 的4 點差別

樣本選擇上:

  • Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。
  • Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整。

樣例權重:

  • Bagging:使用均勻取樣,每個樣例的權重相等
  • Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。

預測函數

  • Bagging:所有預測函數的權重相等。
  • Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重。

並行計算

  • Bagging:各個預測函數可以並行生成
  • Boosting:各個預測函數只能順序生成,因爲後一個模型參數需要前一輪模型的結果。

8.AdaBoost

集成學習歸屬於機器學習,他是一種“訓練思路”,並不是某種具體的方法或者算法。

現實生活中,大家都知道“人多力量大”,“3 個臭皮匠頂個諸葛亮”。而集成學習的核心思路就是“人多力量大”,它並沒有創造出新的算法,而是把已有的算法進行結合,從而得到更好的效果。

Boosting是一種集合技術,試圖從許多弱分類器中創建一個強分類器。這是通過從訓練數據構建模型,然後創建第二個模型來嘗試從第一個模型中糾正錯誤來完成的。添加模型直到完美預測訓練集或添加最大數量的模型。

AdaBoost是第一個爲二進制分類開發的真正成功的增強算法。這是理解助力的最佳起點。現代助推方法建立在AdaBoost上,最着名的是隨機梯度增強機。

AdaBoost用於短決策樹。在創建第一個樹之後,每個訓練實例上的樹的性能用於加權創建的下一個樹應該關注每個訓練實例的注意力。難以預測的訓練數據被賦予更多權重,而易於預測的實例被賦予更少的權重。模型一個接一個地順序創建,每個模型更新訓練實例上的權重,這些權重影響序列中下一個樹所執行的學習。構建完所有樹之後,將對新數據進行預測,並根據訓練數據的準確性對每棵樹的性能進行加權。

發佈了489 篇原創文章 · 獲贊 515 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章