sklearn 學習 第一篇:分類


分類屬於監督學習算法,是指根據已有的數據和標簽(分類)進行學習,預測未知數據的標簽。分類問題的目標是預測數據的類別標簽(class label),可以把分類問題划分為二分類和多分類問題。二分類是指在兩個類別中選擇一個類別,在二分類問題中,其中一個類別稱作正類(positive class),另一個類別稱作反類(negative class),比如判斷垃圾郵件。多分類問題是指從多個分類中選擇一個類別。

一,分類的一般方法

數據分類是一個兩階段的過程,包括學習階段(構建分類模型)和分類階段(使用模型預測新數據的類標號)。

 舉個例子,下面的代碼實現了一個最簡單的knn分類器,可以看出,knn分類模型是由兩部分構成的:第一部分是擬合數據(fit),也就是訓練模型,第二部分是預測數據(predict)。

from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier(n_neighbors=3)

x_train = [[0], [1], [2], [3]]
y_train = [0, 0, 1, 1]
knn.fit(x_train,y_train)

x_new=[[1.1]]
y_pred=knn.predict(x_new)
print('predict:{0}'.format(y_pred))

二,分類的訓練數據

分類算法通過從訓練集中學習來構造分類器,訓練集由數據元組和其關聯的類標號構成,一個數組元組表示為:[f1,f2,f3] ,其類標號表示為:category。元組中的每個字段叫做數據的特征,或屬性;類標號是指該數據元組的類別。

在談到分類時,數據元組也稱為樣本、數據點或對象。數據在應用到估計器之前,需要對數據進行預處理。數據預處理,請閱讀sklearn的官方文檔:《5.3. Preprocessing data

三,分類的估計器

sklearn中的分類估計器(Estimator)指的是分類的算法模型,用於對數據進行分類,sklearn的分類算法有:knn、貝葉斯、決策樹等。

估計器主要由擬合(fit)和預測(predict)構成:

  • fit(x,y):擬合,傳入數據以及標簽用於訓練模型,訓練的時間跟算法的參數設置、數據集的大小以及數據本身的特點有關
  • predict(x):預測,用於對新數據進行預測,該方法接受一個數據點,輸出該數據點的預測標簽。通常使用該方法返回測試的結果,再將這個結果用於評估模型。

四,分類模型的評估

分類模型的評估由模型的正確率和預測的不確定度構成:

  • score(x,y):模型的正確率,用於對模型的正確率進行評分(范圍0-1),計算公式是:count(預測正確的數據點)/總的數據點數量
  • predict_prob(x):每個類別的概率,表示預測的置信度。

在評估模型時,不能僅僅限於模型的正確率(score),由於在不同的問題下,評判模型優劣的的標准不限於簡單的正確率,可能還包括召回率或者是查准率等其他的指標,特別是對於類別失衡的樣本,准確率並不能很好的評估模型的優劣,因此在對模型進行評估時,不要輕易的被score的得分蒙蔽。

關於分類模型評估的詳細信息,請閱讀sklearn的官方文檔:《3.3. Model evaluation: quantifying the quality of predictions

 

參考文檔:

1. Supervised learning


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM