1. 程式人生 > >機器學習-無監督聚類K-means

機器學習-無監督聚類K-means

聚類屬於無監督學習,以往的迴歸、樸素貝葉斯、SVM等都是有類別標籤y的,也就是說樣例中已經給出了樣例的分類。而聚類的樣本中卻沒有給定y,只有特徵x,比如假設宇宙中的星星可以表示成三維空間中的點集clip_image002[10]。聚類的目的是找到每個樣本x潛在的類別y,並將同類別y的樣本x放在一起。比如上面的星星,聚類後結果是一個個星團,星團裡面的點相互距離比較近,星團間的星星距離就比較遠了。

     在聚類問題中,給我們的訓練樣本是clip_image004,每個clip_image006,沒有了y。

     K-means演算法是將樣本聚類成k個簇(cluster),具體演算法描述如下:

1、 隨機選取k個聚類質心點(cluster centroids)為

clip_image008[6]

2、 重複下面過程直到收斂 {

               對於每一個樣例i,計算其應該屬於的類

               clip_image009

               對於每一個類j,重新計算該類的質心

               clip_image010[6]

}

     K是我們事先給定的聚類數,clip_image012[6]代表樣例i與k個類中距離最近的那個類,clip_image012[7]的值是1到k中的一個。質心clip_image014[6]代表我們對屬於同一個類的樣本中心點的猜測,拿星團模型來解釋就是要將所有的星星聚成k個星團,首先隨機選取k個宇宙中的點(或者k個星星)作為k個星團的質心,然後第一步對於每一個星星計算其到k個質心中每一個的距離,然後選取距離最近的那個星團作為

clip_image012[8],這樣經過第一步每一個星星都有了所屬的星團;第二步對於每一個星團,重新計算它的質心clip_image014[7](對裡面所有的星星座標求平均)。重複迭代第一步和第二步直到質心不變或者變化很小。

     下圖展示了對n個樣本點進行K-means聚類的效果,這裡k取2。

     clip_image015

     K-means面對的第一個問題是如何保證收斂,前面的演算法中強調結束條件就是收斂,可以證明的是K-means完全可以保證收斂性。下面我們定性的描述一下收斂性,我們定義畸變函式(distortion function)如下:

     clip_image016[6]

     J函式表示每個樣本點到其質心的距離平方和。K-means是要將J調整到最小。假設當前J沒有達到最小值,那麼首先可以固定每個類的質心

clip_image014[8],調整每個樣例的所屬的類別clip_image012[9]來讓J函式減少,同樣,固定clip_image012[10],調整每個類的質心clip_image014[9]也可以使J減小。這兩個過程就是內迴圈中使J單調遞減的過程。當J遞減到最小時,clip_image018[6]和c也同時收斂。(在理論上,可以有多組不同的clip_image018[7]和c值能夠使得J取得最小值,但這種現象實際上很少見)。

     由於畸變函式J是非凸函式,意味著我們不能保證取得的最小值是全域性最小值,也就是說k-means對質心初始位置的選取比較感冒,但一般情況下k-means達到的區域性最優已經滿足需求。但如果你怕陷入區域性最優,那麼可以選取不同的初始值跑多遍k-means,然後取其中最小的J對應的clip_image018[8]和c輸出。

相關推薦

機器學習-監督K-means

聚類屬於無監督學習,以往的迴歸、樸素貝葉斯、SVM等都是有類別標籤y的,也就是說樣例中已經給出了樣例的分類。而聚類的樣本中卻沒有給定y,只有特徵x,比如假設宇宙中的星星可以表示成三維空間中的點集。聚類的目的是找到每個樣本x潛在的類別y,並將同類別y的樣本x放在一起。比如上

[吳恩達機器學習筆記]13K-means

沒有 rand 幫助 聯系 method ima 運用 重新 function 13.聚類 覺得有用的話,歡迎一起討論相互學習~Follow Me 13.1無監督學習簡介 從監督學習到無監督學習 在一個典型的監督學習中,我們有一個有標簽的訓練集,我們的目標是找到能夠區分正

吳恩達機器學習(十一)K-means監督學習演算法)

目錄 0. 前言 學習完吳恩達老師機器學習課程的無監督學習,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心

機器學習--監督學習K-means方法

一、引言 從上次SVM之後幾節課講的是學習理論,這塊理論性比較深,我得好好消化一下。所以先總結一下第一個無監督的機器學習演算法,K-means聚類方法。 所謂無監督學習,就是資料樣本沒有標籤,要讓學習演算法自己去發現數據之間內在的一些結構和規律。就好比做題沒有標準答案,所以

監督學習- K-means演算法

