機器學習 聚類演算法

2021-08-11 07:51:05 字數 1328 閱讀 1314

k-means演算法

聚類概念:

無監督問題:我們手裡沒有標籤了

難點:如何評估,如何調參

聚類:相似的東西分到一組

k-means演算法

基本概念:

要得到簇的個數,需要指定k值

距離的度量:常用歐幾里得距離和余弦相似度(先標準化)

優化目標:

質心:均值,即向量各維取平均即可

k-means演算法

工作流程:

k-means演算法

優勢:簡單,快速,適合常規資料集

k值難確定

劣勢:複雜度與樣本呈線性關係

很難發現任意形狀的簇

dbscan演算法

核心物件:若某個點的密度達到演算法設定的閾值則其為核心點。

(即 r 鄰域內點的數量不小於 minpts)

直接密度可達:若某點p在點q的 r 鄰域內,且q是核心點則p-q直接密度可達。

密度可達:若有乙個點的序列q0、q1、…qk,對任意qi-qi-1是直接密度可達的

,則稱從q0到qk密度可達,這實際上是直接密度可達的「傳播」。

ϵ-鄰域的距離閾值:設定的半徑r

dbscan演算法

基本概念:

密度相連:若從某核心點p出發,點q和點k都是密度可達的

,則稱點q和點k是密度相連的。

直接密度可達:若某點p在點q的 r 鄰域內,且q是核心點則p-q直接密度可達。

雜訊點:不屬於任何乙個類簇的點,從任何乙個核心點出發都是密度不可達的

邊界點:屬於某乙個類的非核心點,不能發展下線了

dbscan演算法

基本概念:

a:核心物件

n:離群點

b,c:邊界點

dbscan演算法

工作流程:

引數d:輸入資料集

minpts:密度閾值

引數ϵ:指定半徑

dbscan演算法

引數選擇:

半徑ϵ,可以根據k距離來設定:找突變點

k距離:給定資料集p=,計算點p(i)到集合d的子集s中所有點

之間的距離,距離按照從小到大的順序排序,d(k)就被稱為k-距離。

minpts: k-距離中k的值,一般取的小一些,多次嘗試

視覺化:

dbscan演算法

優勢:不需要指定簇個數

擅長找到離群點(檢測任務)

可以發現任意形狀的簇

兩個引數就夠了

高維資料有些困難(可以做降維)

sklearn中效率很慢(資料削減策略)

引數難以選擇(引數對結果的影響非常大)

劣勢:      

clustering/

機器學習 聚類 密度聚類演算法

一,介紹 密度聚類演算法有多種,我們這裡主要介紹一種著名的密度聚類演算法 dbscan。首先,我們通過下圖了解幾個概念 1 鄰域,與中心x距離不超過 距離,如上圖紅色虛線圈 2 核心物件,確定聚類的初始點,如上圖的x1 3 密度直達,在聚類核心物件鄰域內的點,如上圖x2由x1密度直達 4 密度可達,...

機器學習 聚類演算法

在無監督學習中,我們的訓練集可以寫成只有x 1 x x 1 x 2 x x 2 一直到x m x x m 我們沒有任何標籤 yyy。我們希望有一種演算法能夠自動的把這些資料分成有緊密關係的子集或是簇。演算法步驟綜述 k 均值是乙個迭代演算法,假設我們想要將資料聚類成n個組,其方法為 首先選擇k個隨機...

機器學習 聚類演算法

和之前講的兩個演算法不一樣 非監督型型別 檢測所有資料的中心來,為源來聚合。但沒有乙個結果,結果不固定 package com.mllib import org.apache.spark.mllib.clustering.kmeans import org.apache.spark.mllib.li...