十大必須掌握的機器學習演算法,竟然都如此有趣
導讀:通過本篇文章可以對ML的常用演算法有個常識性的認識,沒有代碼,沒有複雜的理論推導,就是圖解一下,知道這些演算法是什麼,它們是怎麼應用的,例子主要是分類問題。
每個演算法都看了好幾個視頻,挑出講的最清晰明了有趣的,便於科普。 以後有時間再對單個演算法做深入地解析。
今天的演算法如下:
決策樹
隨機森林演算法
邏輯回歸
SVM
樸素貝葉斯
K最近鄰演算法
K均值演算法
Adaboost演算法
神經網路
馬爾可夫
1.決策樹
根據一些 feature 進行分類,每個節點提一個問題,通過判斷,將數據分為兩類,再繼續提問。這些問題是根據已有數據學習出來的,再投入新數據的時候,就可以根據這棵樹上的問題,將數據劃分到合適的葉子上。
2、隨機森林
在源數據中隨機選取數據,組成幾個子集:
S矩陣是源數據,有1-N條數據,A、B、C 是feature,最後一列C是類別:
由S隨機生成M個子矩陣:
這M個子集得到 M 個決策樹:
將新數據投入到這M個樹中,得到M個分類結果,計數看預測成哪一類的數目最多,就將此類別作為最後的預測結果。
3、邏輯回歸
當預測目標是概率這樣的,值域需要滿足大於等於0,小於等於1的,這個時候單純的線性模型是做不到的,因為在定義域不在某個範圍之內時,值域也超出了規定區間。
所以此時需要這樣的形狀的模型會比較好:
那麼怎麼得到這樣的模型呢?
這個模型需要滿足兩個條件 「大於等於0」,「小於等於1」
大於等於0 的模型可以選擇絕對值,平方值,這裡用指數函數,一定大於0;
小於等於1 用除法,分子是自己,分母是自身加上1,那一定是小於1的了。
再做一下變形,就得到了 logistic regressions 模型:
通過源數據計算可以得到相應的係數了:
最後得到 logistic 的圖形:
4、SVM
要將兩類分開,想要得到一個超平面,最優的超平面是到兩類的 margin 達到最大,margin就是超平面與離它最近一點的距離,如下圖,Z2>Z1,所以綠色的超平面比較好。
將這個超平面表示成一個線性方程,在線上方的一類,都大於等於1,另一類小於等於-1:
點到面的距離根據圖中的公式計算:
所以得到total margin的表達式如下,目標是最大化這個margin,就需要最小化分母,於是變成了一個優化問題:
舉個例子,三個點,找到最優的超平面,定義了 weight vector=(2,3)-(1,1):
得到weight vector為(a,2a),將兩個點代入方程,代入(2,3)另其值=1,代入(1,1)另其值=-1,求解出 a 和 截矩 w0 的值,進而得到超平面的表達式。
a求出來後,代入(a,2a)得到的就是support vector,
a和w0代入超平面的方程就是support vector machine。
5、樸素貝葉斯
舉個在 NLP 的應用:
給一段文字,返回情感分類,這段文字的態度是positive,還是negative:
為了解決這個問題,可以只看其中的一些單詞:
這段文字,將僅由一些單詞和它們的計數代表:
原始問題是:給你一句話,它屬於哪一類 ?
通過bayes rules變成一個比較簡單容易求得的問題:
問題變成,這一類中這句話出現的概率是多少,當然,別忘了公式里的另外兩個概率。
例子:單詞「love」在positive的情況下出現的概率是 0.1,在negative的情況下出現的概率是0.001。
6、K最近臨演算法
給一個新的數據時,離它最近的 k 個點中,哪個類別多,這個數據就屬於哪一類。
例子:要區分「貓」和「狗」,通過「claws」和「sound」兩個feature來判斷的話,圓形和三角形是已知分類的了,那麼這個「star」代表的是哪一類呢?
k=3時,這三條線鏈接的點就是最近的三個點,那麼圓形多一些,所以這個star就是屬於貓。
7、K均值演算法
先要將一組數據,分為三類,粉色數值大,黃色數值小 。
最開始先初始化,這裡面選了最簡單的 3,2,1 作為各類的初始值 。
剩下的數據里,每個都與三個初始值計算距離,然後歸類到離它最近的初始值所在類別。
分好類後,計算每一類的平均值,作為新一輪的中心點:
幾輪之後,分組不再變化了,就可以停止了:
8、Adaboost
adaboost 是 bosting 的方法之一。
bosting就是把若干個分類效果並不好的分類器綜合起來考慮,會得到一個效果比較好的分類器。
下圖,左右兩個決策樹,單個看是效果不怎麼好的,但是把同樣的數據投入進去,把兩個結果加起來考慮,就會增加可信度。
adaboost 的例子,手寫識別中,在畫板上可以抓取到很多 features,例如始點的方向,始點和終點的距離等等。
training的時候,會得到每個feature的weight,例如2和3的開頭部分很像,這個feature對分類起到的作用很小,它的權重也就會較小。
而這個alpha角就具有很強的識別性,這個feature的權重就會較大,最後的預測結果是綜合考慮這些feature的結果。
9、網路神經
Neural Networks適合一個input可能落入至少兩個類別里:
NN由若干層神經元,和它們之間的聯繫組成。
第一層是input層,最後一層是output層。
在hidden層和output層都有自己的classifier。
input輸入到網路中,被激活,計算的分數被傳遞到下一層,激活後面的神經層,最後output層的節點上的分數代表屬於各類的分數,下圖例子得到分類結果為class 1;
同樣的input被傳輸到不同的節點上,之所以會得到不同的結果是因為各自節點有不同的weights 和bias,這也就是forward propagation。
10、馬爾可夫
Markov Chains 由state和transitions組成。
例子,根據這一句話 『the quick brown fox jumps over the lazy dog』,要得到markov chains。
步驟,先給每一個單詞設定成一個狀態,然後計算狀態間轉換的概率。
這是一句話計算出來的概率,當你用大量文本去做統計的時候,會得到更大的狀態轉移矩陣,例如the後面可以連接的單詞,及相應的概率。
生活中,鍵盤輸入法的備選結果也是一樣的原理,模型會更高級。
此鏈接可觀看詳細視頻講解:
https://www.leiphone.com/news/201707/nL57wR7ZtbfsRgDR.html?viewType=weixin
來源:數據與演算法之美
作者 :不會停的蝸牛
Python量化投資實戰營(深圳-香港)
量化交易深入解析
用Python做量化交易
Mongodb資料庫與數據處理
Python量化引擎基礎,執行一個策略
環球FOF投資
股票數據統計與Alpha因子策略
量化策略-CTA策略……
2017年8月21日-25日(第二期)深圳-香港
點擊展開全文
※史上最明了的「編程語言琅琊榜」
※文本挖掘找出50年間最流行的音樂
※理解這25個概念,你的人工智慧,深度學習,機器學習才算入門!
※MC 量化策略集訓營——找出適合自己的程序化交易系統
TAG:大數據實驗室 |
※演算法無法創作藝術,但它卻能左右你我的審美;是忠粉給了蘋果自信,讓發布會不再那麼有趣
※演算法無法創作藝術,但它已經能夠左右你我的審美;是忠粉給了蘋果自信,讓發布會不再那麼有趣
※要學習機器學習,先從這十大演算法開始吧
※不同機器學習演算法的數據要求
※數據產品必備技術知識:機器學習及常見演算法,看這一篇就夠了
※演算法太多挑花眼?教你如何選擇正確的機器學習演算法
※上手機器學習,從搞懂這十大經典演算法開始
※誰說選擇機器學習演算法沒有套路的?
※為什麼我的力劈沒有觸發兩次,力劈不演算法術嗎
※AI研究人員說,當演算法出錯時,我們需要更多的力量來反擊
※老說演算法已經入侵我們生活,那機器學習都用在哪些地方?
※別再讓演算法控制你的大腦
※把看不懂的演算法做成產品,「智鈾科技」讓 AI 小白也能上手機器學習
※手機拍照演算法好 真的就可以為所欲為?
※事情污,但演算法不污
※新手必看的十種機器學習演算法
※無監督機器學習中,最常見的聚類演算法有哪些?
※量子計算機如何輕鬆搞定經典演算法不可能完成的任務?
※僅需六步,從零實現機器學習演算法!
※在演算法中練習百年後,機器人的手能比你更靈活嗎?