日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

【Python-ML】SKlearn库密度聚类DBSCAN模型

發(fā)布時間:2025/4/16 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python-ML】SKlearn库密度聚类DBSCAN模型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
# -*- coding: utf-8 -*- ''' Created on 2018年1月25日 @author: Jason.F @summary: 無監(jiān)督聚類學(xué)習(xí)-基于密度 空間的聚類算法(Density-based Spatial Clustering of Application with Noise,DBSCAN) 密度:半徑范圍內(nèi)樣本點的數(shù)量 核心點:如果在一個點周邊的指定半徑內(nèi),其他樣本點的數(shù)量不小于指定數(shù)量(MinPts),則該樣本點為核心點 邊界點:在指定半徑內(nèi),如果一個點的鄰居點少于MinPts個,但卻包含一個核心點,則為邊界點 噪聲點:除核心點和邊界點外的樣本點都是噪聲點 DBSCAN的簇空間不一定是球狀的,可識別和移除噪聲點,因此不一定會將所有的樣本點都劃分到某一簇中 如果數(shù)據(jù)集中的密度差異相對較大,則找到半徑和MinPts較為困難。 ''' import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_moons from sklearn.cluster import KMeans,AgglomerativeClustering,DBSCAN X,y = make_moons(n_samples=200,noise=0.05,random_state=0)#創(chuàng)建半月形數(shù)據(jù) plt.scatter(X[:,0],X[:,1]) plt.show() f,(ax1,ax2) = plt.subplots(1,2,figsize=(8,3)) #原型聚類KMeans模型 km=KMeans(n_clusters=2,random_state=0) y_km = km.fit_predict(X) ax1.scatter(X[y_km==0,0],X[y_km==0,1],c='lightblue',marker='o',s=40,label='cluster 1') ax1.scatter(X[y_km==1,0],X[y_km==1,1],c='red',marker='s',s=40,label='cluster 2') ax1.set_title('K-means clustering') #層次聚類凝聚模型 ac=AgglomerativeClustering(n_clusters=2,affinity='euclidean',linkage='complete')#全連接,歐式距離計算聯(lián)合矩陣 y_ac= ac.fit_predict(X) ax2.scatter(X[y_ac==0,0],X[y_ac==0,1],c='lightblue',marker='o',s=40,label='cluster 1') ax2.scatter(X[y_ac==1,0],X[y_ac==1,1],c='red',marker='s',s=40,label='cluster 2') ax2.set_title('Agglomerative clustering') plt.legend() plt.show() #密度聚類DBSCAN,成功對半月形數(shù)據(jù)進(jìn)行分類 db =DBSCAN(eps=0.2,min_samples=5,metric='euclidean')#歐式距離,樣本點數(shù)量5,半徑0.2 y_db = db.fit_predict(X) plt.scatter(X[y_db==0,0],X[y_db==0,1],c='lightblue',marker='o',s=40,label='cluster 1') plt.scatter(X[y_db==1,0],X[y_db==1,1],c='red',marker='s',s=40,label='cluster 2') plt.legend() plt.show()''' 1、三種最基本的聚類方法:KMeans基于原型的聚類、凝聚層次聚類、使用DBSCAN基于密度的聚類。 2、其他方法:圖聚類(最突出方法使譜聚類算法),使用基于相似矩陣的特征向量來獲得簇間關(guān)系,參考:http://arxiv.org/pdf/0711.0189v1.pdf <A Tutorial on Spectral Clustering.Statistics and computing> 3、聚類算法取決于三個要素,算法、參數(shù)以及距離度量,而距離度量很容易面臨維度災(zāi)難(curse of dimensionality) '''

結(jié)果:


總結(jié)

以上是生活随笔為你收集整理的【Python-ML】SKlearn库密度聚类DBSCAN模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。