當前位置:
首頁 > 最新 > 機器學習入門——使用python進行監督學習

機器學習入門——使用python進行監督學習

AiTechYun

編輯:yuxiangyu

什麼是監督學習?

在監督學習中,我們首先要導入包含訓練特徵和目標特徵的數據集。監督式學習演算法會學習訓練樣本與其相關的目標變數之間的關係,並應用學到的關係對全新輸入(無目標特徵)進行分類。

為了說明如何監督學習的原理,讓我們看一個根據學生學習的時間來預測學生的成績的例子。

公式:

Y = f(X)+ C

在這裡:

F表示學生為考試準備的小時數和分數之間的關係

X是輸入(他睡覺的小時數)

Y是輸出(標記在考試中學生的得分)

C是隨機誤差

監督學習演算法的最終目標是以最大精度來預測給定新輸入X所對應的Y.有很多種方法可以實現監督學習; 我們在這裡討論一些最常用的方法。

根據給定的數據集,機器學習問題分為兩類:分類回歸。如果給定數據同時具有輸入(訓練)值和輸出(目標)值,那麼這是一個分類問題。如果數據集具有連續的沒有任何目標標記的特徵數值,那麼它屬於回歸問題。

分類:輸出標籤:這個是貓還是狗?

回歸:這個房子賣多少錢?


以想要分析乳腺癌的數據的醫學研究人員為例。目標是預測患者應接受三種治療方法中的哪一種。這種數據分析任務被稱為分類,在這個分類中,模型或分類器被構造來預測類標籤,例如「治療a」、「治療B」或「治療c」。

分類是預測問題,預測離散和無序的分類的類標籤。這一過程,由學習步驟和分類步驟兩部分組成。

分類中方法

最常用的分類演算法:

1.KNN演算法(K-Nearest Neighbo)

2.決策樹

3.樸素貝葉斯

4. 支持向量機

在學習步驟中,分類模型通過分析訓練集來建立分類器。在分類步驟中,預測給定數據的類標籤。在分析中,數據集元組及其關聯的類標籤分為訓練集和測試集。構成訓練集的各個元組從隨機抽樣的數據集中進行分析。剩下的元組形成測試集,並且獨立於訓練元組,也就是說它們不會用來構建分類器。

測試集用於估計分類器預測的準確性。分類器的準確性是指由分類器正確分類的測試元組的百分比。為了達到更好的準確性,最好測試不同的演算法,並在每個演算法中嘗試不同的參數。最好通過交叉驗證進行選擇。

想要為某個問題選擇合適的演算法,對於不同的演算法,精度、訓練時間、線性度、參數個數和特殊情況等參數都需要考慮。

在IRIS數據集上使用Scikit-Learn實現KNN,根據給定的輸入對花進行分類。

第一步,為了應用我們的機器學習演算法,我們需要了解和探索給定的數據集。在這個例子中,我們使用從scikit-learn包導入的IRIS數據集(鳶尾花數據集)。現在讓我們來編碼並探索IRIS數據集。

確保你的機器上已經安裝了Python。然後使用PIP安裝以下軟體包:

在這段代碼中,我們使用pandas中的幾種方法了解了IRIS數據集的屬性。

輸出:


如果一個演算法只是簡單地存儲訓練集的元組並等待給出測試元組,那麼他就是一個惰性學習法。只有當它看到測試元組時才會執行泛化,基於它與訓練元組的相似度對元組進行分類。

KNN是一個惰性學習法。

KNN基於類比學習,比較出給定的測試元組與訓練元組的相似度。訓練元組由n個特徵描述。每個元組代表一個n維空間中的一個點。這樣,所有的訓練元組都存儲在n維模式空間中。當給定未知元組時,KNN分類器在模式空間中搜索最接近未知元組的k個訓練元組。這k個訓練元組是未知元組的k個「最近鄰(nearest neighbor)」。

貼近度(Closeness)由關於距離的度量定義(例如歐幾里得度量)。一個好的K值要通過實驗確定。

在這段代碼中,我們從sklearn中導入KNN分類器,並將其應用到我們的輸入數據,對花進行分類。

輸出:

在這裡:

0對應的Versicolor

1對應的Virginica

2對應Setosa

(註:都是鳶尾花的種類)

基於給定的輸入,機器使用KNN預測兩個花都是Versicolor。

IRIS數據集分類直觀圖:


回歸通常被用於確定兩個或多個變數之間的關係。例如,根據給定的輸入數據X,你必須預測一個人的收入。

在回歸里,目標變數是指我們想要預測的未知變數,連續意味著Y可以承擔的值沒有缺口(或者說間斷點)。

預測收入是一個典型的回歸問題。你的輸入數據包含所有可以預測收入的信息(即特徵)。比如他的工作時間,教育經歷,職位和居住地。

回歸模型

一些常用的回歸模型是:

線性回歸

Logistic回歸

多項式回歸

線性回歸使用最佳擬合直線(也稱回歸線)建立因變數(Y)和一個或多個自變數(X)之間的關係。

用公式表示:

h(xi)=βo+β1* xi + e

其中βo是截距,β1是線的斜率,e是誤差項。

線性回歸

Logistic回歸是一種演算法,可以在響應變數是分類(categorical)時使用。Logistic回歸的思想是找出特徵和特定結果的概率之間的關係。

用公式表示為:

p(X)=βo+β1* X

p(x)= p(y = 1 | x)

Logistic回歸

多項式回歸是一種回歸分析方法,其中自變數x和因變數y之間的關係被建模為x中的一個n次多項式。

解決線性回歸問題:

我們有數據集X和相應的目標值Y,我們使用最小二乘法來學習一個線性模型,我們可以使用這個線性模型來預測一個新的y,給出一個未知的x,它的誤差越小越好。

將給定的數據被分成訓練數據集和測試數據集。訓練集具有標籤(載入特徵),所以演算法可以從這些標籤的例子中學習。測試集沒有任何標籤,也就是說,你還不知道這個值,試圖去預測。

我們將拿出一個特徵進行訓練,並應用線性回歸方法來擬合訓練數據,然後使用測試數據集預測輸出。

線性回歸在scikit-learn中的實現:

輸出:

預測diabetes_X_test和diabetes_y_pred之間的圖在線性方程上連續。

代碼:https://github.com/vihar/supervised-learning-with-python

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

Label Maker:將衛星圖和街景圖生成機器學習數據集的利器
谷歌,微軟,亞馬遜紛紛押注機器學習,誰會更勝一籌?

TAG:機器學習 |