分類學習筆記(一)

2021-10-20 17:30:27 字數 2151 閱讀 1186

分類器:從特徵空間對映到標籤空間。特徵表示分類元素屬性;標籤標識類別。

分類器一般常談的有有監督分類以及無監督分類。如下表所示:

類別有監督分類

無監督分類

目的通過已有的訓練樣本去訓練得到乙個最優模型,再利用這個模型將所有的輸入對映為相應的輸出,對輸出進行簡單的判斷從而實現**和分類的目的

訓練樣本的標記資訊未知, 目標是通過對無標記訓練樣本的學習來揭示資料的內在性質及規律,為進一步的資料分析提供基礎

條件已知的標籤或類別的資料

標記資訊未知

常見演算法

線性回歸演算法、bp神經網路演算法、決策樹、支援向量機、knn 等

密度估計(densityestimation)、異常檢測(anomaly detection)、層次聚類、em演算法、k-means演算法(k均值演算法)、dbscan演算法 等

描述:基於樣本分類通過儲存訓練記錄並使用他們來**未知樣本的標籤類別(死記硬背學習)。乙個更為通用精確的基於樣本分類是knn。

knn:從訓練記錄中選取k個最近的點,然後按照其最近鄰的類標籤確定所屬類標籤。該演算法基本思想是如果乙個樣本落入由乙個標籤主導的領域,是因為這個樣本可能屬於這個類。

數學描述:

k值選擇

取值結果

k值過小

相當於在較小領域中訓練例項進行**,學習近似誤差小,分類可能對雜訊點過於敏感

k值過大

近鄰範圍可能會包含其它類中太多的點

knn演算法偽**:

對未知屬性標籤的資料進行以下操作

計算已知類別的資料集的點與當前點之間的距離;

按照計算出的距離進行增序排序;

在增序序列中選取與當前距離最小的k個點;

確定前k個點所在類別的出現頻率;

返回前k個點出現頻率最高的類別作為當前點的**類別。

小練習

import math

movie_data =

# 測試樣本 唐人街探案": [23, 3, 17, "?片"]

#下面為求與資料集中所有資料的距離**:

x =[23,

3,17]

knn =

for key, v in movie_data.items():

d = math.sqrt(

(x[0

]- v[0]

)**2+

(x[1

]- v[1]

)**2+

(x[2

]- v[2]

)**2)

[key,

round

(d,2)]

)# 輸出所用電影到 唐人街探案的距離

print

(knn,

'\n'

)#按照距離大小進行遞增排序

knn.sort(key=

lambda dis: dis[1]

)#選取距離最小的k個樣本,這裡取k=5;

knn=knn[:5

]print

(knn,

'\n'

)#確定前k個樣本所在類別出現的頻率,並輸出出現頻率最高的類別

labels =

for s in knn:

label = movie_data[s[0]

] labels[label[3]

]+=1labels =

sorted

(labels.items(

),key=

lambda l: l[1]

,reverse=

true

)print

(labels,labels[0]

[0],sep=

'\n'

)

結果:

設計模式分類 學習筆記

設計模式分類 經典的 設計模式 一書歸納出23種設計模式,本文按 易學設計模式 一書歸納分類如下 1 建立型模式 前面講過,社會化的分工越來越細,自然在軟體設計方面也是如此,因此物件的建立和物件的使用分開也就成為了必然趨勢。因為物件的建立會消耗掉系統的很多資源,所以單獨對物件的建立進行研究,從而能夠...

多分類學習

多分類學習的基本思路是拆解法,即將多個二分類任務拆為若干個二分類任務求解。具體地就是,先對問題進行拆分,然後為每個拆分的二分類任務訓練乙個分類器 在測試時,對這些分類器的 結果進行整合以獲得最終的多分類結果。關鍵 多分類任務如何拆分。經典的為 一對一 one vs one,ovo 一對多 one v...

IP分類學習

0.0.0.0 代表的是所有網段也是作為保留網段的。a類 10.0.0.0 to 10.255.255.255 b類 172.16.0.0 to 172.31.255.255 c類 192.168.0.0 to 192.168.255.255 總結如下 a類位址255.0.0.0 8 1 a類位址第...