IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 利用鸢尾花数据集复现DBSCAN密度聚类算法 -> 正文阅读

[人工智能]利用鸢尾花数据集复现DBSCAN密度聚类算法

生成数据集

from sklearn import datasets
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import random 
data = datasets.load_iris()[:,:2].tolist()
data

在这里插入图片描述

  • 为了后续可视化方便,故此处选择生成二维数据集,毕竟画二维散点图不怎么需要动脑子;

在这里插入图片描述

生成核心对象

MIN_PTS = 3
E = .1
O = []
for i in range(len(data)):
	num = 0
	for j in range(len(data)):
		if distance(i,j) <= E:
			num += 1
	if num >= MIN_PTS:
		O.append(data[i]) 
O

对数据集可视化展示

plt.figure(figsize=(3,3),dpi=200)
plt.style.use('seaborn-dark')
for i in range(len(data)):
	plt.scatter(data[i][0],data[i][1],color='red')
for j in range(len(O)):
	plt.scatter(data[j][0],data[j][1],color='blue')

在这里插入图片描述

  • 此处的红色点以及蓝色点构成所有样本点,而蓝色点也就是我们控制阈值而得出的核心对象;
  • 另外,此处所有代码均为现撸,省略很多简单函数,比如distance,懂得自然懂。完整代码在jupyter上,需要可私信我或者评论区回复;

利用生成的核心对象生成簇

OBJ = O.copy() #拷贝核心对象
unflag = data.copy() #拷贝数据集,后续做标记
MIN_PTS = 3 #对象阈值
E = .1 #半径
k = 0 #聚类簇数
colors = ['yellow','green','pink','black']
markers = ['1','2','*','+']
while OBJ:
	obj = OBJ[random.randint(0,len(OBJ)-1)]
	C = [obj] #聚类簇
	Q = [obj] #核心对象遍历,队列
	unflag.remove(obj)
	while Q:
		q = Q[0]
		del Q[0]
		num = 0
		ts = []
		for i in range(len(unflag)):
			if distance(q,unflag[i]) < E:
				num += 1
				ts.append(unflag(i))
			if num >= MIN_PTS:
				for s in ts:
					if s in unflag:
						Q.append(s)
						C.append(s)
						unflag.remove(s)
	for j in C:
		if j in OBJ:
			OBJ.remove(j)
		plt.scatter(j[0],j[1],color=colors[k%4],marker = markers[k%4])
	k += 1
  • 阈值可自己调
  • 最终分成三类,list ou of range,所以不仅看颜色 更要看形状
    在这里插入图片描述
  • 本博客仅用于本人学习使用,不得转载用作他途
  • 下期出使用K-means做对比的复现
  • 目前来看,DBscan可聚类的形状远不止球状,甚好!
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:22:35  更:2022-04-09 18:25:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:16:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码