密度聚类sklearn.cluster包DBSCAN

本文详细介绍了如何使用Python机器学习库sklearn的cluster模块进行密度聚类,特别是DBSCAN算法。通过实例解析了DBSCAN的参数设置、数据预处理以及聚类效果评估,帮助读者掌握基于密度的聚类方法。
摘要由CSDN通过智能技术生成
#coding=utf-8
import numpy as np
from sklearn.cluster import DBSCAN
import matplotlib.pyplot as plt
#国家面积和人口
X = [
    [9670250, 1392358258],  # 中国
    [2980000, 1247923065],  # 印度
    [9629091, 317408015],  # 美国
    [8514877, 201032714],  # 巴西
    [377873, 127270000],  # 日本
    [7692024, 23540517],  # 澳大利亚
    [9984670, 34591000],  # 加拿大
    [17075400, 143551289],  # 俄罗斯
    [513115, 67041000],  # 泰国
    [181035, 14805358],  # 柬埔寨
    [99600, 50400000],   # 韩国
    [120538, 24052231]]  # 朝鲜
#转换成numpy array
X = np.array(X)
#做归一化
a = X[:, :1] / 17075400.0 * 10000
b = X[:, 1:] / 1392358258.0 * 10000
X = np.concatenate((a, b), axis=1)  # 合并数组a,b 按横轴方向
#现在把训练数据和对应的分类放入分类器中进行训练,这里没有出现噪点是因为把min_samples#设置成了1
cls = DBSCAN(eps=2000, min_samples=1).fit(X)   # min_samples 聚簇最小应该拥有的向量个数
'''
eps的含义是设置一个阈值,在根据密度向外扩展的过程中如果发现在这个阈值距离范围内找不到向量,
那么就认为这个聚簇已经查找完毕。在这个例子中设置的是2000,
因为归一化以后所有的变量都落在一个10000×10000的区间单位࿰
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值