作業:K-means算法應用:圖片壓縮
阿新 • • 發佈:2018-11-15
準備 中心 res 出了 讀取 原來 show mod sets
from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import matplotlib.pyplot as plt #讀取一張示例圖片或自己準備的圖片,觀察圖片存放數據特點 china = load_sample_image("china.jpg") plt.imshow(china) plt.show() print(china.shape)
#根據圖片的分辨率,適當降低分辨率 image = china[::3,::3] #行列分別按step為3的距離取 x = image.reshape(-1,3) #生成行數自填充,列數為3的二維數組 plt.imshow(image) plt.show() print(image.shape,x.shape) #用k均值聚類算法,將圖片中所有顏色值做聚類。 n_color = 64 model = KMeans(n_color) labels = model.fit_predict(x) #每個點的顏色分類 color = model.cluster_centers_ #64個聚類中心,顏色值 #用聚類中心的顏色代替原來顏色,形成新圖片 color[labels] images = image.reshape(143, 214, 3) print(images.shape) plt.imshow(images) plt.show()
2.貝葉斯
- M桶:7紅3黃
- N桶:1紅9黃
- 現在:拿出了一個紅球
- 試問:這個紅球是M、N桶拿出來的概率分別是多少?
解: 設:事件A為拿到一個紅球,事件M是在M桶中拿到紅球;事件N為在N桶裏拿到紅球。
1) P(M|B) = P(B|M) · P(M) /P(B) = (7/10 · 1/2)/ (8/20) = 7/8
2) P(N|B) = 1 - P(M|B) = 1/8
作業:K-means算法應用:圖片壓縮