文章目录

  • 数据集
  • K-Means
  • DBSCAN

用K-Means和DBSCAN算法对西瓜数据集4.0进行聚类分析

数据集

 density sugercontent
1   0.697   0.46
2   0.774   0.376
3   0.634   0.264
4   0.608   0.318
5   0.556   0.215
6   0.403   0.237
7   0.481   0.149
8   0.666   0.091
9   0.437   0.211
10  0.666   0.091
11  0.243   0.267
12  0.245   0.057
13  0.343   0.099
14  0.639   0.161
15  0.657   0.198
16  0.36    0.37
17  0.593   0.042
18  0.719   0.103
19  0.359   0.188
20  0.339   0.241
21  0.282   0.257
22  0.748   0.232
23  0.714   0.346
24  0.483   0.312
25  0.478   0.437
26  0.525   0.369
27  0.751   0.489
28  0.532   0.472
29  0.473   0.376
30  0.725   0.445
31  0.446   0.459

K-Means

import numpy as np
import matplotlib.pyplot as plt
# Though the following import is not directly being used, it is required
# for 3D projection to work
from sklearn.cluster import KMeans
import pandas as pd
xigua = pd.read_csv('xigua.csv')estimator = KMeans(n_clusters=3,max_iter=500,)
#计算每个样本的聚类中心并预测聚类索引。
a1=xigua.valuesres = estimator.fit_predict(a1)
#每个点的标签
lable_pred = estimator.labels_
#每个点的聚类中心
centroids = estimator.cluster_centers_
#样本距其最近的聚类中心的平方距离之和。
inertia = estimator.inertia_for i in range(len(a1)):if int(lable_pred[i]) == 0:plt.scatter(a1[i][0], a1[i][1], color='red')if int(lable_pred[i]) == 1:plt.scatter(a1[i][0], a1[i][1], color='black')if int(lable_pred[i]) == 2:plt.scatter(a1[i][0], a1[i][1], color='yellow')
plt.show()

DBSCAN

import math
import numpy as npimport pandas as pd
import pylab as pl
xigua = pd.read_csv('xigua.csv')
dataset=[(i[0],i[1]) for i in xigua.values]
#计算欧几里得距离,a,b分别为两个元组
def dist(a, b):return math.sqrt(math.pow(a[0]-b[0], 2)+math.pow(a[1]-b[1], 2))
#算法模型
def DBSCAN(D, e, Minpts):#初始化核心对象集合T,聚类个数k,聚类集合C, 未访问集合P,T = set() k = 0 C = []P = set(D)for d in D:if len([ i for i in D if dist(d, i) <= e]) >= Minpts:T.add(d)#开始聚类#所有的核心的 有多个类while len(T):P_old = P#选取一个核心点o = list(T)[np.random.randint(0, len(T))]#把核心点从未选取中取出P = P - set(o)Q = []Q.append(o)while len(Q):q = Q[0]#核心点周围的点Nq = [i for i in D if dist(q, i) <= e]#核心点和周围的点都记录下来if len(Nq) >= Minpts:S = P & set(Nq)Q += (list(S))P = P - SQ.remove(q)k += 1Ck = list(P_old - P)T = T - set(Ck)C.append(Ck)return C
#画图
def draw(C):colValue = ['r', 'y', 'g', 'b', 'c', 'k', 'm']for i in range(len(C)):coo_X = []  #x坐标列表coo_Y = []  #y坐标列表for j in range(len(C[i])):coo_X.append(C[i][j][0])coo_Y.append(C[i][j][1])pl.scatter(coo_X, coo_Y, marker='o', color=colValue[i%len(colValue)], label=i)pl.legend(loc='upper right')pl.show()
C = DBSCAN(dataset, 0.11, 5)
draw(C)

