密度聚类-DBSCAN

一、基本代码

sklearn.cluster.DBSCAN(eps=0.5, *, min_samples=5, metric='euclidean',metric_params=None, algorithm='auto', leaf_size=30, p=None, n_jobs=None)

参数说明:

(1)eps:邻域半径,默认值为0.5;
(2)min_samples:邻域中至少要包含最小数数目(MinPts),默认值为5;
(3)metric:距离度量,默认为欧几里得距离;
(4)p:闵可夫斯基距离中的参数

属性:

(1) core_sample_indices _: ndarray of shape(n_core_samples,),核心元素的索引
(2) components _: ndarray of shape(n_core_samples,n_features),训练得出的每一个核心元素构成的副本。
(3) labels _: ndarray of shape(n_samples):每一个点对应的标签,噪声点在最后
(4) n features in : int, Number of features seen during fit.

方法:

(1) fit(X[, y, sample_weight])
(2) fit_predict(X[, y, sample_weight])

案例实现

画图对比DBSCAN和kmeans

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_circles, make_blobs
from sklearn.cluster import DBSCAN, KMeans

# 生成数据集
X1, y1 = make_circles(n_samples=5000, factor=0.6, noise=0.05)  # 生成圆形数据集
X2, y2 = make_blobs(n_samples=1000, n_features=2, centers=[[1.2, 1.2]], cluster_std=0.1, random_state=9)  # 生成高斯分布数据集

# 合并数据集
X = np.r_[X1, X2]

# 绘制生成的数据点
plt.scatter(X[:, 0], X[:, 1], marker='o')  # 散点图表示数据点
plt.title("Generated Data")  # 设置标题
plt.show()

# 使用KMeans算法进行聚类
kmeans = KMeans(n_clusters=3, random_state=9)  # 创建KMeans模型,指定簇数为3
y_pred_kmeans = kmeans.fit_predict(X)  # 对数据进行KMeans聚类预测

# 绘制KMeans聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred_kmeans)  # 根据KMeans聚类结果着色
plt.title("KMeans Clustering")  # 设置标题
plt.show()

# 使用DBSCAN算法进行聚类
dbscan = DBSCAN(eps=0.1, min_samples=10)  # 创建DBSCAN模型,设置半径和最小样本数
y_pred_dbscan = dbscan.fit_predict(X)  # 对数据进行DBSCAN聚类预测

# 绘制DBSCAN聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred_dbscan)  # 根据DBSCAN聚类结果着色
plt.title("DBSCAN Clustering")  # 设置标题
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值