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

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

這篇具有很好參考價(jià)值的文章主要介紹了KMeans+DBSCAN密度聚類+層次聚類的使用(文末送書)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

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

???♂? 個(gè)人主頁(yè):@艾派森的個(gè)人主頁(yè)

???作者簡(jiǎn)介:Python學(xué)習(xí)者
?? 希望大家多多支持,我們一起進(jìn)步!??
如果文章對(duì)你有幫助的話,
歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+


目錄

1.KMeans聚類算法

2.DBSCAN密度聚類算法

3.層次聚類

4.實(shí)戰(zhàn)案例

4.1數(shù)據(jù)集介紹

4.2加載數(shù)據(jù)

4.3數(shù)據(jù)預(yù)處理?

4.4Kmeans聚類

4.5DBSCAN密度聚類

4.6層次聚類

4.7總結(jié)

文末福利

源代碼


?

1.KMeans聚類算法

????????kmeans聚類可以說是聚類算法中最為常見的,它是基于劃分方法聚類的,原理是先初始化k個(gè)簇類中心,基于計(jì)算樣本與中心點(diǎn)的距離歸納各簇類下的所屬樣本,迭代實(shí)現(xiàn)樣本與其歸屬的簇類中心的距離為最小的目標(biāo)(如下目標(biāo)函數(shù))。

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

?

其優(yōu)化算法步驟為:

1.隨機(jī)選擇 k 個(gè)樣本作為初始簇類中心(k為超參,代表簇類的個(gè)數(shù)??梢詰{先驗(yàn)知識(shí)、驗(yàn)證法確定取值);

2.針對(duì)數(shù)據(jù)集中每個(gè)樣本 計(jì)算它到 k 個(gè)簇類中心的距離,并將其歸屬到距離最小的簇類中心所對(duì)應(yīng)的類中;

3.針對(duì)每個(gè)簇類,重新計(jì)算它的簇類中心位置;

4.重復(fù)迭代上面 2 、3 兩步操作,直到達(dá)到某個(gè)中止條件(如迭代次數(shù),簇類中心位置不變等)。

關(guān)于具體的Kmeans介紹,可參考我之前博文

機(jī)器學(xué)習(xí)之KMeans聚類算法原理(附案例實(shí)戰(zhàn))

2.DBSCAN密度聚類算法

????????BSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪聲的基于密度的聚類方法)是一種基于密度的空間聚類算法。它可以替代KMeans和層次聚類等流行的聚類算法。DBSCAN算法將“簇”定義為密度相連的點(diǎn)的最大集合。DBSCAN 算法中有兩個(gè)重要參數(shù):Eps 和 MmPtS。Eps 是定義密度時(shí)的鄰域半徑,MmPts 為定義核心點(diǎn)時(shí)的閾值。

DBSCAN聚類算法原理:

1、DBSCAN通過檢查數(shù)據(jù)集中每個(gè)點(diǎn)的r鄰域來(lái)搜索簇,如果點(diǎn)p的r鄰域包含多于MinPts個(gè)點(diǎn),則創(chuàng)建一個(gè)以p為核心對(duì)象的簇;

2、然后, DBSCAN迭代的聚集從這些核心對(duì)象直接密度可達(dá)的對(duì)象,這個(gè)過程可能涉及一些密度可達(dá)簇的合并;

3、當(dāng)沒有新的帶你添加到任何簇時(shí),迭代過程結(jié)束。

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

DBSCAN算法的描述如下:

輸入:數(shù)據(jù)集,鄰域半徑 Eps,鄰域中數(shù)據(jù)對(duì)象數(shù)目閾值 MinPts;

輸出:密度聯(lián)通簇。

處理流程如下:

1)從數(shù)據(jù)集中任意選取一個(gè)數(shù)據(jù)對(duì)象點(diǎn) p;

