【機器學習】K-Means(非監督學習)學習及實例使用其將圖片壓縮

非監督學習之k-means

K-means通常被稱為勞埃德算法,這在數據聚類中是最經典的,也是相對容易理解的模型。算法執行的過程分為4個階段。

1、從數據中選擇k個對象作為初始聚類中心;

2、計算每個聚類對象到聚類中心的距離來劃分;

3、再次計算每個聚類中心

4、2~3步for循環,直到達到最大迭代次數,則停止,否則,繼續操作。

5、確定最優的聚類中心

歐氏距離:
在這里插入圖片描述

步驟圖:在這里插入圖片描述

K-Means主要最重大的缺陷——都和初始值有關

  • K是事先給定的,這個K值的選定是非常難以估計的。很多時候,事先并不知道給定的數據集應該分成多少個類別才最合適。(ISODATA算法通過類的自動合并和分裂,得到較為合理的類型數目K)
    K-Means算法需要用初始隨機種子點來搞,這個隨機種子點太重要,不同的隨機種子點會有得到完全不同的結果。(K-Means++算法可以用來解決這個問題,其可以有效地選擇初始點)

看到這里,你會說,K-Means算法看來很簡單,而且好像就是在玩坐標點,沒什么真實用處。而且,這個算法缺陷很多,還不如人工呢。是的,前面的例子只是玩二維坐標點,的確沒什么意思。但是你想一下面的代碼實例:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

使用K-Means圖片壓縮 代碼案例

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline#需是二維from sklearn.cluster import KMeans
import warnings
warnings.filterwarnings('ignore') 
bird = plt.imread('./bird_small.png')
bird.shape# (128, 128, 3)#轉為二維
X = bird.reshape(-1,3) 
kmeans =KMeans(4)
kmeans.fit(X)
y_ = kmeans.predict(X)
y_

array([0, 0, 0, …, 1, 1, 1])

#圖片像素被分成了四類 ,四個聚類中心
#對圖片中像素進行聚類,聚類中心就是這些像素的中心,當然也是像素值
colors = kmeans.cluster_centers_
colors

array([[0.79367614, 0.6389619 , 0.41842377],
[0.12838763, 0.13014919, 0.12066123],
[0.9112854 , 0.8586482 , 0.74024725],
[0.48819345, 0.40055096, 0.3231333 ]], dtype=float32)

colors

array([[0.79367614, 0.6389619 , 0.41842377],
[0.12838763, 0.13014919, 0.12066123],
[0.9112854 , 0.8586482 , 0.74024725],
[0.48819345, 0.40055096, 0.3231333 ]], dtype=float32)

bird2 = colors[y_]
plt.imshow(bird2.reshape(128,128,3))

在這里插入圖片描述

kmeans =KMeans(256)
kmeans.fit(X)y_ = kmeans.predict(X)colors = kmeans.cluster_centers_
# plt.figure(figsize=(8,8))
bird3 = colors[y_]
plt.imshow(bird3.reshape(128,128,3))

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456080.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456080.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456080.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CloudCC CRM:物聯網必將成為CRM的推動力

CRM熱門話題背后的主要推動力包括云、社交、移動和大數據,CloudCC CRM認為物聯網必將成為CRM的推動力,也就是傳感器將事物連接到互聯網,創建之前我們從未想到的新型服務。 社交:在銷售、市場和客戶服務部門,營銷人員正…

關于Video Renderer和Overlay Mixer

原文作者: 陸其明 整理日期: 2004/12/27 大家知道,Video Renderer (VR)是接收RGB/YUV裸數據,然后在顯示器上顯示的Filter。為提高計算機畫圖性能,根據你計算機顯卡的能力,VR會優先使用DirectDraw以及Overlay表面;如果…

【tensorflow】tensorflow -gpu安裝及jupyter環境更改

tensorflow -gpu安裝 首先,安裝Anoconda 1. 官網下載點我:2.安裝 點擊 python 3.6 version自動下載x64版,下載好之后,然后安裝。 如圖,打上勾之后,一路next3.打開終端 1)輸入conda –-version …

張震博士:SDT是未來安防發展方向

如何挖掘安防大數據價值是未來發展方向 發展實踐證明,科技強警已經成為未來發展的必然選擇,發展科技強警,必須用技術實力說話。作為科技強警的重要組成部分,安防視頻非常重要,但是,目前,安防視頻…

關于虛擬機第二塊網卡eth1(僅主機模式)的配置問題

這里發生了一個想不明白的事情,我的真機的網卡上面并沒有192.168.100.0網段的網卡 但是我在虛擬機上面添加了一塊網卡(僅主機模式)eth1 并配置為192.168.100.60(配置文件已經寫好) 開機卻能用eth1連接上xhell&#xff…

【機器學習】樸素貝葉斯介紹及實例--對短信進行二分類 使用多項式分布

貝葉斯 首先什么是貝葉斯? 一個例子,現分別有 A、B 兩個容器,在容器 A 里分別有 7 個紅球和 3 個白球,在容器 B 里有 1 個紅球和 9 個白球,現已知從這兩個容器里任意抽出了一個球,且是紅球,問這…

H.264碼流結構

a、對照:H.263的碼流結構H.263定義的碼流結構是分級結構,共四層。自上而下分別為:圖像層(picture layer)、塊組層(GOB layer)、宏塊層(macroblock layer)和塊層(block layer)。 PSC TR PTYPE PQUANT CPM PSBI TRB DBQUANT PEI PSPARE PEI…

