# -*- coding: utf-8 -*-
'''
Created on 2018年1月25日
@author: Jason.F
@summary: 无监督聚类学习-基于密度 空间的聚类算法(Density-based Spatial Clustering of Application with Noise,DBSCAN)
密度:半径范围内样本点的数量
核心点:如果在一个点周边的指定半径内,其他样本点的数量不小于指定数量(MinPts),则该样本点为核心点
边界点:在指定半径内,如果一个点的邻居点少于MinPts个,但却包含一个核心点,则为边界点
噪声点:除核心点和边界点外的样本点都是噪声点
DBSCAN的簇空间不一定是球状的,可识别和移除噪声点,因此不一定会将所有的样本点都划分到某一簇中
如果数据集中的密度差异相对较大,则找到半径和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)#创建半月形数据
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')#全连接,欧式距离计算联合矩阵
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,成功对半月形数据进行分类
db =DBSCAN(eps=0.2,min_samples=5,metric='euclidean')#欧式距离,样本点数量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、其他方法:图聚类(最突出方法使谱聚类算法),使用基于相似矩阵的特征向量来获得簇间关系,参考:http://arxiv.org/pdf/0711.0189v1.pdf   <A Tutorial on Spectral Clustering.Statistics and computing>
3、聚类算法取决于三个要素,算法、参数以及距离度量,而距离度量很容易面临维度灾难(curse of dimensionality)
'''

结果:

【Python-ML】SKlearn库密度聚类DBSCAN模型相关推荐

  1. 【转载】【Python-ML】SKlearn库谱聚类SpectralClustering模型

    在scikit-learn的类库中,sklearn.cluster.SpectralClustering实现了基于Ncut的谱聚类,没有实现基于RatioCut的切图聚类.同时,对于相似矩阵的建立,也 ...

  2. Python基于聚类算法实现密度聚类(DBSCAN)计算

    本文实例讲述了Python基于聚类算法实现密度聚类(DBSCAN)计算.分享给大家供大家参考,具体如下: 算法思想 基于密度的聚类算法从样本密度的角度考察样本之间的可连接性,并基于可连接样本不断扩展聚 ...

  3. dbscan聚类算法matlab_密度聚类DBSCAN、HDBSCAN(转)

    # 密度聚类DBSCAN.HDBSCAN DBSCAN DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声 ...

  4. (十八)密度聚类DBSCAN

    密度聚类DBSCAN DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法) 是一种很典型 ...

  5. Python安装sklearn库时出现异常:ERROR: Could not install packages due to an EnvironmentError: [Errno 2]

    文章目录 一.问题描述 二.问题解决 一.问题描述 今天在学习python机器学习时,需要安装python的sklearn库,在安装的过程中出现了以下错误 上CSDN上找了好多文章,都没办法解决问题 ...

  6. 机器学习强基计划7-5:图文详解密度聚类DBSCAN算法(附Python实现)

    目录 0 写在前面 1 密度聚类 2 DBSCAN算法 3 Python实现 3.1 算法复现 3.2 可视化实验 0 写在前面 机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用.&qu ...

  7. 密度聚类 DBSCAN python实现

    python代码例子参考另一篇博客: https://blog.csdn.net/jacke121/article/details/117736855 一.前言 二.DBSCAN聚类算法 三.参数选择 ...

  8. ID3决策树 Python实现 + sklearn库决策树模型的应用

    本文介绍机器学习中决策树算法的python实现过程 共介绍两类方法: (1)亲手实习Python ID3决策树经典算法 (2)利用sklearn库实现决策树算法 关于决策树的原理,指路:机器学习 第四 ...

  9. 聚类算法_层次聚类_密度聚类(dbscan,meanshift)_划分聚类(Kmeans)详解

    注: 两整天的成果,谬误之处勿喷 1 聚类概述 样本 没有训练的样本 没有标注的样本 1.1 相似度度量 1.1.1 距离相似度度量 距离度量 dist(oi,oj)dist(o_{i},o_{j}) ...

最新文章

  1. 线程安全的理论讲解(volatile)
  2. 常见linux命令使用方法(二)
  3. 计算机操作的功能是什么情况,计算机操作系统的主要功能是什么?
  4. 《明日方舟》的塔防元素:是鸡肋还是精髓?
  5. 求一个有限长度字符串 最长的有序可重复字符串长度
  6. KnockoutJs篇:快速掌握KnockoutJs
  7. 限制会话id服务端不共享_不懂 Zookeeper?看完不懂你打我
  8. mysql killed状态连接_MySQL: kill connection的实现简析
  9. Linux 相关小技巧
  10. python双目视觉三维重建代码_双目立体视觉的三维重建方法与流程
  11. 判断变量是空_python基础(二):变量的数据类型、常量、操作符、分支、循环、条件判断...
  12. Genius‘s Gambit【学习进度条1】
  13. 两万字的CAPL语法基础,一篇文章带你入门
  14. 简单快捷 Lambda数组打印
  15. PENCIL 决策建模器
  16. JumpServer配置邮件服务
  17. 杀出重围3显卡测试软件,更多游戏实测-《战地5》实测-3D MARK跑分-配套软件-微星RTX 2060 Gaming Z 6G非公版显卡开箱上手体验_游戏硬件_游侠网...
  18. maven设置阿里仓库
  19. Word转pdf一个方法就可以完成~手机电脑都可以免费使用~办公必备
  20. Spring Boot与安全(安全、Spring Security)

热门文章

  1. Mysql数据库的安装教程
  2. [OSDI 16] Wukong : 基于RDMA的高并发、快速的分布式RDF Graph Query系统
  3. Linux查看ice版本,Linux下ICE的安装
  4. linux python代码编辑器,Linux上的Python编辑器
  5. oracle好难装,安装oracle 10g 的艰难之旅
  6. 通过模拟器看Windows Phone 7
  7. BZOJ.3277.串(广义后缀自动机)
  8. Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test)
  9. [daily] 使用diff和patch打补丁
  10. 地形纹理Splatting技术(翻译)