2)如果對(duì)于參數(shù) Eps 和 MinPts,所選取的數(shù)據(jù)對(duì)象點(diǎn) p 為核心點(diǎn),則找出所有從 p 密度可達(dá)的數(shù)據(jù)對(duì)象點(diǎn),形成一個(gè)簇;

3)如果選取的數(shù)據(jù)對(duì)象點(diǎn) p 是邊緣點(diǎn),選取另一個(gè)數(shù)據(jù)對(duì)象點(diǎn);

4)重復(fù)(2)、(3)步,直到所有點(diǎn)被處理。

注意:DBSCAN 算法的計(jì)算復(fù)雜的度為 O(n),n 為數(shù)據(jù)對(duì)象的數(shù)目。這種算法對(duì)于輸入?yún)?shù) Eps 和 MinPts 是敏感的。

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

3.層次聚類

????????層次聚類(Hierarchical Clustering)是通過計(jì)算不同類別數(shù)據(jù)點(diǎn)間的相似度來(lái)創(chuàng)建一棵有層次的嵌套聚類樹,不同類別的原始數(shù)據(jù)點(diǎn)是樹的最低層,樹的頂層是一個(gè)聚類的根節(jié)點(diǎn)。層次聚類算法分為兩類:自上而下和自下而上。自下而上的算法在一開始就將每個(gè)數(shù)據(jù)點(diǎn)視為一個(gè)單一的聚類,然后依次合并類,直到所有類合并成一個(gè)包含所有數(shù)據(jù)點(diǎn)的單一聚類。

算法過程:

1.首先將每個(gè)數(shù)據(jù)點(diǎn)作為一個(gè)單個(gè)類,然后根據(jù)選擇的度量方法計(jì)算兩聚類之間的距離。

2.對(duì)所有數(shù)據(jù)點(diǎn)中最為相似的兩個(gè)數(shù)據(jù)點(diǎn)進(jìn)行組合,形成具有最小平均連接的組。

3.重復(fù)迭代步驟2直到只有一個(gè)包含所有數(shù)據(jù)點(diǎn)的聚類為止。

優(yōu)點(diǎn):

  • 無(wú)需指定聚類的數(shù)量
  • 對(duì)距離度量的選擇不敏感
  • 當(dāng)?shù)讓訑?shù)據(jù)具有層次結(jié)構(gòu)時(shí),可以恢復(fù)層次結(jié)構(gòu)

缺點(diǎn):時(shí)間復(fù)雜度為O(n3)

確定聚類數(shù)量:對(duì)于層次聚類,可以根據(jù)聚類過程中,每次合并的兩個(gè)cluster的距離來(lái)作判斷,取距離突變處的值為distance_threshold。若數(shù)據(jù)應(yīng)當(dāng)被分為K個(gè)簇,K個(gè)簇之間會(huì)有明顯的間距。若合并的兩個(gè)小簇同屬于一個(gè)目標(biāo)簇,那么它們的距離就不會(huì)太大。但當(dāng)合并出來(lái)K個(gè)目標(biāo)簇后,再進(jìn)行合并,則是對(duì)K個(gè)簇間進(jìn)行合并了,一般來(lái)說,此合并產(chǎn)生的距離就會(huì)有非常明顯的突變。

4.實(shí)戰(zhàn)案例

4.1數(shù)據(jù)集介紹

????????本數(shù)據(jù)集是由249名度假者在2014年10月之前發(fā)布的目的地評(píng)論組成的。在整個(gè)南印度的目的地中,分為6類的評(píng)論被考慮,每個(gè)評(píng)論(旅行者)在每一類的評(píng)論計(jì)數(shù)被記錄統(tǒng)計(jì)。數(shù)據(jù)集共有249條,共7列。具體字段信息如下表:

屬性

數(shù)據(jù)類型

屬性描述

User?Id

Object字符類型

用戶唯一的ID

Sports

Int整數(shù)類型

對(duì)體育場(chǎng)館、體育綜合體等的評(píng)論數(shù)量

Religious

Int整數(shù)類型

