機器學習8聚類算法+KNN

聚類概念
在這裏插入圖片描述
無監督問題(無標籤)
k-means算法
聚類:相似的東西分到一組
難點:評估,調參

指定一個K值,要得到簇的個數
質心:均值,向量各維取平均值
距離的度量:常用歐幾里得距離和餘弦相似度
在這裏插入圖片描述

工作流程:
在這裏插入圖片描述
KMeans實現圖像壓縮

from skimage import io
from sklearn.cluster import KMeans
import numpy as np
image = io.imread(' ')
io.imshow(image)
io.show()
rows = image.shape[0]
cols = image.shape[1]
image = image.reshape(image.shape[0]*image.shape[1], 3)
kmeans = KMeans(n_cluster=128, n_init=10, max_iter=200)
kmeans.fit(image)

clusters = np.asarray(kmeans.cluster_centers_, dtype=np.uint8)
labels = np.asarray(kmeans.labels_, dtype=np.uint8)
labels = labels.reshape(rows, cols)
np.save(" ", clusters)
io.imsave(" ", labels)

K-近鄰
1.計算已知類別數據集中的點與當前點的距離
2.按照距離依次排序
3.選取與當前點距離最小的k個點
4.確定前k個點所在類別的出現概率
5.返回前k個點出現頻率最高的類別作爲當前點預測分類

KNN算法本身簡單有效,它是一種lazy-learning算法
分類器不需要使用訓練集進行訓練,訓練時間複雜度爲0。
KNN分類的計算複雜度和訓練集中的文檔數目成正比

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章