老闆:小韓啊,來來來!工程是否是寫夠了啊?算法
我:(what!!!)emmmm,還行還行。網絡
老闆:一看你就是寫夠了。最近公司要搞機器學習,你帶頭來學習一下吧!機器學習
我:行啊,工程代碼我早就不想寫了。那就學習一下吧!編輯器
老闆:好,那就先去看《機器學習》吧!性能
荒廢了大四很久的時間,最近,本身總算是慢慢提起學習的興趣,開始學習機器學習了。之前歷來沒有接觸過機器學習,因此在學習的初期,本身也向學長學姐請教了一下,因而決定從《機器學習實戰》這本書開始入門機器學習。學習
爲何選擇這本書,其實,整體來看,這本書比較基礎,適合入門。對於一些數學定理,也就是拿過來用,並不注重這些定理的高深的推導過程。這對我一個數學渣渣來講,正好能夠接受。測試
做爲一名標準的理工男,我也算是第一次寫文章,可能會有語病問題。有些東西可能寫的很差,說的不明白,還望你們見諒。網站
好了,開篇的廢話我也很少說了,直接進入「機器學習」的世界!設計
除卻一些可有可無的狀況,咱們很難直接從原始數據自己得到所需信息。3d
例如,對於垃圾郵件的檢測,偵測一個單詞是否存在並無太大的做用,然而當某幾個特定單詞同時出現時,再輔 以考察郵件長度及其餘因素,咱們就能夠更準確地斷定該郵件是否爲垃圾郵件。
簡單地說,機器學習就是把無序的數據轉換成有用的信息,讓機器向咱們的大腦同樣去學習去判斷。
其實,書中還有更多的信息去介紹機器學習的背景,由於大部分都是理論套話,這裏我就不給你們列出了,有興趣的能夠直接去看《機器學習實戰》這本書。
咱們接下來直接看一下與機器學習有關的術語。
在踏入任何一個領域以前,咱們都有必要去了解該領域所讀應的術語,機器學習也不例外。
好了,老闆來了。
老闆:小韓啊,看的怎麼樣了?機器學習裏面的一些術語明白了嗎??
我:明白了!明白了!So Easy!
老闆:hhhh,好。那你給我係統的介紹一下吧。
我:好嘞!(求升職加薪臉)
下面,咱們就從一個鳥類分類系統來介紹機器學習中的相關術語。
這類系統很是有趣,一般與機器學習中的專家系統有關。開發出可以識別鳥類的計算機軟件,鳥類學者就能夠退休了。由於鳥類學者是研究鳥類的專家,所以咱們因此說建立的是一個專家系統。
下表是咱們用於區分不一樣鳥類須要使用的四個不一樣的屬性值,咱們選用體重、翼展、有無腳蹼以及後背顏色做爲評測基準。現實中,你可能會想測量更多的值。一般的作法是測量全部可測屬性,然後再挑選出重要部分。下面測量的這四種值稱之爲特徵,也能夠稱做屬性,咱們接下來一概將其稱爲特徵。表中的每一行都是一個具備相關特徵的實例。
編號 | 體重(克) | 翼展(釐米) | 腳蹼 | 後背顏色 | 種屬 |
---|---|---|---|---|---|
1 | 1000.1 | 125.0 | 無 | 棕色 | 紅尾鵟 |
2 | 3000.7 | 200.0 | 無 | 灰色 | 鷺鷹 |
3 | 3300.0 | 220.3 | 無 | 灰色 | 鷺鷹 |
4 | 4100.0 | 136.0 | 有 | 黑色 | 普通潛鳥 |
5 | 3.0 | 11.0 | 無 | 綠色 | 瑰麗蜂鳥 |
6 | 570.0 | 75.0 | 無 | 黑色 | 象牙喙啄木鳥 |
老闆:等一下,你這光有文字,太抽象了。
我:那你等一下,我給你畫張圖,你就明白了。
老闆:不錯不錯,這樣好理解多了!
若是你看到了一隻象牙喙啄木鳥,請立刻通知我!並且千萬不要告訴任何人。在我到達以前, 必定要看住它,別讓它飛跑了。(任何發現活的象牙喙啄木鳥的人均可以獲得5萬美圓的獎勵)
機器學習的主要任務就是分類。接下來咱們就利用上表進行分類,標識出象牙喙啄木鳥從而獲取5萬美圓的獎勵。
你們都想從衆多其餘鳥類中分辨出象牙喙啄木鳥,並從中獲利。
簡單的作法是安裝一個餵食器,而後僱用一位鳥類學者,觀察在附近進食的鳥類。若是發現象牙喙啄木鳥,則通知咱們。這種方法太昂貴了,並且專家在同一時間只能出如今一個地方。
咱們能夠自動化處理上述過程,安裝多個帶有照相機的餵食器,同時接入計算機用於標識前來進食的鳥。 一樣咱們能夠在餵食器中放置稱重儀器以獲取鳥的體重,利用計算機視覺技術來提取鳥的翅長、 腳的類型和後背色彩。假定咱們能夠獲得所需的所有特徵信息,那該如何判斷飛入進食器的鳥是 不是象牙喙啄木鳥呢?
這個任務就是分類,有不少機器學習算法很是善於分類。本例中的類別就是鳥的物種,更具體地說,就是區分是否爲象牙喙啄木鳥。 最終咱們決定使用某個機器學習算法進行分類,首先須要作的是算法訓練,即學習如何分類。 一般咱們爲算法輸入大量已分類數據做爲算法的訓練集。訓練集是用於訓練機器學習算法的數據樣本集合,那麼上表是包含六個訓練樣本的訓練集,每一個訓練樣本有4種特徵、一個目標變量。目標變量是機器學習算法的預測結果,在分類算法中目標變量的類型一般是標稱型的, 而在迴歸算法中一般是連續型的。訓練樣本集必須肯定知道目標變量的值,以便機器學習算法能夠發現特徵和目標變量之間的關係。正如前文所述,這裏的目標變量是物種,也能夠簡化爲標稱型的數值。咱們一般將分類問題中的目標變量稱爲類別,並假定分類問題只存在有限個數的類別。
老闆:那你繼續畫圖!
我:遵命!
注意:特徵或者屬性一般是訓練樣本集的列,它們是獨立測量獲得的結果,多個特徵聯繫在一 起共同組成一個訓練樣本。
好了,咱們如今已經有了數據,也作好了分類訓練的工做,接下來就是測試工做了。
爲了測試機器學習算法的效果,一般使用兩套獨立的樣本集:訓練數據和測試數據。
後面咱們將會引入更好地使用測試樣本和訓練樣本信息的方法,這裏就再也不詳述。
假定這個鳥類分類程序,通過測試知足精確度要求,是否咱們就能夠看到機器已經學會了如何區分不一樣的鳥類了呢?這部分工做稱之爲知識表示,某些算法能夠產生很容易理解的知識表示,而某些算法的知識表示也許只能爲計算機所理解。知識表示能夠採用規則集的形式,也能夠採用機率分佈的形式,設置能夠是訓練樣本集中的一個實例。在某些場合中,人們可能並不想創建一個專家系統,而僅僅對機器學習算法獲取的信息感興趣。此時,採用何種方式表示知識就顯得很是重要了。
好了,說了這麼多,可能會有點多,這裏由於是術語,定義我也不能本身胡謅,我就結合西瓜書,給你們稍微總結一下基本的術語,可能說的不是很清楚,若是有什麼不對的地方,歡迎你們指正。固然,在後面的學習中,咱們會接觸到更多的術語,這裏我就很少贅述了。
老闆:小夥子幹得不錯啊!
我:還行,還行!
老闆:今晚給你加雞腿,你就在公司好好幹!
我:(臉上笑嘻嘻,心裏mmp)
上面的例子中,咱們已經介紹了機器學習是如何解決分類問題的,它的主要任務就是將實例數據劃分到合適的分類中去。
機器學習的另外一項任務是迴歸(regression),它用於預測數值型數據。大多數人都見多回歸的例子——數據擬合曲線:經過給定數據點的最優擬合曲線。
分類和迴歸術語監督學習,之因此稱之爲監督學習,是由於這類算法必須知道預測什麼,即目標變量的分類信息。
與監督學習相對應的就是無監督學習,此時數據沒有類別信息,也不會給定目標值。
此外,無監督學習還能夠減小數據特徵的維度,以便咱們可使用二維或三維圖形更加直觀地展現數據信息。
下面這個表格是《機器學習實戰》這本書上的,由於我也是入門級,因此就直接拿過來用了。
1.監督學習的用途
分類 | 迴歸 |
---|---|
k-近鄰算法 | 線性迴歸 |
樸素貝葉斯算法 | 局部加權線性迴歸 |
支持向量機(SVM) | Ridge線性迴歸 |
決策樹 | Lasso最小回歸係數估計 |
2.無監督學習的用途
聚類 | 密度估計 |
---|---|
K-均值 | 最大指望算法 |
DBSCAN | Parzen窗設計 |
好吧,這麼多東西都是啥玩意?我也不知道。後面,咱們慢慢學習,揭開這神祕的面紗!
老闆:小韓啊,最近機器學期看得怎麼樣了啊?
我:還行還行啦,基本的術語都搞明白了啊,也瞭解了一些算法和機器學習的分類了。
老闆:不錯,不錯。那你知道如何選擇合適的機器學習算法嗎?
我:那固然了。書上寫的仍是很明白的!
老闆:那你給我講講!
老闆啊,這麼多機器學習算法,咱們該如何進行選擇呢?其實,有兩個問題須要咱們考慮。
簡單點,就是目的和數據,也就是咱們用什麼數據作什麼用。
首先考慮使用機器學習算法的目的。若是想要預測目標變量的值,則能夠選擇監督學習算法, 不然能夠選擇無監督學習算法。肯定選擇監督學習算法以後,須要進一步肯定目標變量類型,若是目標變量是離散型,如是/否、1/2/三、A/B/C或者紅/黃/黑等,則能夠選擇分類器算法;若是目標變量是連續型的數值,如0.0~100.00、-999~999或者+∞~-∞等,則須要選擇迴歸算法。 若是不想預測目標變量的值,則能夠選擇無監督學習算法。進一步分析是否須要將數據劃分爲離散的組。若是這是惟一的需求,則使用聚類算法;若是還須要估計數據與每一個分組的類似程度,則須要使用密度估計算法。
好吧,這麼多字,有點煩哦,不如來一張圖片。
在大多數狀況下,上面給出的選擇方法都能幫助讀者選擇恰當的機器學習算法,但這也並不是一成不變。
其次須要考慮的是數據問題。咱們應該充分了解數據,對實際數據瞭解得越充分,越容易建立符合實際需求的應用程序。主要應該瞭解數據的如下特性:
充分了解上面提到的這些數據特性能夠縮短選擇機器學習算法的時間。
咱們只能在必定程度上縮小算法的選擇範圍,通常並不存在好的算法或者能夠給出好結果的算法,同時還要嘗試不一樣算法的執行效果。對於所選的每種算法,均可以使用其餘的機器學習技術來改進其性能。在處理輸入數據以後,兩個算法的相對性能也可能會發生變化。後續章節咱們將進一步討論此類問題,通常說來發現好算法的關鍵環節是反覆試錯的迭代過程。
在《機器學習實戰》這本書中,開發和使用機器學習算法開發應用程序,一般遵循如下的步驟。
這些都是書上的原內容,我以爲總結得很好,因此就直接拿過來給你們看了。
老闆:小韓啊,機器學習你也算是基本入門了。不只掌握了機器學習的相關術語,還掌握瞭如何選擇機器學習算法和開發機器學習應用程序的步驟,總的來講仍是很不錯的!
我:謝謝老闆誇獎,那加工資不?
老闆:你說啥?工做過輕鬆了?好,那明天就給你安排新的任務,幹得好能夠考慮加雞腿!!!
我:溜了溜了,今天就到這裏了!
最後,歡迎你們關注個人公衆號,有什麼事情歡迎你們給我留言!!!