机器学习之DBSCAN聚类算法
可以看该博客:https://www.cnblogs.com/aijianiula/p/4339960.html
1、知识点
"""
基本概念:
1、核心对象:某个点的密度达到算法设定的阈值则其为核心点(即r邻域内点的数量不小于minpts)
2、邻域的距离阈值:设定的半径r
3、直接密度可达:某点p在点q的r邻域内,且q是核心点,则表示p-q是直接密度可达
4、噪声点:不属于任何一个类族的点
5、边界点:属于某一个类的非核心点,不能发展下线(即边界点没有密度可达的点)
超参:指定的半径r,密度阈值minpts 算法优势:
1、不需要指定簇个数
2、可以发现任意形状的簇
3、擅长找到离群点(检测任务)
4、两个参数就够了
劣势:
1、高维数据有写困难(可以使用PCA和LDA进行数据降维)
2、参数难以选择(参数对结果的影响非常大)
3、sklearn中效率很慢(数据削减策略) 和K-Mean对比:效果比K-Mean好很多
"""
2、代码案例
#可以对数据进行标准化或者归一化 import pandas as pd
from sklearn.cluster import KMeans from sklearn.cluster import DBSCAN def KMean():
data = pd.read_csv('data.txt',sep=' ')
X = data[["colum1","column2","column3"]]
km1 = KMeans(n_clusters=3).fit(X)
km1 = KMeans(n_clusters=2).fit(X) print(km1.labels_)#查看聚类的类别
data['cluster']=km1.labels_ #添加一列
print(data.sort_values('cluster'))#按cluster进行排序 #根据cluster,计算均值
print(data.groupby('cluster').mean()) def DBSCAN():
data = pd.read_csv('data.txt', sep=' ')
X = data[["colum1", "column2", "column3"]]
db = DBSCAN(eps=1.0,min_samples=2).fit(X)
labels = db.labels_
data['cluster'] = labels
data.sort_values('cluster') if __name__ == '__main__':
DBSCAN()
3、算法流程

机器学习之DBSCAN聚类算法的更多相关文章
- 机器学习入门-DBSCAN聚类算法
DBSCAN 聚类算法又称为密度聚类,是一种不断发张下线而不断扩张的算法,主要的参数是半径r和k值 DBSCAN的几个概念: 核心对象:某个点的密度达到算法设定的阈值则其为核心点,核心点的意思就是一个 ...
- 机器学习六--K-means聚类算法
机器学习六--K-means聚类算法 想想常见的分类算法有决策树.Logistic回归.SVM.贝叶斯等.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别 ...
- 5.机器学习——DBSCAN聚类算法
1.优缺点 优点: (1)聚类速度快且能够有效处理噪声点和发现任意形状的空间聚类: (2)与K-MEANS比较起来,不需要输入要划分的聚类个数: (3)聚类簇的形状没有偏倚: (4)可以在需要时输入过 ...
- 【Python机器学习实战】聚类算法(2)——层次聚类(HAC)和DBSCAN
层次聚类和DBSCAN 前面说到K-means聚类算法,K-Means聚类是一种分散性聚类算法,本节主要是基于数据结构的聚类算法--层次聚类和基于密度的聚类算法--DBSCAN两种算法. 1.层次聚类 ...
- 5.无监督学习-DBSCAN聚类算法及应用
DBSCAN方法及应用 1.DBSCAN密度聚类简介 DBSCAN 算法是一种基于密度的聚类算法: 1.聚类的时候不需要预先指定簇的个数 2.最终的簇的个数不确定DBSCAN算法将数据点分为三类: 1 ...
- 【Python机器学习实战】聚类算法(1)——K-Means聚类
实战部分主要针对某一具体算法对其原理进行较为详细的介绍,然后进行简单地实现(可能对算法性能考虑欠缺),这一部分主要介绍一些常见的一些聚类算法. K-means聚类算法 0.聚类算法算法简介 聚类算法算 ...
- Mahout机器学习平台之聚类算法具体剖析(含实例分析)
第一部分: 学习Mahout必需要知道的资料查找技能: 学会查官方帮助文档: 解压用于安装文件(mahout-distribution-0.6.tar.gz),找到例如以下位置.我将该文件解压到win ...
- 机器学习:K-Means聚类算法
本文来自同步博客. 前面几篇文章介绍了回归或分类的几个算法,它们的共同点是训练数据包含了输出结果,要求算法能够通过训练数据掌握规律,用于预测新输入数据的输出值.因此,回归算法或分类算法被称之为监督学习 ...
- 机器学习中K-means聚类算法原理及C语言实现
本人以前主要focus在传统音频的软件开发,接触到的算法主要是音频信号处理相关的,如各种编解码算法和回声消除算法等.最近切到语音识别上,接触到的算法就变成了各种机器学习算法,如GMM等.K-means ...
随机推荐
- 关于使用jquery评论插件...
.今天做项目,使用了一个评论插件 调用出来没事, 可是添加的时候报错 Uncaught TypeError: $(...).find(...).live is not a function 这个错误 ...
- Airtest 支持的手机,系统等环境
据个人经验,Airtest 支持的以下设备会跑的比较666 Android 平台 华为荣耀9青春版 版本:8.0.0 型号:LLD-AL10 评价:自动化运行最6 华为 荣耀10青春版 版本:9.0. ...
- C++踩坑记录(一)std:;string的析构
之前写服务端程序有一个往消息队列里面推json的过程,然后发现推进去C#端取到的无论如何都是个空指针 简单复现一下现场 string str1 = string("hello1") ...
- 在java的xml文件配置数据库URL地址时提示The reference to entity "characterEncoding" must end with the ';' delimiter.错误信息
配置数据库的URL<property name="url" value="jdbc:mysql://127.0.0.1:3306/micro_message&quo ...
- Raid0、Raid0+1、Raid1、Raid5四者的区别
RAID,可以把硬盘整合成一个大磁盘,还可以在大磁盘上再分区,放数据还有一个大功能,多块盘放在一起可以有冗余(备份)RAID整合方式有很多,常用的:0 1 5 10 Raid0Raid0是所有raid ...
- C# Tcp和Socket 网络(五)
TcpReceive public Form1() { InitializeComponent(); new Thread(() => { IPAddress ip = IPAddress.Pa ...
- nginx之location模式
这篇博客写的很nice, 转载: https://www.jianshu.com/p/e154c2ef002f 简单记一下: 匹配语法: = ^~ ~(区分大小写) ~*(不区 ...
- siblings([expr])
siblings([expr]) 概述 取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合.可以用可选的表达式进行筛选.大理石平台维修 参数 exprStringV1.0 用于筛选 ...
- 【原创】tarjan算法初步(强连通子图缩点)
[原创]tarjan算法初步(强连通子图缩点) tarjan算法的思路不是一般的绕!!(不过既然是求强连通子图这样的回路也就可以稍微原谅了..) 但是研究tarjan之前总得知道强连通分量是什么吧.. ...
- 【csp模拟赛2】 序列操作
线性推,开数组太麻烦,可以用指针 代码: #include <iostream> #include <cstdio> #include <queue> using ...