#無監督學習-聚類 K-means聚類演算法 #以k為引數,把n個物件分為k個簇,使簇內具有較高相似度,簇間相似度較低 #1.隨機選擇k個點作為初始聚類中心;2.根據剩下點與聚類中心的距離(預設就是歐氏距離),歸為最近的簇; #3.對每個簇,計算所有點的均值作為新聚類中心;4.重複2、3直至

吳恩達機器學習 - 監督學習——K-means演算法 吳恩達機器學習 - 監督學習——K-means演算法

原 吳恩達機器學習 - 無監督學習——K-means演算法 2018年06月25日 12:02:37 離殤灬孤狼 閱讀數:181

機器學習-->監督學習-->

本篇博文將詳細總結機器學習裡面的一個很重要的內容-聚類。 聚類定義 定義 聚類就是對大量未知標註 的資料集,按資料 的內在相似性將資料集劃分為多個類別,使 類別內的資料相似度較大而類別間的資料相 似度較小。是無監督的分類方式。 聚類思想 給

python_sklearn機器學習算法系列之K-Means(硬演算法)

          本文主要目的是通過一段及其簡單的小程式來快速學習python 中sklearn的K-Means這一函式的基本操作和使用,注意不是用python純粹從頭到尾自己構建K-Means,既然sklearn提供了現成的我們直接拿來用就可以了,當然K-Means原理還

機器學習(1):K-MEANS演算法

一、聚類簡介 1.無監督問題:我們手裡沒有標籤了 2.聚類:相似的東西分到一組 3.難點:如何評估,如何調參 二、基本概念: 1.K:要得到簇的個數,需要指定K 2.質心:均值,即向量各維取平均 3.距離的度量:常用歐幾里得距離和餘弦相似度(先標準化) 4.優化目標 (1)Ci代表

機器學習演算法-python實現】K-means監督學習實現分類

''' @author: hakuri ''' from numpy import * import matplotlib.pyplot as plt def loadDataSet(fileName): #general function to parse tab -delimited float

周志華《機器學習》Ch9. k-means演算法的python實現

理論 k-means方法是一種常用的聚類方法,其目標是最小化 其中是第i個簇的中心。直接優化上式有難度,故k-means演算法採用一種近似方法。 簡單來說,k-means演算法由兩個步驟迴圈組成: 1. 計算每個sample到各個簇中心的距離,將該sample的類

機器學習】---密度從初識到應用

max 一個 eight log div 指定 聚類 空間 mar 一.前述 密度聚類是一種能降噪的算法。 二.相關概念 先看些抽象的概念(官方定義): 1.:對象O的是與O為中心,為半徑的空間,參數,是用戶指定每個對象的領域半徑值。 2.MinPts(領域密度閥值):對象

Python機器學習——Agglomerative層次

條件 分享圖片 n-2 mov unique ber and 兩個 its 層次聚類(hierarchical clustering)可在不同層次上對數據集進行劃分,形成樹狀的聚類結構。AggregativeClustering是一種常用的層次聚類算法。 ??其原理是:最初

機器學習實戰(九)K-meansK-均值)

目錄 0. 前言 1. K-means 2. K-means的後處理 3. 二分K-means 4. K 的選擇 5. 實戰案例 5.1. 原始K-means 5.2. 二分

機器學習 - 監督學習-多元高斯模型

(一)異常檢測---基於高斯(正態)分佈   m個訓練樣本,每個樣本有n個features 即m個樣本的每個屬性集都呈現高斯分佈,因此有以下計算:   例子如下: (二)評價異常檢測系統 將所有資料按照60%,20%,20%的比例分成三部分

機器學習實戰DBSCN

# !/usr/bin/python # -*- coding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt import sklearn.datasets as ds import matplotlib.colors f

機器學習之DBSCAN

機器學習之DBSCAN聚類 # -*- coding: utf-8 -*- """ Created on Wed Nov 28 18:50:57 2018 @author: muli """ import numpy as np from sklearn.datas

機器學習之kMeans

機器學習之kMeans聚類 # -*- coding: utf-8 -*- """ Created on Wed Nov 28 16:23:36 2018 @author: muli """ from sklearn.datasets.samples_generat

【搜尋引擎】用whoosh+監督搭建一套智慧搜尋引擎

因本介面自定義功能較多,且底層演算法自己搭建,故不再使用其他三方庫,只用whoosh其他演算法自己寫。 # -*- coding: utf-8 -*- from whoosh.fields import Schema,TEXT,ID from whoosh.index i

機器學習】Kmeans

寫在篇前   Kmeans演算法是一種經典的聚類演算法,屬於無監督學習的範疇。所謂聚類,即指對於給定的一個樣本集,按照樣本之間的距離大小,將樣本集劃分為K個簇,且讓簇內的點儘量緊密的連在一起,而讓簇間的距離儘量的大。 優點: 原理簡單 速度快 對大資料集有比較