對(duì)宗教機(jī)構(gòu)的評(píng)論數(shù)量

Nature

Int整數(shù)類型

關(guān)于海灘、湖泊、河流等的評(píng)論數(shù)量

Theatre

Int整數(shù)類型

關(guān)于劇院、展覽等的評(píng)論數(shù)量

Shopping

Int整數(shù)類型

對(duì)商場(chǎng)、購(gòu)物場(chǎng)所等的評(píng)論數(shù)量

Picnic

Int整數(shù)類型

對(duì)公園、野餐地點(diǎn)等的評(píng)論數(shù)量

4.2加載數(shù)據(jù)

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

4.3數(shù)據(jù)預(yù)處理?

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

4.4Kmeans聚類

首先使用肘部法則確定K

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

通過圖形確定K值為3,使用Kmeans聚類?

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

4.5DBSCAN密度聚類

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

4.6層次聚類

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

4.7總結(jié)

????????從前面結(jié)果中得到的三類聚類算法模型結(jié)果中,我們發(fā)現(xiàn)KMeans模型和層次聚類模型結(jié)果相似,而DBSCAN模型結(jié)果與KMeans模型和層次聚類模型結(jié)果差距較大。通過查閱相關(guān)資料,我們發(fā)現(xiàn)可能是在構(gòu)建BDSCAN模型的時(shí)候,參數(shù)的選擇很重要,參數(shù)變化一點(diǎn)點(diǎn)都會(huì)對(duì)最后的模型造成很大的影響,且由于本次數(shù)據(jù)集樣本較少,對(duì)三個(gè)模型的結(jié)果都有一定的模型,樣本數(shù)據(jù)過少會(huì)導(dǎo)致模型的泛化能力較差,不能很好的在實(shí)際應(yīng)用中進(jìn)行使用。

文末福利

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