用K-Means和DBSCAN算法对西瓜数据集4.0进行聚类分析相关推荐

  1. 机器学习《西瓜书》9.4解答——k-means算法:编程实现k均值算法,设置三组不同的k值、三组不同初始中心点,在西瓜数据集4.0上进行实验比较,并讨论什么样的初始中心有助于得到好结果。

    1.运行结果:(注:图中方块标注的点为随机选取的初始样本点) k=2时: 本次选取的2个初始向量为[[0.243, 0.267], [0.719, 0.103]] 共进行61轮 共耗时0.10s k= ...

  2. 周志华《机器学习》3.5答案-编程实现线性判别分析,并给出西瓜数据集3.0α上的结果

    #机器学习线性判别分析3.5题 import numpy as np import matplotlib.pyplot as plt data = [[0.697, 0.460, 1],[0.774, ...

  3. Udacity机器人软件工程师课程笔记(二十一) - 对点云进行集群可视化 - 聚类的分割 - K-means|K均值聚类, DBSCAN算法

    聚类的分割 1.K-均值聚类 (1)K-均值聚类介绍 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心 ...

  4. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_第十章:利用Python实现朴素贝叶斯模型

    免责声明:本文是通过网络收集并结合自身学习等途径合法获取,仅作为学习交流使用,其版权归出版社或者原创作者所有,并不对涉及的版权问题负责.若原创作者或者出版社认为侵权,请联系及时联系,我将立即删除文章, ...

  5. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_朴素贝叶斯(转载自Morgan)...

    什么是朴素贝叶斯 要搞懂朴素贝叶斯分类,首先需要了解什么是贝叶斯定理和特征条件独立假设,朴素贝叶斯算法就是基于这两个来实现的分类方法. 贝叶斯定理 贝叶斯定理通俗点讲就是求在事件 B 已经发生的前提下 ...

  6. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_朴素贝叶斯为什么被称为“朴素”?...

    一.基本理解 1.朴素贝叶斯分类器: 例:如果有一种水果具有红.椭圆形.直径约3英寸等特征,则该水果可以被判定为是苹果. 尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为这些属 ...

  7. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_机器学习之朴素贝叶斯

    1.贝叶斯原理 朴素贝叶斯分类(Naive Bayesian,NB)源于贝叶斯理论,是一类基于概率的分类器,其基本思想:假设样本属性之间相互独立,对于给定的待分类项,求解在此项出现的情况下其他各个类别 ...

  8. 《机器学习(周志华)》 西瓜数据集3.0

    书上的一个常用数据集 编号,色泽,根蒂,敲声,纹理,脐部,触感,密度,含糖率,好瓜 1,青绿,蜷缩,浊响,清晰,凹陷,硬滑,0.697,0.46,是 2,乌黑,蜷缩,沉闷,清晰,凹陷,硬滑,0.774 ...

  9. bp算法和nlp算法_西瓜书5.5 编程实现BP神经网络——标准BP算法、累积BP算法

    这里照着书上的公式,实现了一下标准BP算法,和累积BP算法,BP是error Back Propagation的意思,误差逆传播.BP网络通常是指用BP算法训练的多层前馈神经网络.代码是照着书本公式自 ...

  10. 机器学习算法笔记--------建立西瓜数据集

    西瓜书里面常用的三个数据集,西瓜数据集2.0,3.0,4.0整理如下,注意中文容易出现乱码. 西瓜数据集2.0 西瓜数据集3.0 西瓜数据集4.0 import pandas as pddef cre ...

最新文章

  1. 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系
  2. 搞定一个C++项目最快需要多久?
  3. 面试官再问我如何保证 RocketMQ 不丢失消息,这回我笑了!
  4. 世界上最完美的公式 ----欧拉公式
  5. 最完美的xslt数值函数与字符串函数(转)
  6. winform中UI设计分辨率问题
  7. 技术QA:如何安装并启用BITS和WebDAV?
  8. 复杂网络研究:让世界变得简单
  9. 统计学习方法笔记(李航)———第二章(感知机)
  10. 花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)
  11. 以WinGrub 引导安装Fedora 4.0 为例,详述用WinGrub来引导Linux的安装
  12. 笔记下UltraEdit的一些常用使用技巧
  13. C++静态成员总结(转)
  14. 寄存器(CPU工作原理)07 - 零基础入门学习汇编语言12
  15. [Advance] How to debug a program (下):示例
  16. HTML实现页面注册
  17. 关联本地项目和svn_SVN服务器项目如何与本地项目同步,关联?
  18. 基于Python+Django的微博评论热点舆情分析可视化系统的设计与实现-计算机毕业设计选题题目推荐
  19. 物联网行业系列深度报告 附下载
  20. python写微信公众号文章_Python爬取微信公众号文章

热门文章

  1. 做了一个电驴 p2p资源搜索小软件
  2. linux阿帕奇服务器配置方案,阿帕奇服务器_服务器配置方案_linux配置apache服务器...
  3. axis调用webservice服务
  4. struts框架——ActionForm+DynaActionForm
  5. IIC,RS485,RS232各种协议手册更新中
  6. 2009国内免费网盘横向评测
  7. 计算机管理软件禁止玩游戏,电脑有没有禁止玩网络游戏,但可以上网的软件?...
  8. fastjason 0day 漏洞修复
  9. java自行车e2_摩托罗拉E2 JAVA应用程序安装指南
  10. windows服务封装程序srvany和nssm的区别