機器學習--介紹

1.機器學習:經過對以往歷史數據的學習創建一個模型用來預測之後的數據進行預測和分析。html

 

 

1.1監督學習 supervised learning算法

     監督學習能夠分爲生成方法(生成模型generative)和判別方法(判別模型discreiminative)機器學習

  •   生成模型:學習聯合機率分佈p(x,y)

          p(y|x)=p(x,y)/p(x)=p(y)p(x|y)/p(y)函數

          好比貝葉斯模型,隱馬爾科夫模型(HMM)學習

  •    判別模型:有數據直接學習f(x)或者條件機率分佈p(y|x)

           好比:最近鄰(KNN),感知機(perception),決策樹等設計

          

           學習過程的三要素:模型(Model)、策略、算法3d

  •     Model,即你要學習什麼樣的模型,包括線性模型,非線性模型等,取決於你要學習的問題和數據。
  •     策略,模型按照什麼樣的準則在整個模型解空間中選擇最優的模型,其實就是損失代價函數包括(0-1損失,平方損失等)
  •   算法,參數模型的求解方法,好比梯度降低法,牛頓法等。

          風險函數: 分險函數度量評價意義下的模型預測的好壞。htm

  • 經驗風險最小化,在假設空間,損失函數已經訓練數據集肯定的狀況下:

    

  •   指望風險最小化(設計的模型與真實的偏差)

        

          可是因爲咱們是沒法知道數據的真實分佈的,若是知道數據的真實分佈,咱們就不須要學習模型參數了,可是根據大數定律,當咱們的訓練數據趨於無窮大的時候,經驗風險最小化能夠近似的等於經驗風險最小化。blog

  • 結構風險最小化

         爲了使學習的模型不過擬合,引入正則項對模型的參數進行懲罰,使得模型不能過於複雜。get

     

         J(f)是模型的複雜度,好比參數向量的個數。

   舉個例子說明:

   好比房價的交易價格(Y)和房子面積(X)問題:

  

  假如如今要預測一個面積爲750的房子價格該多少錢,咱們最能想到的是用一條曲線去擬合這些點,而後求出這條曲線的方程,再把x代入求解出Y。這就是監督學習,由於對於每一條數據咱們都預先給出了正確的結果,上面這個問題又稱爲迴歸問題(regression),由於預測的變量Y是連續的。

      若是預測的變量不是連續的,而是有類別的就叫作分類問題(Classification)

  上面例子只用了一個特徵,在現實生活中其實有不少維特徵,特徵也多是無限維(svm是能夠支持無線維特徵的算法)。

   1.2無監督學習 unsupervised learning

   在有監督問題中,不管是分類仍是迴歸,咱們的每一個數據都具備一個結果。好比房價多少。可是在無監督學習算法裏面,每一個數據是沒有結果的,咱們只用特徵,而無監督學習則是學習如何能夠將這些數據分到各自不一樣的組裏面去。   無監督學習的一個例子就是聚類問題(clustering)

2.線性迴歸問題

2.1流程

      對於解決房價問題,其實咱們是要將訓練數據輸入到學習算法,進而學習到一個假設H,而後咱們將輸入變量輸入到h,預測出房價價格。

2.分類問題

 

 

    那麼對於h咱們應當如何表示呢?能夠是,由於只含有一個特徵變量,因此也叫作單變量線性迴歸問題。

2.2代價函數 cost fuction

  如今咱們就要爲咱們上面創建好的模型選擇適當的參數Θ,咱們選擇的參數就決定了咱們預測的準確度,模型的預測值和訓練集中的真實數據差就是建模偏差,咱們的目標就是要找出使得建模偏差最小的模型參數,使得代價函數最小,具體能夠查看http://www.cnblogs.com/GuoJiaSheng/p/3928160.html

3.分類問題

3.1邏輯迴歸(logistic regreesion)

 在分類問題中,咱們嘗試對一個數據進行分類,好比判別它是否正確,是否爲一封垃圾郵件。

咱們從二分類開始討論:

咱們將因變量可能屬於的類別分爲負類,正類。y={0,1},0爲負類、1爲正類。以下圖,咱們能夠用線性迴歸的方法擬合一條曲線,可是線性迴歸只能預測出連續值,可是咱們的分類問題是要預測爲1或者0,咱們能夠這樣分,當x>0.5爲1當x<0.5爲0,這樣也能夠很好的區分數據類別。

 

  可是當咱們觀測的數據愈來愈大的時候,以下圖

 

   這時候因爲新增了點,若是這時候還使用0.5做爲分隔點,就會出錯。咱們能夠得出線性迴歸,由於預測的值能夠超過[0,1],因此並不適合解決這類問題。

   咱們引入邏輯迴歸,它的輸出值只在[0,1]範圍以內。hθ(x)=g(θTX)

        x表明特徵變量

       g()表明邏輯函數。爲s形函數,其實就是sigmod函數,它的值域爲[0.1],

      ,

   對於模型的理解爲:給出參數x,根據選擇的參數計算出變量爲1或者0的機率可能性。

   當z>0是預測爲1,當在z<0時,預測爲0.

   好比說:咱們有一個模型:

 

   而且參數爲[-3 1 1] 即當-3+x1+x2>0時,即x1+x2>3時預測爲1不然爲0。爲此咱們就能夠畫出一條線用於分類。以下圖:

 

 3.2代價函數

      以前對於線性迴歸的代價咱們定義爲模型偏差的平方和,理論上在邏輯迴歸上,咱們也能夠沿用這必定義,可是若是將h(x)代入,咱們獲得的模型偏差平方和就會是一個非凸函數。這意味着咱們的代價函數有許多局部最小解,這將影響咱們使用梯度降低法求解全局最小值。

 

    所以對於邏輯迴歸的代價函數咱們從新定義爲:

 

   而後就可使用梯度降低法求解了。

 

3.3多分類問題

   對於多分類問題,咱們沒法僅僅使用0,1用於區分某個類別,以下圖:

 

一種解決的辦法就是使用一對多方案。其實就是在多類別裏面,將一個類別做爲正類,其餘剩餘的類別合起來做爲一個類別,這樣就轉化爲2分類問題。

這樣當咱們要預測的時候,將全部的分類機都執行一遍,找出最可能的類別模型做爲預測值。

相關文章
相關標籤/搜索