说到聚类,应先理解聚类和分类的区别

聚类和分类最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来。

K-Means

聚类算法有很多种(几十种),K-Means是聚类算法中的最常用的一种,算法最大的特点是简单,好理解,运算速度快,但是只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几类。

K-means可以自己写也可以调用库来实现

调用库的实现方式为:

# 使用sklearn实现
from sklearn.cluster import KMeans      #导入kmeans库model = KMeans(n_clusters=16, n_init=100, n_jobs=-1)
model.fit(data)                         #用数据拟合分类器模型
centroids = model.cluster_centers_
C = model.predict(data)                 #输出输入数据的预测结果

自己构建的方式为:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pddef find_closest_centroids(X, centroids):m = X.shape[0]k = centroids.shape[0]idx = np.zeros(m)              # idx[i]为距离样本i最近的集聚中心的索引for i in range(m):min_dist = 1000000         #每计算完一个样本点后需要将最短距重新初始化  for j in range(k):dist = np.sum((X[i,:] - centroids[j,:]) ** 2)  #代价函数if dist < min_dist:min_dist = distidx[i] = jreturn idxdef compute_centroids(X, idx, k):           #k为聚类中心个数m,n = X.shape                          centroids = np.zeros((k, n))            #聚类中心为(k,n)for i in range(k):indices = np.where(idx == i)        #为i簇的各样本点的索引centroids[i,:] = (np.sum(X[indices,:], axis=1) / len(indices[0])).ravel()  #len(indices[0])为样本点的数量,axis=1为按列相加    return centroiddef init_centroids(X, k):m, n = X.shapecentroids = np.zeros((k, n))idx = np.random.randint(0, m, k)for i in range(k):centroids[i,:] = X[idx[i],:]  #随机选择训练示例作为聚类中心return centroidsdef run_k_means(X, initial_centroids, max_iters):m, n = X.shapek = initial_centroids.shape[0]idx = np.zeros(m)centroids = initial_centroidsfor i in range(max_iters):idx = find_closest_centroids(X, centroids)centroids = compute_centroids(X, idx, k)return idx, centroids

主要分为以下几个模块:

需要加的模块就是,前面加上读取excel的模块,后面加上画图可视化的模块

2021.01.08

k means聚类算法_K-Means 聚类算法 20210108相关推荐

  1. k近邻算法_K近邻(knn)算法是如何完成分类的?

    摘要:K近邻算法是机器学习中的一个非常基础的算法.本文通过自生成数据,通过绘图的方式演示KNN算法的思路,让你不看数学公式就看了解什么是KNN算法. 关键词:KNN算法 1 生成一个二分类的数据集 本 ...

  2. k中心点聚类算法伪代码_聚类算法之——K-Means、Canopy、Mini Batch K-Means

    K-Means||算法 K-Means||算法是为了解决K-Means++算法缺点而产生的一种算法: 主要思路是改变每次遍历时候的取样规则,并非按照K-Means++算法每次遍历只获取一个样本,而是每 ...

  3. k均值聚类算法优缺点_聚类算法之——K-Means算法

    聚类算法属于无监督学习,它将相似的对象归到同一个簇中.K-Means算法是聚类算法中最常用到算法: 1. 预备知识点 距离计算 闵可夫斯基距离 点 之间的闵可夫斯基距离为 欧式距离 点 之间的欧氏距离 ...

  4. 基于K均值算法的鸢尾花聚类实验(Sklearn实现)

    实验代码 ##### 相关库导入部分 ##### from sklearn.datasets import load_iris import pandas as pd from sklearn.pre ...

  5. R实现K均值算法,层次聚类算法与DBSCAN算法

    1.聚类的基本概念 聚类分析(cluster analysis)仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组.其目标是,组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不 ...

  6. 【算法】K-Means聚类算法(k-平均或k-均值)

    1.聚类算法和分类算法的区别 a)分类 分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类. 举例: 假如你有一堆 ...

  7. dbscan和谱聚类_R 无监督聚类算法(1)K-means和层次聚类

    首先我们要解决几个问题 聚类算法主要包括哪些算法? 主要包括:K-means.DBSCAN.Density Peaks聚类(局部密度聚类).层次聚类.谱聚类. 什么是无监督学习? • 无监督学习也是相 ...

  8. 讨论k值以及初始聚类中心对聚类结果的影响_K均值聚类需要标准化数据吗

    摘要:进入二十一世纪以来,科学技术的不断发展,使得数据挖掘技术得到了学者越来越多的关注.数据挖掘是指从数据库中发现隐含在大量数据中的新颖的.潜在的有用信息和规则的过程,是一种处理数据库数据的知识发现. ...

  9. 聚类算法:K-means聚类与系统(层次)聚类SPSS操作

    笔记整理来自清风老师的数学建模课程: https://www.bilibili.com/video/BV1gJ411k7X4?from=search&seid=1537010279875630 ...

  10. python机器学习手写算法系列——kmeans聚类

    从机器学习到kmeans 聚类是一种非监督学习,他和监督学习里的分类有相似之处,两者都是把样本分布到不同的组里去.区别在于,分类分析是有标签的,聚类是没有标签的.或者说,分类是有y的,聚类是没有y的, ...

最新文章

  1. 南京师范大学计算机技术调剂,南京师范大学2017年研究生调剂信息
  2. 基于消息的分布式架构设计
  3. 8.0强行转换后变成了7_【建筑通】钻孔灌注桩后注浆施工工艺介绍
  4. python 实现文本自动翻译功能
  5. java beans_java beans的概念及应用?
  6. python打印楼梯和笑脸_Python实现打印楼梯形状图形
  7. 2019春第六周编程总结
  8. LeetCode 326. 3的幂
  9. linux 星号 通配符,如何在bash中转义通配符/星号字符?
  10. 因为贫贱,所以分手,我错了吗?
  11. 【java笔记】Collections集合工具类
  12. 和为S的两个数字(python)
  13. SVN 分支与主干的合并
  14. SIP协议详解(中文)-5
  15. 信息系统安全等级保护 备案表
  16. win7系统如何开启蓝牙
  17. 达观电网故障知识图谱,三大功能全面提升电网故障处置效率
  18. 2022-2028全球ERV空气交换器行业调研及趋势分析报告
  19. HTML点击图片出现边框,简单的jQuery实现点击图片出现弹框【原创】
  20. 彻底删除VM虚拟机手把手详细教学

热门文章

  1. 10-Mybatis 多表查询之多对多
  2. c++相对路径怎么判断_不可思议!C罗无球跑位分析
  3. 数据中台 画像标签_数据中台实战:如何通过标签平台圈出产品高价值用户?...
  4. android 结束if循环_几款Android反编译器对循环结构的还原能力测试记录
  5. python画图颜色表示大小变化_Python matplotlib减少色条标签的大小
  6. 祥云,灯笼,剪纸……春节海报,点缀必备PSD素材
  7. 装饰画必备素材——装饰设计师,填充不用愁!
  8. 别再瞎找了,设计师日常工作需要的软件都在这里了
  9. linux下的汇编,linux下的汇编分析
  10. 云消防大数据_消防云大数据app