2017.2.27
第一章 《機器學習基礎》
思維導圖
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9sGRPhXUU1EMJRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3QTN0EDMzMTMxEjMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1、關鍵術語的解釋
特征:測量所有可測屬性,而後再挑選出重要部分,也可以稱作屬性
分類:機器學習的主要任務就是分類,即根據目标變量對特征進行分類
訓練集:通常我們為算法輸人大量已分類資料作為算法的訓練集。訓練集是用于訓練機器學習算法的資料樣本集合
訓練樣本:特征或者屬性通常是訓練樣本集的列,它們是獨立測量得到的結果,多個特征聯系在一起共同組成一個訓練樣本
目标變量:目标變量是機器學習算法的預測結果,在分類算法中目标變量的類型通常是标稱型的,而在回歸算法中通常是連續型的
測試集:當機器學習程式開始運作時,使用訓練樣本集作為算法的輸人,訓練完成之後輸人測試樣本。測試過程提供的樣本集合即為測試集
知識表示:假定分類程式,經過測試滿足精确度要求,是否我們就可以看到機器巳經學會了如何區分不同的鳥類了呢?這個過程稱為知識表示,知識表示可以采用規則集的形式,也可以采用機率分布的形式。
監督學習:機器隻需從輸入資料中預測合适的模型,并從中計算出目标變量的結果。主要任務是将執行個體黎據劃分到合适的分類中。機器學習的另一項任務是回歸,它主要用于預測數值型資料。大多數人可能都見過回歸的例子— 資料拟合曲鉍:通過給定資料點的最優拟合曲線。分類和回歸屬于監督學習,之是以稱之為監督學習,是因為這類算法必須知道預測什麼,即目标變量的分類資訊。
非監督學習:資料沒有類别資訊,也不會給定目标值。在無監督學習中,将資料集合分成由類似的對象組成的多個類的過程被稱為聚類;将尋找描述資料統計值的過程稱之為密度估計。此外,無監督學習還可以減少資料特征的次元,以便我們可以使用二維或三維圖形更加直覺地展示資料資訊。
2、學習算法分類
選擇算法的方法:
首先考慮使用機器學習算法的目的。
如果想要預測目标變量的值,則可以選擇監督學習算法,否則可以選擇無監督學習算法。确定選擇監督學習算法之後,需要進一步确定目标變量類型,如果目标變量是離散型,如是/否、1/2/3、― 冗或者紅/黃/黑等,則可以選擇分類器算法;如果目标變量是連續型的數值,如0.0~ 100.00、-999999或者+00-00等,則需要選擇回歸算法。
如果不想預測目标變量的值,則可以選擇無監督學習算法。進一步分析是否需要将資料劃分為離散的組。如果這是唯一的需求,則使用聚類算法;如果還需要估計資料與每個分組的相似程度,則需要使用密度估計算法。
3、開發機器學習應用程式的步驟
● 收集資料:使用很多方法收集樣本資料,如:制作網絡爬蟲從網站上抽取資料等
● 準備輸入資料:得到資料之後,還必須確定資料格式符合要求,采用的python标志的list清單的
格式,使用這種标準資料格式可以融合算法和資料源,友善比對操作
● 分析輸入資料:此步驟主要是人工分析以前得到的資料。為了確定前兩步有效,最簡單
的方法是用文本編輯器打開資料檔案,査看得到的資料是否為空值。此外,還可以進一步浏覽數
據,分析是否可以識别出模式;資料中是否存在明顯的異常值,如某些資料點與資料集中的其他
值存在明顯的差異
● 訓練算法:将前兩步得到的格式化資料輸入到算法,從中抽取知識或資訊。這裡得到的知識需要
存儲為計算機可以處理的格式,友善後續步驟使用。如果使用無監督學習算法,由于不存在目标變量值,故而也不需要訓練算法,所有與算法相關的内容都集中在第5步。
● 測試算法:這一步将實際使用第4步機器學習得到的知識資訊。為了評估算法,必須測試算
法工作的效果。對于監督學習,必須已知用于評估算法的目标變量值;對于無監督學習,也必須用
其他的評測手段來檢驗算法的成功率。無論哪種情形,如果不滿意算法的輸出結果,則可以回到第
4步,改正并加以測試。問題常常會跟資料的收集和準備有關,這時你就必須跳回第1步重新開始。
● 使用算法:将機器學習算法轉換為應用程式,執行實際任務,以檢驗上述步驟是否可以
在實際環境中正常工作。此時如果碰到新的資料問題,同樣需要重複執行上述的步驟。
4、總結:
學習機器學習算法,必須了解資料執行個體,每個資料執行個體由多個特征值組成。分類是基本的機
器學習任務,它分析未分類資料,以确定如何将其放人已知群組中。為了建構和訓練分類器,必
須首先輸人大量巳知分類的資料,我們将這些資料稱為訓練樣本集。
5、問題
非監督學習還是不懂,什麼是非監督學習,如果說是不需要有一個最終結果,那麼它這種學習方式又有什麼用呢???
機器(計算機)學習分為有監督和無監督兩個類,基本上可以從他們會不會得到一個特定的标簽(label)輸出來區分。
這裡标簽指的是用來描述某一個物體屬性的話語。比如人類有兩種,我們要區分這兩種人,就根據生理特征,分别對兩種人打上标簽,一種是[男人],另一種是[女人]。
有監督學習(Supervised Learning):
先來問題化地解釋一下有監督學習:你有一些問題和他們的答案,你要做的有監督學習就是學習這些已經知道答案的問題。然後你就具備了經驗了,這就是學習的成果。然後在你接受到一個新的不知道答案的問題的時候,你可以根據學習得到的經驗,得出這個新問題的答案。(試想一下聯考不正是這樣,好的學習器就能有更強的做題能力,考好的分數,上好的大學…)。
我們有一個樣本資料集,如果對于每一個單一的資料根據它的特征向量我們要去判斷它的标簽(算法的輸出值),那麼就是有監督學習。通俗的說,有監督學習就是比無監督學習多了一個可以表達這個資料特質的标簽。
我們再來看有監督學習,分為兩個大類:
1.回歸分析(Regression Analysis):回歸分析,其資料集是給定一個函數和它的一些坐标點,然後通過回歸分析的算法,來估計原函數的模型,求出一個最符合這些已知資料集的函數解析式。然後它就可以用來預估其它未知輸出的資料了,你輸入一個自變量它就會根據這個模型解析式輸出一個因變量,這些自變量就是特征向量,因變量就是标簽。 而且标簽的值是建立在連續範圍的。
2.分類(Classification):其資料集,由特征向量和它們的标簽組成,當你學習了這些資料之後,給你一個隻知道特征向量不知道标簽的資料,讓你求它的标簽是哪一個?其和回歸的主要差別就是輸出結果是離散的還是連續的。**
無監督學習(Unsupervised Learning):
“Because we don’t give it the answer, it’s unsupervised learning”。
還是先來問題化地解釋一下無監督學習:我們有一些問題,但是不知道答案,我們要做的無監督學習就是按照他們的性質把他們自動地分成很多組,每組的問題是具有類似性質的(比如數學問題會聚集在一組,英語問題會聚集在一組,實體…)。
所有資料隻有特征向量沒有标簽,但是可以發現這些資料呈現出聚群的結構,本質是一個相似的類型的會聚集在一起。把這些沒有标簽的資料分成一個一個組合,就是聚類(Clustering)。比如Google新聞,每天會搜集大量的新聞,然後把它們全部聚類,就會自動分成幾十個不同的組(比如娛樂,科技,政治…),每個組内新聞都具有相似的内容結構。
無監督學習還有一個典型的例子就是雞尾酒會問題(聲音的分離),在這個酒會上有兩種聲音,被兩個不同的麥克風在不同的地方接收到,而可以利用無監督學習來分離這兩種不同的聲音。注意到這裡是無監督學習的原因是,事先并不知道這些聲音中有哪些種類(這裡的種類就是标簽的意思)。
而且雞尾酒問題的代碼實作隻要一行,如下:
[注]:内容參考吳恩達在Coursera上的機器學習課程。
自己的思考(舉例):
監督學習,比如上述的聯考,每天學習指定的書本上的知識點,知道聯考會考的這些知識點,那麼我通學習課本的知識,就知道對應知識點的答案,就能在聯考上寫出正确的答案出來。
非監督學習,依舊是聯考,但是不是學習課本上的知識,學習的是課外知識,看課外的書,并不知道這些課外知識聯考會不會考到,也就是學習的途中不能給出聯考會考的知識點的答案,但是這些課外知識存在可能性對結果産生影響,這種資料直接内在的聯系,就是所謂的非監督學習。