參與福利?

  • 抽獎(jiǎng)方式:評(píng)論區(qū)隨機(jī)抽取2位小伙伴免費(fèi)送出!
  • 參與方式:關(guān)注博主、點(diǎn)贊、收藏、評(píng)論區(qū)評(píng)論“人生苦短,拒絕內(nèi)卷!”(切記要點(diǎn)贊+收藏,否則抽獎(jiǎng)無(wú)效,每個(gè)人最多評(píng)論三次!
  • 活動(dòng)截止時(shí)間:2023-06-05?20:00:00
  • ?京東自營(yíng)店購(gòu)買鏈接:https://item.jd.com/13737387.html#crumb-wrap

名單公布時(shí)間:2023-06-05?21:00:00???

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

源代碼

import pandas as pd
import warnings
warnings.filterwarnings('ignore')
data = pd.read_csv('buddymove_holidayiq.csv')
data.head()
# 數(shù)據(jù)預(yù)處理
data.dropna(inplace=True)  # 刪除缺失值
data.drop_duplicates(inplace=True)  # 刪除重復(fù)值
# 數(shù)據(jù)標(biāo)準(zhǔn)化
from sklearn.preprocessing import StandardScaler
df = data.drop('User Id',axis=1)
scaler = StandardScaler()
X = scaler.fit_transform(df)
data_scaler = pd.DataFrame(X,columns=df.columns)
data_scaler.head()
KMeans聚類
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #解決中文顯示|
plt.rcParams['axes.unicode_minus'] = False   #解決符號(hào)無(wú)法顯示
from sklearn.cluster import KMeans
# 肘部法則
loss = []
for i in range(2,6):
    model = KMeans(n_clusters=i).fit(X)
    loss.append(model.inertia_)
    
plt.plot(range(2,6),loss)
plt.xlabel('k')
plt.ylabel('loss')
plt.show()
from sklearn.cluster import KMeans
k = 3 # 聚成3類
kmodel = KMeans(k)  # 創(chuàng)建聚類模型
kmodel.fit(data_scaler)  # 訓(xùn)練模型
print(pd.Series(kmodel.labels_).value_counts())
pd.Series(kmodel.labels_).value_counts().plot(kind='bar')
plt.title('KMeans聚類的結(jié)果')
plt.xlabel('聚類標(biāo)簽')
plt.ylabel('聚類數(shù)量')
plt.show()
DBSCAN密度聚類
from sklearn.cluster import DBSCAN
dbscan = DBSCAN(eps=1.1)
# 模型擬合
dbscan.fit(X)
data2 = data_scaler.copy()
data2['dbscan_label'] = dbscan.labels_
print(pd.Series(dbscan.labels_).value_counts())
data2['dbscan_label'].value_counts().plot(kind='bar')
plt.title('DBSCAN密度聚類的結(jié)果')
plt.xlabel('聚類標(biāo)簽')
plt.ylabel('聚類數(shù)量')
plt.show()
層次聚類
from sklearn.cluster import AgglomerativeClustering 
# n_clusters為集群數(shù),affinity指定用于計(jì)算距離的度量,linkage參數(shù)中的ward為離差平方和法
Agg_hc = AgglomerativeClustering(n_clusters = 3, affinity = 'euclidean', linkage = 'ward')
y_hc = Agg_hc.fit_predict(data_scaler) # 訓(xùn)練數(shù)據(jù)
print(pd.Series(y_hc).value_counts())
pd.Series(y_hc).value_counts().plot(kind='bar')
plt.title('層次聚類的結(jié)果')
plt.xlabel('聚類標(biāo)簽')
plt.ylabel('聚類數(shù)量')
plt.show()

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-470626.html

到了這里,關(guān)于KMeans+DBSCAN密度聚類+層次聚類的使用(文末送書)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 基于密度的聚類算法(1)——DBSCAN詳解

    基于密度的聚類算法(1)——DBSCAN詳解

    基于密度的聚類算法(1)——DBSCAN詳解 基于密度的聚類算法(2)——OPTICS詳解 基于密度的聚類算法(3)——DPC詳解 1. DBSCAN簡(jiǎn)介 DBSCAN(Density-Based Spatial Clustering of Applications with Noise, 具有噪聲的基于密度的聚類方法 )是一種典型的基于密度的空間聚類算法。和K-Means,BIR

    2024年01月24日
    瀏覽(21)
  • 聚類分析-K-means、層次聚類、DBSCAN、簇評(píng)估

    聚類分析-K-means、層次聚類、DBSCAN、簇評(píng)估

    聚類分析是一種數(shù)據(jù)分析技術(shù),對(duì)大量未知標(biāo)注的數(shù)據(jù)集,通過將具有相似數(shù)據(jù)特性的數(shù)據(jù)對(duì)象分組到一起,使得類別內(nèi)的數(shù)據(jù)相似度較大而類別間的數(shù)據(jù)相似度較小,以便對(duì)這些數(shù)據(jù)對(duì)象進(jìn)行更好的理解和分析??偟膩?lái)說,聚類分析就是將數(shù)據(jù)劃分成有意義或有用的組(簇

    2024年02月03日
    瀏覽(48)
  • 【詳解算法流程+程序】DBSCAN基于密度的聚類算法+源碼-用K-means和DBSCAN算法對(duì)銀行數(shù)據(jù)進(jìn)行聚類并完成用戶畫像數(shù)據(jù)分析課設(shè)源碼資料包

    【詳解算法流程+程序】DBSCAN基于密度的聚類算法+源碼-用K-means和DBSCAN算法對(duì)銀行數(shù)據(jù)進(jìn)行聚類并完成用戶畫像數(shù)據(jù)分析課設(shè)源碼資料包

    DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一個(gè)比較有代表性的基于密度的聚類算法。 與劃分和層次聚類方法不同,它將簇定義為密度相連的點(diǎn)的最大集合,能夠把具有足夠高密度的區(qū)域劃分為簇, 并可在噪聲的空間數(shù)據(jù)庫(kù)中發(fā)現(xiàn)任意形狀的聚類。 ????????選

    2024年04月11日
    瀏覽(31)
  • 聚類分析(文末送書)

    聚類分析(文末送書)

    目錄 聚類分析是什么 一、 定義和數(shù)據(jù)類型 聚類應(yīng)用 聚類分析方法的性能指標(biāo) 聚類分析中常用數(shù)據(jù)結(jié)構(gòu)有數(shù)據(jù)矩陣和相異度矩陣 聚類分析方法分類 二、K-means聚類算法 劃分聚類方法對(duì)數(shù)據(jù)集進(jìn)行聚類時(shí)包含三個(gè)要點(diǎn) K-Means算法流程: K-means聚類算法的特點(diǎn) 三、k-medoids算法 基

    2024年02月09日
    瀏覽(16)
  • 改進(jìn)的KMeans 點(diǎn)云聚類算法 根據(jù)體元中的點(diǎn)數(shù)量計(jì)算點(diǎn)密度,并獲取前K個(gè)點(diǎn)密度最大的體元作為初始聚類中心(附 matlab 代碼)

    KMeans函數(shù)的主要邏輯如下: 使用InitCenter函數(shù)初始化聚類中心,該函數(shù)根據(jù)體元密度選擇初始聚類中心。該函數(shù)的輸入?yún)?shù)包括數(shù)據(jù)(data)、聚類中心數(shù)量(centerNum)和體元數(shù)量(voxelNum)。 根據(jù)點(diǎn)云的取值范圍計(jì)算包圍盒的體積(V)和體元邊長(zhǎng)(d)。 根據(jù)體元邊長(zhǎng)將點(diǎn)云

    2024年02月10日
    瀏覽(20)
  • 使用Kmeans算法完成聚類任務(wù)

    使用Kmeans算法完成聚類任務(wù)

    ?聚類任務(wù) ?聚類任務(wù)是一種無(wú)監(jiān)督學(xué)習(xí)任務(wù),其目的是將一組數(shù)據(jù)點(diǎn)劃分成若干個(gè)類別或簇,使得同一個(gè)簇內(nèi)的數(shù)據(jù)點(diǎn)之間的相似度盡可能高,而不同簇之間的相似度盡可能低。聚類算法可以幫助我們發(fā)現(xiàn)數(shù)據(jù)中的內(nèi)在結(jié)構(gòu)和模式,發(fā)現(xiàn)異常點(diǎn)和離群值,簡(jiǎn)化數(shù)據(jù)表示,以

    2024年02月15日
    瀏覽(24)
  • 常見聚類算法及使用--層次聚類(Agglomerative clustering)

    常見聚類算法及使用--層次聚類(Agglomerative clustering)

    前言 層次聚類顧名思義就是按照某個(gè)層次對(duì)樣本集進(jìn)行聚類操作,這里的層次實(shí)際上指的就是某種距離定義。 層次聚類最終的目的是消減類別的數(shù)量,所以在行為上類似于樹狀圖由葉節(jié)點(diǎn)逐步向根節(jié)點(diǎn)靠近的過程,這種行為過程又被稱為“自底向上”。 更通俗的,層次聚類

    2024年01月16日
    瀏覽(19)
  • 作為開發(fā)者如何有效使用 ChatGPT(文末送書)

    作為開發(fā)者如何有效使用 ChatGPT(文末送書)

    ???♂? 個(gè)人主頁(yè):@艾派森的個(gè)人主頁(yè) ???作者簡(jiǎn)介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對(duì)你有幫助的話, 歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 目錄 一、制作提示詞? ? ? ?? 二、實(shí)際應(yīng)用 2.1學(xué)習(xí)新的語(yǔ)言和框架 2.2準(zhǔn)備認(rèn)證考試 2.3調(diào)

    2024年02月07日
    瀏覽(23)
  • DBSCAN聚類算法

    DBSCAN聚類算法

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

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

    聚類算法--DBSCAN算法

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

    2024年01月21日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包