Gartner分享物聯網和智慧城市最新數據

主題為“移我所想 Mobile is me”的2016世界移動大會上海展正在上海如火如荼的舉行,Gartner也在第一時間分享了最新的市場數據,包括企業級用戶最為關注的物聯網和智慧城市的調查預測報告,下面就一起來看看吧! 智慧城市與物聯網 物…

python中格式化字符串

format格式字符串 語法: 它通過{}和:來代替%。 注意: 字符串的format函數可以接受無限個參數,位置可以不按順序,可以不用或者用多次,不過2.6不能為空{},2.7才可以。 “映射”示例 通過位置 In [1]: {0},{…

讓360安全瀏覽器默認使用谷歌內核

瀏覽器默認內核的指定只需在head標簽中添加一行代碼即可&#xff1a; 若頁面需默認用極速核&#xff0c;增加標簽&#xff1a;<meta name"renderer" content"webkit"> 若頁面需默認用ie兼容內核&#xff0c;增加標簽&#xff1a;<meta name"…

作業幫電腦版在線使用_作業幫:創新科技驅動在線教育新模式

10月15日&#xff0c;在線教育領軍企業作業幫在中國校長大會在線教育論壇上&#xff0c;獨家發布《學習的真相&#xff1a;全國K12學情大數據及學習洞察》&#xff0c;宣布已推出作業幫直播課“名師大招”課程體系&#xff0c;集中展示多款面向K12人群的教育黑科技和硬件產品。…

【機器學習】DBSCAN聚類算法—優于Kmean—(理論+圖解+python代碼)

一、前言 二、DBSCAN聚類算法 三、參數選擇 四、DBSCAN算法迭代可視化展示 五、常用的評估方法&#xff1a;輪廓系數 六、用Python實現DBSCAN聚類算法 一、前言 去年學聚類算法的R語言的時候&#xff0c;有層次聚類、系統聚類、K-means聚類、K中心聚類&#xff0c;最后呢…

H264白皮書

理論上我是知道一點點的mpeg4的&#xff0c;但是貌似忘記了&#xff0c;本來要重新看mpeg4&#xff0c;結果有人告訴我h264肯定比mpeg4要好&#xff0c;結果就被派去看h264了&#xff0c;看完了一個什么白皮書以后&#xff0c;只好替h264吹噓一下了&#xff1a; 1。Intra pred…

python中的內建函數

內建函數 以下是目前我們已經滲透過的內建函數: 類型相關 int() 創建或者將其他數據轉化為整型float() 創建或者將其他數據轉化為浮點型bool() 創建或者將其他數據轉化為布爾型complex() 創建或者將其他數據轉化為復數str() 創建或者將其他數據轉化為字符串list() 創建或…

卡巴斯基:風險無國界 網絡安全從業者要與小網民保持一致

“互聯網沒有國界&#xff0c;每個國家碰到的問題基本上是類似的。對于網絡犯罪這件事&#xff0c;并不針對哪個國家&#xff0c;任何有弱點、有機會的地方&#xff0c;黑客都會去。”卡巴斯基公司CEO尤金卡巴斯基在接受未來網&#xff08;微信公眾號lovek618&#xff09;記者采…

js/jquery循環提取table單元格值

<table id"tbitem"><tr><td>測試數據1</td></tr><tr><td>測試數據2</td></tr><tr><td>測試數據3</td></tr><tr><td>測試數據4</td></tr><tr><td&g…

windows無法訪問指定設備路徑或文件_完全免費的文件數據恢復工具:Microsoft Windows File Recovery...

意外刪除文件的經歷是大多數人都遇到過&#xff0c;但是幸運的是有一種“后悔藥”可以吃&#xff0c;因為我們可以使用一些【數據恢復軟件】以找回一些已刪除的文件。市面上有很多這類型的軟件&#xff0c;例如EasyRecovery、DiskGenius、Recuva 等軟件。但是&#xff0c;功能強…

【機器學習】XGBoost集成算法——(理論+圖解+python代碼比較其他算法使用天池蒸汽數據)

一、集成算法思想 二、XGBoost基本思想 三、用python實現XGBoost算法 在競賽題中經常會用到XGBoost算法&#xff0c;用這個算法通常會使我們模型的準確率有一個較大的提升。既然它效果這么好&#xff0c;那么它從頭到尾做了一件什么事呢&#xff1f;以及它是怎么樣去做的呢&a…

H.264的技術優勢及其在H.323系統中的應用

一、引言 近年來&#xff0c;隨著我國通信網絡基礎設施的快速建設&#xff0c;視訊業務由于可以為處于多點的與會者提供音視頻等多種信息&#xff0c;節省大量費用&#xff0c;提高工作效率&#xff0c;因而發展迅速&#xff0c;并有望成為NGN的主要業務。視訊會議系統從產生至…

python中的列表

列表操作 一組有序數據的組合就是列表 創建列表 空列表 方式1&#xff1a;變量 []方式2&#xff1a; 變量 list() 具有一個數據的列表 變量 [值] 備注&#xff1a;列表中保存的每個都稱之為元素具有多個數據的列表 變量 [值,值,值....]普通操作 訪問列表中的元素 …