機器學習之基於sklearn的KMeans聚類

2021-01-08 羽佳數院

聚類算法,無監督學習的代表算法,又叫做「無監督分類」

即在訓練的時候只需要特徵矩陣,不需要真實值標籤

可以有效地幫助我們探索數據的自然分布

一、KMeans算法的運行過程

運行的流程如下:

自動聚類時的質心點的每步驟變化如下:

下圖中紅色x和藍色x即為質心點

二、sklearn中的KMeans算法

聚類算法位於sklearn中有的cluster包下

用法如下:

import sklearn.cluster as sc #導入聚類算法包n_clusters = 3 #質心數設定為3#訓練數據cluster = sc.KMeans(n_clusters=n_clusters, random_state=0).fit(X)y_pred = cluster.labels_ #獲取結果print(y_pred) #列印結果

三、基於sklearn的kmeans壓縮圖片

為什麼可以用哦過KMeans算法來做壓縮呢?

其具體思就是將原來很多的顏色用少量的顏色去表示

這樣就可以大幅減小圖片大小了

如:將圖片只保留8種顏色,下圖就是把一幅彩色圖片只保留8種顏色後的結果

代碼如下:

import matplotlib.pyplot as plt #導入圖片處理包,這裡用matplotlibimport sklearn.cluster as sc #導入聚類包import numpy as np #導入numpyimg = plt.imread('9.jpg') #讀取圖片img = img.reshape((1001*1500 , 3)) #改變圖片矩陣形狀kmeans = sc.KMeans(n_clusters=8).fit(img) #帶入聚類算法訓練#print(kmeans.labels_)cc = kmeans.cluster_centers_ #獲得質心cc = cc.astype(np.uint8) #轉型newImage = []for i in kmeans.labels_:newImage.append(list(cc[i,:]))newImage = np.array(newImage)newImage = newImage.reshape((1001,1500,3))plt.imshow(newImage)plt.show()

