国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

這篇具有很好參考價值的文章主要介紹了密度聚類算法(DBSCAN)實(shí)驗(yàn)案例。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

描述

DBSCAN是一種強(qiáng)大的基于密度的聚類算法,從直觀效果上看,DBSCAN算法可以找到樣本點(diǎn)的全部密集區(qū)域,并把這些密集區(qū)域當(dāng)做一個一個的聚類簇。DBSCAN的一個巨大優(yōu)勢是可以對任意形狀的數(shù)據(jù)集進(jìn)行聚類。

本任務(wù)的主要內(nèi)容:

1、 環(huán)形數(shù)據(jù)集聚類

2、 新月形數(shù)據(jù)集聚類

3、 輪廓系數(shù)評估指標(biāo)應(yīng)用

源碼下載

環(huán)境

  • 操作系統(tǒng):Windows 10、Ubuntu18.04

  • 工具軟件:Anaconda3 2019、Python3.7

  • 硬件環(huán)境:無特殊要求

  • 依賴庫列表

    matplotlib   	3.3.4
    numpy 			1.19.5
    scikit-learn	0.24.2
    

分析

本實(shí)驗(yàn)包含三個任務(wù):環(huán)形數(shù)據(jù)集聚類、新月數(shù)據(jù)集聚類以及輪廓系數(shù)評估指標(biāo)的使用,數(shù)據(jù)集均由sklearn.datasets模塊生成。為了直觀觀察DBSCAN的優(yōu)勢,任務(wù)中還引入了前面學(xué)過的多種聚類算法進(jìn)行對比。

本實(shí)驗(yàn)涉及以下幾個環(huán)節(jié):

1)子任務(wù)一、環(huán)形數(shù)據(jù)聚類

1.1 數(shù)據(jù)集的生成

1.2 使用K-Means、MeanShift、Birch算法進(jìn)行聚類并可視化

1.3 使用DBSCAN聚類并可視化

2)子任務(wù)二、新月數(shù)據(jù)集聚類

2.1 數(shù)據(jù)集的生成

2.2 使用K-Means、MeanShift、Birch算法進(jìn)行聚類并可視化

2.3 使用DBSCAN聚類并可視化

3)聚類評估指標(biāo)(輪廓系數(shù))案例實(shí)踐

3.1 數(shù)據(jù)集生成

3.2 聚類并評估效果

實(shí)施

1、環(huán)形數(shù)據(jù)集聚類

任務(wù)描述:

1、使用scikit-learn生成環(huán)形數(shù)據(jù)集;

2、將數(shù)據(jù)集聚成右側(cè)3個類別。

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例
密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

1.1 生成環(huán)形數(shù)據(jù)集
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets

# 生成環(huán)形數(shù)據(jù)集(500個樣本)
X1, y1=datasets.make_circles(n_samples=500, factor=0.5, noise=0.07, random_state=0)

# 生成點(diǎn)塊數(shù)據(jù)集(80個樣本)
X2, y2 = datasets.make_blobs(n_samples=80, n_features=2, centers=[[1.2, 1.2]], cluster_std=[[0.15]], random_state=0)

# 合并成一個數(shù)據(jù)集,生成散點(diǎn)圖
X = np.concatenate((X1, X2))
plt.scatter(X[:, 0], X[:, 1], marker='o')
plt.show()

顯示結(jié)果:

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

1.2 分別使用K-Means、MeanShift、Birch算法進(jìn)行聚類
from sklearn.cluster import KMeans, MeanShift, Birch

# 嘗試三種聚類模型,都不能達(dá)到目的
y_pred = KMeans(3).fit_predict(X) # KMeans

# y_pred = Birch(n_clusters=3).fit_predict(X) # Birch
# y_pred = MeanShift().fit_predict(X) # MeanShift
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show()

顯示結(jié)果:

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

從算法的輸出中可以看到,對于環(huán)形數(shù)據(jù)集,上述三種聚類算法均不能很好地實(shí)現(xiàn)任務(wù)規(guī)定的聚類目標(biāo)。

1.3 使用DBSCAN算法(不指定參數(shù))
from sklearn.cluster import DBSCAN

# 使用無參數(shù)的DBSCAN聚類,發(fā)現(xiàn)模型將所有樣本歸為了一類
y_pred = DBSCAN().fit_predict(X)

