1.機器學習:通過對以往歷史數據的學習建立一個模型用來預測以后的數據進行預測和分析。
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)、策略、算法
- Model,即你要學習什么樣的模型,包括線性模型,非線性模型等,取決於你要學習的問題和數據。
- 策略,模型按照什么樣的准則在整個模型解空間中選擇最優的模型,其實就是損失代價函數包括(0-1損失,平方損失等)
- 算法,參數模型的求解方法,比如梯度下降法,牛頓法等。
風險函數: 分險函數度量評價意義下的模型預測的好壞。
- 經驗風險最小化,在假設空間,損失函數已經訓練數據集確定的情況下:
- 期望風險最小化(設計的模型與真實的誤差)
但是由於我們是無法知道數據的真實分布的,如果知道數據的真實分布,我們就不需要學習模型參數了,但是根據大數定律,當我們的訓練數據趨於無窮大的時候,經驗風險最小化可以近似的等於經驗風險最小化。
- 結構風險最小化
為了使學習的模型不過擬合,引入正則項對模型的參數進行懲罰,使得模型不能過於復雜。
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分類問題。
這樣當我們要預測的時候,將所有的分類機都執行一遍,找出最可能的類別模型作為預測值。