相關焦點

  • K-Means聚類講解:算法和Sklearn的實現(附代碼)
    K-Means聚類是機器學習領域中最強大的聚類算法之一。他的原因比較簡單,但得出的結果也非常準確。聚類是理解數據集的非常重要的方式,因此在本文中,我們將討論什麼是聚類,為什麼需要聚類以及什麼是k-means聚類。什麼是聚類聚類是根據數據的屬性將數據分為兩個或更多組的任務,更確切地說,是基於數據中或多或少明顯的某些模式。
  • 機器學習之分類算法K-Means介紹與代碼分析(篇四)
    k-平均聚類的目的是:把n個點(可以是樣本的一次觀察或一個實例)劃分到k個聚類中,使得每個點都屬於離他最近的均值(此即聚類中心)對應的聚類,以之作為聚類的標準。這個問題將歸結為一個把數據空間劃分為Voronoi cells的問題。這個問題在計算上是NP困難的,不過存在高效的啟發式算法。一般情況下,都使用效率比較高的啟發式算法,它們能夠快速收斂於一個局部最優解。
  • 機器學習之sklearn基礎教程!
    公眾號關注 「Python遇見機器學習」設為「星標」,第一時間知曉最新乾貨~本次分享是基於scikit-learn工具包的基本分類方法,包括常見的Logisitic Regression、支持向量機、決策樹、隨機森林以及K近鄰方法KNN。
  • 教程| 如何用Python和機器學習炒股賺錢?
    作者:Gatan Rickter機器之心編譯參與:熊貓相信很多人都想過讓人工智慧來幫你賺錢,但到底該如何做呢?瑞士日內瓦的一位金融數據顧問 Gatan Rickter 近日發表文章介紹了他利用 Python 和機器學習來幫助炒股的經驗,其最終成果的收益率跑贏了長期處於牛市的標準普爾 500 指數。
  • 基於機器學習的入侵檢測系統
    噪聲會通過產生高誤報率嚴重降低IDS的能力。基於籤名的IDS需要不斷的軟體更新才能跟上新威脅。IDS監控整個網絡,因此容易受到網絡主機的相同攻擊。基於協議的攻擊可能導致IDS失敗。網絡IDS只能檢測網絡異常,這些異常限制了它可以發現的各種攻擊。所有入站和出站流量都通過它時,網絡IDS可能會產生瓶頸。
  • 回歸、分類與聚類:三大方向剖解機器學習算法的優缺點(附Python和R...
    選自EliteDataScience機器之心編譯參與:蔣思源、晏奇在本教程中,作者對現代機器學習算法進行一次簡要的實戰梳理。雖然類似的總結有很多,但是它們都沒有真正解釋清楚每個算法在實踐中的好壞,而這正是本篇梳理希望完成的。因此本文力圖基於實踐中的經驗,討論每個算法的優缺點。而機器之心也在文末給出了這些算法的具體實現細節。
  • python之kmeans數據聚類算法
    一 Kmeans原理kmeans是屬於無監督學習的數據聚類算法,根據點與點之間的距離推測每個點屬於哪個中心,常用計算距離的方式有:餘弦距離、歐式距離、曼哈頓距離等,本文以歐式距離為例。圖1假設每個點的維度是n,即每個點有n個特徵維度,計算這些點數據到數據中心A、B、C的距離,從而將每個數據歸類到A或B或C。
  • 你需要的最全面的K-means聚類指南
    我上面顯示的組稱為簇(clusers),創建這些組的過程稱為聚類(clustering)。在形式上,我們可以說:聚類是基於數據中的模式將整個數據劃分為組(也稱為簇)的過程。你能猜出聚類是哪種類型的學習問題嗎?這是一個有監督還是無監督的學習問題嗎?考慮一下,並利用我們剛才看到的例子。是的,聚類是一種無監督的學習問題!2.1.
  • 有了K均值聚類,為什麼還需要DBSCAN聚類算法?
    聚類分析包括基於不同距離度量的多種不同方法。例如。K均值(點之間的距離)、Affinity propagation(圖之間的距離)、均值漂移(點之間的距離)、DBSCAN(最近點之間的距離)、高斯混合(到中心的馬氏距離)、譜聚類(圖之間距離)等。
  • 機器學習之sklearn中的降維算法
    PCA與SVDsklearn中降維算法都被包括在模塊decomposition中,這個模塊本質是一個矩陣分解模塊。在過去的十年中,如果要討論算法進步的先鋒,矩陣分解可以說是獨樹一幟。矩陣分解可以用在降維,深度學習,聚類分析,數據預處理,低緯度特徵學習,推薦系統,大數據分析等領域。
  • 「Workshop」第十期:聚類
    ,另外要注意的是pearson相關對outliers比較敏感,這個時候可以使用spearman相關當我們關注的是變量的值的大小,可以使用歐氏距離來聚類數據標準化當變量是由不同的標度測量的時候,最好要對數據進行標準化使之可以進行比較;一般情況在下對變量進行縮放使之:標準差是1,均值是0;
  • 初學者三種類型機器學習必看指南
    用Yellowbrick可視化KMeans機器學習問題一般可以分為三種類型,包括被稱為監督學習的分類和回歸,和無監督學習,無監督學習在機器學習中通常是指聚類。import pandas as pdimport numpy as npfrom sklearn.datasets import load_winefrom sklearn.datasets import load_bostonfrom sklearn.model_selection importtrain_test_splitfrom sklearn
  • 如何用sklearn創建機器學習分類器?這裡有一份上手指南
    原作:Kasper Fredenslund林鱗 編譯自 Data Science Central量子位 出品 |分類器是數據挖掘中對樣本進行分類的方法的統稱,也是入坑機器學習的一項必備技能。這篇文章中,作者簡要介紹了用Python中的機器學習工具scikit-learn(sklearn)創建機器學習分類器的步驟與注意事項。
  • 10大機器學習算法,看懂你就是數據科學家
    今天我們就來聊聊,每一位數據科技家都應該了解的10大機器學習算法。下面是關於普遍機器學習算法和快速資源的風暴之旅,準好了嗎?燒腦挑戰開始: 1. 主成分分析(PCA)/奇異值分解(SVD)PCA是一種非監督學習,用來理解由向量組成的數據集的全局特性的方法。
  • 機器學習算法的基本知識(使用Python和R代碼)
    創建本指南背後的理念是簡化全球有抱負的數據科學家和機器學習愛好者的旅程。 本指南能夠使你在研究機器學習問題的過程中獲取經驗。 我提供了關於各種機器學習算法以及R&Python代碼的高級理解以及運行它們,這些應該足以使你得心順手。
  • 特徵選擇及基於Sklearn的實現
    sklearn.feature_selection模塊被廣泛應用於樣本數據集的特徵選擇和特徵降維,以減少特徵數量,增強對特徵和特徵值之間的理解,提高預測準確性或提高在高維數據集上的性能。本文將依據官方文檔對sklearn.feature_selection模塊進行介紹。
  • 「R」層次聚類和非層次聚類
    ❝原英文連結:https://www.rpubs.com/dvallslanaquera/clustering[1]❞層次聚類 (HC)在這個分析中,我們將看到如何創建層次聚類模型。目的是探索資料庫中是否存在相似性組,並查看它們的行為。
  • 機器學習算法基礎(使用Python代碼)
    創建本指南背後的想法是簡化世界各地有抱負的數據科學家和機器學習愛好者的旅程。通過本指南,我將幫助您解決機器學習問題並從經驗中獲益。我提供了對各種機器學習算法的高級理解以及運行它們的R&Python代碼。這些應該足以弄髒你的手。線性回歸主要有兩種類型:簡單線性回歸和多元線性回歸。簡單線性回歸的特徵在於一個自變量。
  • 機器學習之決策樹在sklearn中的實現
    1 導入需要的算法庫和模塊<pre spellcheck="false" contenteditable="true" cid="n11" mdtype="fences" >from sklearn import tree #導入tree模塊from sklearn.datasets import load_wine #導入紅酒數據集from sklearn.model_selection