分類器:從特徵空間對映到標籤空間。特徵表示分類元素屬性;標籤標識類別。
分類器一般常談的有有監督分類以及無監督分類。如下表所示:
類別有監督分類
無監督分類
目的通過已有的訓練樣本去訓練得到乙個最優模型,再利用這個模型將所有的輸入對映為相應的輸出,對輸出進行簡單的判斷從而實現**和分類的目的
訓練樣本的標記資訊未知, 目標是通過對無標記訓練樣本的學習來揭示資料的內在性質及規律,為進一步的資料分析提供基礎
條件已知的標籤或類別的資料
標記資訊未知
常見演算法
線性回歸演算法、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類位址第...