機器學習各方法簡介

2021-09-29 22:13:59 字數 2636 閱讀 5224

什麼是機器學習?我們把它分成兩部分看:

1.必須有一些已經存在的資料,拿來給機器學習。

2.機器學習之後必須給出自己的學習結果,也是是舉一會反三。

機器拿到資料後可以有不同的學習方法,這些方法得到的結果不盡相同,可以自主選擇。

以下是各方法:

決策樹顧名思義:一棵用來決策的樹。

機器學習已有的資料,分析什麼情況會導致什麼結果,把它畫成一顆分叉的樹,

然後如果有新資料來了,帶入這棵樹來決策應該怎麼做。

比如帶入性別,得到結果:性別女則決策買買買,性別男則決策吃吃吃。

樸素貝葉斯

貝葉斯是個概率公式。

你觀察資料發現,所有渣男陣營都是錫紙燙,但是好人陣營裡有一小部分也是錫紙燙。

假設所有錫紙燙的人中渣男有80個人,好人有20個人。就得到錫紙燙的渣男概率了。

概率就是:檢測新來的錫紙燙人,他有80%的概率是渣男。

梯度下降

顧名思義:乙個按照梯度方向,下降最快方向,下降到底的方法。

你面前有一座山,就是初始資料,你每向山下走一步就是下降一次,問題是如何才能最快下山呢?當然是選擇梯度(最陡峭的方向)方向向下走啦!

梯度的選擇是自己設定的,下降距離最大的。可以嘗試很多方向。

這是乙個演算法,每次需要計算的時候可以呼叫這個演算法。

邏輯回歸

顧名思義:已知原來的資料的邏輯,就是好與不好。擬合原來的資料,線性也好,非線性也好。隨便怎麼樣,反正把好與不好分開來,然後隨意丟給你你乙個資料問你猜好不好就是邏輯回歸。

邏輯就是分類。

回歸就是隨意給你乙個資料,你去猜它的類。

怎麼看分類的好不好呢?還是隨便畫一條線,我們統計一下分正確的點和分錯誤的點,但是個數這個東西不好弄呀,有可能個數一樣但是分的差的很遠,我們得想個辦法來衡量一下。

辦法就是:如果這個資料分正確了,就加上乙個很小的的值,但是乙個資料分錯了就加上乙個很大的值,可以把這個值想象成閃電的強度,我們力圖找到乙個最小的閃電強度。

對,轉化成數值來衡量之後,我們就又可以用梯度下降法來找最小值了。

這個閃電叫誤差懲罰,最後加起來得到的強度叫誤差,越小越好。

支援向量機

英文是svm,s是support 顧名思義:支援,其實翻譯成支撐的意思更容易理解。

我們按照邏輯回歸分類,突然發現分隔資料的時候有很多線都成立,但是誰分的更好一點呢?

總要有個衡量準則,就像邏輯回歸線是通過誤差值來衡量一樣,我們選擇支援向量機完成是另外一種方法,就是支撐點,一條線分的好不好就看離這條線最近點的距離是多少(這個距離一定是最小值,這個點就是支撐點),然後嘗試第二條符合分隔的線,求出支撐點的距離,一比較,哎嘿,乙個大乙個小,肯定選距離大的那條線,因為他的支撐性比較好,容錯率較高。

總結來說:

有不同的線對比,每條線都有支撐著的點,對比一下他們離分割線的距離,距離越大越好,因為分的開一點。這種方法叫支援向量機。

神經網路

上面接觸的方法都是用一條線分隔,現如今出現的情況是,在已經分隔好的情況下,需要繼續取一部分細分,取同時符合兩種線的部分,如何操作?

其實也沒什麼難度,就直接用兩條線分就行啦,為了形象的把這個過程描述出來,就模擬到神經元這個概念。

資料傳輸過來,進入乙個神經元(一條線)判斷處理取符合條件的值(可以是0 1型別),再進入另乙個神經元(另外那條線)取符合條件的值(可以是0 1型別),把這兩個神經元(線)處理好的東西接在一起處理(與運算)判斷是否都滿足,是則輸出,不是則丟棄。

這樣畫下來還真是神經網路的樣子,所以這種方法叫神經網路。

核函式kernel trick,發音核,之前學的方法我們都預設用直線劃分,那是因為給的資料自己就分的很開,我們尋找到合適的直線就可以了,有這樣的一種情況,所有的資料再一條直線上,怎麼辦呢?

很簡單:

用曲線啊!

眾所周知,曲線的函式表示式有兩個字母,乙個未知數,他們蘊含某種關係,完全可以把資料區分開!

但令人感興趣的是,我們可以提高維度,比如賦予兩個字母某種關係,把這個值放在第三個字母上,這樣就是三個字母兩個未知數的式子啦,這樣也叫核函式!

我們依然可以把核函式理解為分類問題。

總結:有乙個忍者,他看到資料,

啪一下直接分成兩半了,那麼它叫:邏輯回歸忍者。

他小心翼翼的對比著邊界資料切開,那麼他叫:支援向量機忍者。

他交叉砍了好多刀,把資料分成了區域,那麼他叫:神經網路忍者。

他對著排成一行的資料撓了撓頭,拍桌而起,符合條件的資料因為小震到了上半空間,大的落在了下半空間,那麼他叫:核函式忍者。

k均值聚類

顧名思義:聚類,就是把聚在一起的資料標記出來,聰明的人類一下就能看出來怎麼分!

機器怎麼學習呢?

隨機散落幾個值(a,b,c),分別求離a,b,c近的資料a,b,c,調整a,b,c到a,b,c中間(k均值的意思)。

迭代:重新標記離a,b,c近的資料集a,b,c,調整a,b,c到資料集a,b,c中間。

直到穩定。

重要的一點是:我們需要提前給定聚類的數量,比如例子中的a,b,c三個類。

層次聚類

如果不知道聚類數量怎麼辦?

從資料入手,如果兩個資料之間距離小於我們設定的值,就合併進乙個分組(層次的意思),一直迭代,直到演算法結束。

這樣我們就得到了乙個根據距離長短分好的聚類了。

陣列各方法

object.keys 資料是陣列時,以陣列的方式返回陣列的各個索引值 資料是物件時,以陣列的方式返回物件的各個鍵名 object.assign 主要作用是把多個物件合併在一起,成為乙個新物件 注意點 原各個物件也會改變成新合併的物件,解決方法如下 var emptyobj var obj obje...

機器學習簡介

機器學習簡介 機器學習是人工智慧的乙個分支。人工智慧的研究是從以 推理 為重點到以 知識 為重點,再到以 學習 為重點,一條自然 清晰的脈絡。顯然,機器學習是實現人工智慧的乙個途徑,即以機器學習為手段解決人工智慧中的問題。機器學習在近30多年已發展為一門多領域交叉學科,涉及概率論 統計學 逼近論 凸...

機器學習 簡介

機器學習,即人工智慧的乙個分支,人工智慧目前具有一定的限制,無法突破強人工智慧,即無法像人類一樣思考,感受等。機器學習其實就是通過大量的資料輸入,找出符合資料集的演算法模型,在輸入新的資料集時在進行判斷其屬性,是數學 計算機和統計學的集合。類似於人類的學習經驗,使用經驗判斷的過程。機器學習在於區分和...