# 畫散點(diǎn)圖
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show()

顯示結(jié)果:

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

可以看到,不使用參數(shù)的DBSCAN算法,將所有數(shù)據(jù)分成了一類。

1.4 指定DBSCAN算法的參數(shù)

DBSCAN算法聚類的結(jié)果依賴于調(diào)參,該算法的兩個主要參數(shù)eps和min_samples,對于聚類結(jié)果的影響很大。

# eps-臨近半徑
# min_samples-最小樣本數(shù)
# 指定參數(shù),調(diào)參,任務(wù)完成(聚成內(nèi)、中、外3類)
y_pred = DBSCAN(eps=0.2, min_samples=2).fit_predict(X)

# 畫散點(diǎn)圖
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show()

輸出結(jié)果:
密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

可以看到,通過調(diào)參,DBSCAN算法完美地將數(shù)據(jù)集按指定要求聚成了3類。

2、新月數(shù)據(jù)集聚類

任務(wù)描述:

1、使用scikit-learn生成新月數(shù)據(jù)集;

2、將數(shù)據(jù)集聚成右側(cè)上下2個類別。
密度聚類算法(DBSCAN)實(shí)驗(yàn)案例
密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

2.1 生成數(shù)據(jù)集
import matplotlib.pyplot as plt
from sklearn import datasets

# 生成彎月數(shù)據(jù)集(500個樣本)
X, y = datasets.make_moons(500, noise = 0.1, random_state=99)

# 顯示散點(diǎn)圖
plt.scatter(X[:, 0], X[:, 1], s = 100, alpha = 0.6, cmap = 'rainbow')

plt.show()

顯示結(jié)果:

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

2.2 嘗試K-Means、MeanShift、Birch算法
from sklearn.cluster import KMeans, MeanShift, Birch

# 嘗試三種聚類模型,都不能達(dá)到目的
y_pred = KMeans(2).fit_predict(X) # KMeans

# y_pred = Birch(n_clusters=2).fit_predict(X) # Birch
# y_pred = MeanShift().fit_predict(X) # MeanShift
plt.scatter(X[:, 0], X[:, 1], c=y_pred, s = 100, alpha = 0.6, cmap = 'rainbow')

plt.show()

顯示結(jié)果:(對于該數(shù)據(jù)集,上述三種聚類算法不能很好地實(shí)現(xiàn)指定聚類目標(biāo)。)

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

2.3 使用DBSCAN聚類算法,不指定參數(shù)
from sklearn.cluster import DBSCAN

# 使用DBSCAN算法(不指定參數(shù))
y_pred = DBSCAN().fit_predict(X)

# 畫散點(diǎn)圖
plt.scatter(X[:, 0], X[:, 1], c=y_pred, s = 100, alpha = 0.6, cmap = 'rainbow')

plt.show()

顯示結(jié)果:

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

2.4 使用DBSCAN聚類算法,指定參數(shù)
# 指定參數(shù),調(diào)參,任務(wù)完成(聚成上下2類)
y_pred = DBSCAN(eps=0.2, min_samples=9).fit_predict(X)

# 畫散點(diǎn)圖
plt.scatter(X[:, 0], X[:, 1], c=y_pred, s = 100, alpha = 0.6, cmap = 'rainbow')

plt.show()

顯示結(jié)果:

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

通過調(diào)整兩個指定參數(shù),DBSCAN算法按照要求完成了新月數(shù)據(jù)集的聚類,DBSCAN算法的一大優(yōu)勢是可以對任意形狀的數(shù)據(jù)集進(jìn)行聚類。

3、使用輪廓系數(shù)(silhouette_score)來評估聚類

任務(wù)描述:

輪廓系數(shù)(silhouette_score)指標(biāo)是聚類效果的評價方式之一(前面我們還使用了蘭德指數(shù)-adjusted_rand_score,注意它們之間的區(qū)別)。輪廓系數(shù)指標(biāo)不關(guān)注樣本的實(shí)際類別,而是通過分析聚類結(jié)果中樣本的內(nèi)聚度和分離度兩種因素來給出成績,取值范圍為(-1,1),值越大代表聚類的結(jié)果越合理。

3.1 生成數(shù)據(jù)集
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs

