26、python密度聚類方法(DBSCAN密度聚類)

1、DBSCAN概念 


基於密度的帶噪聲的空間聚類應用算法,它是將簇定義爲密度相連的點的大集合,能夠把足夠高密度的區域劃分爲簇,並且可在噪聲的空間數據集中發現任意形狀的聚類。

2、密度聚類和距離聚類

密度聚類:只要臨近區域的密度、對象、或者數據點的數目超過耨個閾值,就繼續聚類,可以根據與周偉特點進行聚類

kmeans和分層聚類都是基於距離進行聚類,只能發現球狀的簇,五發現其他形式的簇

3、其他概念

01密度:空間中任意一點的密度是以該點爲圓形,以Eps爲半徑的圓區域內包含的點數目。

02 領域: 空間中任意一點的領域是以該點爲圓心、以Eps爲半徑的圓區域內包含的點數目。

03 核心點:空間某一點的密度,如果大於某一給定閾值MInPts,則稱爲邊界點。

04 噪聲點:數據集中不屬於核心點,也不屬於邊界點的點,也就是密度值爲1的點

4、聚類方法

 

model=sklearn.cluster.DBSCAN(eps,min_samples)

eps 領域的大小,使用圓的半徑表示
min_samples 點的個數的閾值

model.fit_predict(data)

data 數據

訓練模型並且進行預測的方法

5、案例

import pandas as pd

import matplotlib.pyplot as plt


data = pd.read_csv('D:\\DATA\\pycase\\number2\\7.2\\data.csv')

plt.plot(
        data['x'],
        data['y'],
        '.',
        color='r'
        )
# 只能畫出一種顏色,scatter可以根據標籤類型區分繪畫分類


# 導入DBSCN訓練算法

from sklearn.cluster import DBSCAN

eps=0.2 # 領域的大小,使用圓的半徑表示

MinPts=5 # 領域內,點個數的閾值

model=DBSCAN(eps,MinPts)

# 數據匹配
data['type']=model.fit_predict(data)

# 繪圖
plt.scatter(
        data['x'],
        data['y'],
        c=data['type'] # 表示顏色
        )

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章