10機器學習之監督學習
監督學習的目標
利用一組帶有標籤的資料,學習從輸人到輸出的對映,然後將這種對映關係應用到未知資料上,達到分類或迴歸的目的。
- 分類:當輸出是離散的,學習任務為分類任務。
- 迴歸:當輸出是連續的,學習任務為迴歸任務。
分類
分類任務:
分類學習
輸人:一組有標籤的訓練資料(也稱觀察和評估),標籤表明了這些資料(觀察)的所署類別。
輸出:分類模型根據這些訓練資料,訓練自己的模型引數,學習出一個適合這組資料的分類器,當有新資料(非訓練資料)需要進行類別判斷,就可以將這組新資料作為輸人送給學好的分類器進行判斷。
分類學習-評價
訓練集(training set):顧名思義用來訓練模型的已標註資料,用來建立模型,發現規律。
測試集(testing set):也是已標註資料,通常做法是將標註隱藏,輸送給訓練好的模型,通過結果與真實標註進行對比,評估模型的學習能力。
訓練集/測試集的劃分方法根:據已有標註資料,隨機選出一部分(70%)資料作為訓練資料,餘下的作為測試資料,此外還有交叉驗證法,自助法用來評估分類模型。
分類學習-評價標準
精確率(P):精確率是針對我們預測結果而言的,(以二分類為例)它表示的是預測為正的樣本中有多少是真正的正樣本。那麼預測為正就有兩種可能了,一種就是把正類預測為正類(TP),另一種就是把負類預測為正類(FP)。
召回率(R):是針對我們原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確了。那也有兩種可能,—種是把原來的正類預測成正類(TP),另一種就是把原來的正類預測為負類(FN)。
假設:手上有60個正樣本,40個負樣本,我們要找出所有的正樣本,分類演算法查找出50個,其中只有40個是真正的正樣本。
-
TP:將正類預測為正類數40
-
FN:將正類預測為負類數20
-
FP:將負類預測為正類數10
-
TN:將負類預測為負類數30
準確率(accuracy)= 預測對的/所有 = (TP+TN)/(TP+FN+FP+TN)=70%
精確率(precision) = TP/(TP+FP) = 80%
召回率(recall) = TP/(TP+FN) = 66.7%
Sklearn vs.分類
與聚類演算法被統一封裝在sklearn.cluster模組不同,sklearn庫中的分類演算法並未被統一封裝在一個子模組中,因此對分類演算法的import方式各有不同。
Sklearn提供的分類函式包括:
- k近鄰(knn)
- 樸素貝葉斯(naivebayes)
- 支援向量機(svm)
- 決策樹(decision tree)
- 神經網路模型(Neural networks)等
其中有線性分類器,也有非線性分類器。
以下圖片展示了,分別用線性分類器和非線性分類器,分類的結果。
分類演算法的應用
金融:貸款是否批准進行評估
醫療診斷:判斷一個腫瘤是惡性還是良性
欺詐檢測:判斷一筆銀行的交易是否涉嫌欺詐
網頁分類:判斷網頁的所屬類別,財經或者是娛樂?
迴歸分析
迴歸:統計學分析資料的方法,目的在於瞭解兩個或多個變數間是否相關、研究其相關方向與強度,並建立數學模型以便觀察特定變數來預測研究者感興趣的變數。迴歸分析可以幫助人們瞭解在自變數變化時因變數的變化量。一般來說,通過迴歸分析我們可以由給出的自變數估計因變數的條件期望。
迴歸任務:
Sklearn vs.迴歸
Sklearn提供的迴歸函式主要被封裝在兩個子模組中,分別是sklearn.linear_model和sklearn.preprocessing。
sklearn.linear_modlel封裝的是一些線性函式。
線性迴歸函式:
- 普通線性迴歸函式( LinearRegression )
- 嶺迴歸(Ridge )
- Lasso ( Lasso )
非線性迴歸函式:
多項式迴歸則通過呼叫sklearn.preprocessing子模組進行擬合。
迴歸應用
迴歸方法適合對一些帶有時序資訊的資料進行預測或者趨勢擬合,常用在金融及其他涉及時間序列分析的領域。
- 股票趨勢預測
- 交通流量的預測