# 使用數(shù)據(jù)生成器隨機(jī)生成500個樣本,每個樣本2個特征
X, y = make_blobs(n_samples=500, n_features=2, centers=[[-1,-1], [0.5,-1]], cluster_std=[0.2, 0.3], random_state=6)

# 畫出散點(diǎn)圖
plt.scatter(X[:, 0], X[:, 1], marker='o')
plt.show()

顯示結(jié)果:

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例

3.2 使用輪廓系數(shù)來評估聚類結(jié)果
from sklearn.metrics import silhouette_score # 輪廓系數(shù)評估函數(shù)
from sklearn.cluster import MeanShift

# 使用MeanShift聚類
y_pred = MeanShift().fit_predict(X)

# 畫出聚類散點(diǎn)圖
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show() 

# 評估輪廓系數(shù)
score = silhouette_score(X, y_pred)
print('score: ', score)

密度聚類算法(DBSCAN)實(shí)驗(yàn)案例文章來源地址http://www.zghlxwxcb.cn/news/detail-482947.html

到了這里,關(guān)于密度聚類算法(DBSCAN)實(shí)驗(yàn)案例的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • KMeans+DBSCAN密度聚類+層次聚類的使用(文末送書)

    KMeans+DBSCAN密度聚類+層次聚類的使用(文末送書)

    ???♂? 個人主頁:@艾派森的個人主頁 ???作者簡介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對你有幫助的話, 歡迎評論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 目錄 1.KMeans聚類算法 2.DBSCAN密度聚類算法 3.層次聚類 4.實(shí)戰(zhàn)案例 4.1數(shù)據(jù)集介紹 4.2加載數(shù)據(jù)

    2024年02月07日
    瀏覽(25)
  • 【機(jī)器學(xué)習(xí)】聚類算法-DBSCAN基礎(chǔ)認(rèn)識與實(shí)戰(zhàn)案例

    【機(jī)器學(xué)習(xí)】聚類算法-DBSCAN基礎(chǔ)認(rèn)識與實(shí)戰(zhàn)案例

    在機(jī)器學(xué)習(xí)中,聚類是一種常見的無監(jiān)督學(xué)習(xí)方法,它的目標(biāo)是將數(shù)據(jù)集中的數(shù)據(jù)點(diǎn)分成不同的組,每個組之間具有相似的特征。聚類可以用于各種應(yīng)用程序,如圖像分割,社交媒體分析,醫(yī)療數(shù)據(jù)分析等。DBSCAN是一種聚類算法,它被廣泛應(yīng)用于各種領(lǐng)域。 DBSCAN(Density-Bas

    2024年04月15日
    瀏覽(31)
  • 基于DBSCAN密度聚類的風(fēng)電-負(fù)荷場景削減方法

    基于DBSCAN密度聚類的風(fēng)電-負(fù)荷場景削減方法

    ? 1?主要內(nèi)容 基于密度聚類的數(shù)據(jù)預(yù)處理: 場景提?。?算法流程: 2?部分程序 3?程序結(jié)果 4 下載鏈接 該程序復(fù)現(xiàn)文章《氫能支撐的風(fēng)-燃?xì)怦詈系吞嘉⒕W(wǎng)容量優(yōu)化配置研究》第三章內(nèi)容,實(shí)現(xiàn)的是基于DBSCAN密度聚類的風(fēng)電-負(fù)荷場景生成與削減模型,首先,采集風(fēng)電、電負(fù)

    2024年02月05日
    瀏覽(24)
  • 聚類算法--DBSCAN算法

    聚類算法--DBSCAN算法

    DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一個基于密度的聚類算法。算法把簇看作數(shù)據(jù)空間中由低密度區(qū)域分割開的高密度對象區(qū)域;將足夠高密度的區(qū)域劃為簇,可以在有噪音的數(shù)據(jù)集中發(fā)現(xiàn)任意形狀的聚類。 在DBSCAN 算法中有兩個重要的參數(shù): Eps 和 MinPtS 。

    2024年01月21日
    瀏覽(20)
  • DBSCAN聚類算法

    DBSCAN聚類算法

    DBSCAN (density-based spatial clustering of applications with noise),即“具有噪聲的基于密度的空間聚類應(yīng)用”。它的原理是識別特征空間的“擁擠”區(qū)域中的點(diǎn),在這些區(qū)域中許多點(diǎn)靠在一起,這些區(qū)域稱為特征空間中的 密集 區(qū)域。密集區(qū)域最終將有相對較空的區(qū)域分隔開。 在密集區(qū)

    2024年02月06日
    瀏覽(18)
  • DBSCAN聚類算法——MATLAB實(shí)現(xiàn)

    DBSCAN聚類算法——MATLAB實(shí)現(xiàn)

    ? ? 聲明:本文修改自《 數(shù)學(xué)建模清風(fēng) 》老師的代碼 ???DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一個比較有代表性的基于密度的聚類算法。與劃分和層次聚類方法不同,它將簇定義為密度相連的點(diǎn)的最大集合,能夠把具有足夠高密度的區(qū)域劃分為簇,并可在噪

    2024年02月11日
    瀏覽(17)
  • 毫米波雷達(dá)點(diǎn)云 DBSCAN聚類算法

    毫米波雷達(dá)點(diǎn)云 DBSCAN聚類算法

    聚類的目的是將一組數(shù)據(jù)點(diǎn)劃分為具有相似特征或?qū)傩缘慕M或簇。通過聚類分析,我們可以識別出數(shù)據(jù)中的內(nèi)在模式、結(jié)構(gòu)和關(guān)聯(lián)關(guān)系,從而獲得對數(shù)據(jù)的更深入理解。 具體來說,聚類的目的可以分為以下三部分: 發(fā)現(xiàn)數(shù)據(jù)的內(nèi)在結(jié)構(gòu): 聚類可以將數(shù)據(jù)分成簇,這些簇可能

    2024年02月06日
    瀏覽(24)
  • 【機(jī)器學(xué)習(xí)】DBSCAN聚類算法(含Python實(shí)現(xiàn))

    【機(jī)器學(xué)習(xí)】DBSCAN聚類算法(含Python實(shí)現(xiàn))

    DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種基于密度的聚類算法,可以將數(shù)據(jù)點(diǎn)分成不同的簇,并且能夠識別噪聲點(diǎn)(不屬于任何簇的點(diǎn))。 DBSCAN聚類算法的基本思想是: 在給定的數(shù)據(jù)集中,根據(jù)每個數(shù)據(jù)點(diǎn)周圍其他數(shù)據(jù)點(diǎn)的密度情況,將數(shù)據(jù)點(diǎn)分為核心點(diǎn)

    2023年04月23日
    瀏覽(49)
  • 深度解讀DBSCAN聚類算法:技術(shù)與實(shí)戰(zhàn)全解析

    深度解讀DBSCAN聚類算法:技術(shù)與實(shí)戰(zhàn)全解析

    探索DBSCAN算法的內(nèi)涵與應(yīng)用,本文詳述其理論基礎(chǔ)、關(guān)鍵參數(shù)、實(shí)戰(zhàn)案例及最佳實(shí)踐,揭示如何有效利用DBSCAN處理復(fù)雜數(shù)據(jù)集,突破傳統(tǒng)聚類限制。 關(guān)注TechLead,分享AI全維度知識。作者擁有10+年互聯(lián)網(wǎng)服務(wù)架構(gòu)、AI產(chǎn)品研發(fā)經(jīng)驗(yàn)、團(tuán)隊(duì)管理經(jīng)驗(yàn),同濟(jì)本復(fù)旦碩,復(fù)旦機(jī)器人智

    2024年02月05日
    瀏覽(24)
  • C# | DBSCAN聚類算法實(shí)現(xiàn) —— 對直角坐標(biāo)系中臨近點(diǎn)的點(diǎn)進(jìn)行聚類

    C# | DBSCAN聚類算法實(shí)現(xiàn) —— 對直角坐標(biāo)系中臨近點(diǎn)的點(diǎn)進(jìn)行聚類

    聚類算法是一種常見的數(shù)據(jù)分析技術(shù),用于將相似的數(shù)據(jù)對象歸類到同一組或簇中。其中,DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種基于密度的聚類算法,能夠有效地識別出不同形狀和大小的簇,同時還能標(biāo)識出噪聲數(shù)據(jù)。本篇博客將介紹聚類算法的概念

    2024年02月09日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包