在监督机器学习中,训练数据已被标记,这意味着每个数据实例都有其对应的输出。 在无监督机器学习中,数据没有标签。 聚类是一个无监督的学习问题,任务是探索数据以找到每个数据实例的最佳标签。

本文讨论了如何使用遗传算法对数据进行聚类,从随机聚类开始一直运行,直到找到最佳聚类。 我们将首先简要修改K-means聚类算法以指出其弱点,然后由遗传算法解决。

略述
根据训练数据是否带有标签,机器学习有两种类型:

监督机器学习

无监督机器学习

在监督学习问题中,模型使用一些描述数据的信息。 此信息是数据实例的输出,因此模型知道(并获悉)它收到的每个输入实例的预期输出是什么。 这有助于模型评估其性能并学习减少误差(或提高准确性)的方法。

对于分类问题,输出是每个样本的预期类别。对于RGB颜色分类器,输入和输出数据可以如下所示:

Input 1 : 255, 0, 0

Output 1 : Red

Input 2 : 0, 255, 0

Output 2 : Green

假设只有两类:红色和绿色。 当模型知道预期的输出时,它将在训练阶段进行自我调整(即其参数)以返回正确的输出。 对于新的测试样本,模型将测量其与之前在两个类别中看到的样本的相似性。

在无监督的学习问题中,模型不知道数据的正确输出(输入)。聚类是一个无监督的学习问题,任务是查找每个数据实例的结果(即标签)。

聚类算法的输入仅是如下输入:

Input 1 : 255, 0, 0

Input 2 : 0, 255, 0

聚类后,模型应预测每个数据实例的标签:

Output 1: Red

Output 2: Green

存在一些聚类算法,例如K-means算法(最受欢迎);分支和绑定;和最大似然估计。

K均值聚类
K-means算法是一种流行的聚类算法。尽管非常简单,但本节将快速回顾其工作原理,因为了解它对于使用遗传算法进行聚类至关重要。

K-means算法的输入为:

数据样本

聚类数K

该算法的输出是一组K个聚类,每个聚类由一组数据样本组成。一个样本在两个或两个以上聚类之间可以重叠,也可以不重叠;这取决于要解决的问题的性质。

下图显示了一个包含3个人工聚类的示例,以显示K均值算法的工作原理。 请注意,“人工”表示数据不是真实的。 对于此示例,很明显,K的最佳值(最佳聚类数)为3。对于实际问题,不同的K值会产生不同的结果,并且选择最可行的结果。 每个样本都有反映其聚类的颜色。

K均值通过为K个聚类中的每个聚类选择一个初始中心来工作。 请注意,K均值算法对那些初始中心非常敏感,并且可以通过更改初始中心来得出不同的结果。 在下图中,选定的中心是带有黑色边框的中心。

下一步是计算每个样本与3个中心之间的距离,并将每个样本分配给最近的中心的聚类。 目的是使所有样本与其中心之间的总距离最小化。 该距离可以是根据下一个公式计算的欧几里得距离:

下图显示了如何对样本进行聚类。分配给不正确聚类的样本的边缘与被错误放入内部的聚类具有相同的颜色。

基于当前聚类,K均值算法根据下面的等式取每个群集内所有样本的平均值来更新其K聚类中心:

如果样本到多个聚类的距离相等,则可以将其分配给这些聚类中的任何一个。

遗传算法聚类 | 人工聚类数据 | 欧几里得距离 | 聚类中心距离 | 拟合函数 | Python遗传算法代码

本文完整代码

详情参阅 - 亚图跨际

聚类:Python遗传算法相关推荐

  1. Python 遗传算法实现字符串

    Python 遗传算法实现字符串 流程 1. 初始化 2. 适应度函数 3. 选择 4. 交叉 5. 变异 适应度函数计算方法 计算个体间的差:分别计算每个元素与目标元素的差取平方和 种群:计算总体均 ...

  2. Python遗传算法求一元函数最大值

    Python遗传算法求一元函数最大值 前言 代码 后记 参考文献 前言 最近接触遗传算法,参考了众多例子,有些又不尽然对,所以自己边理解边修改,然后写出了下面这堆传说中的屎山... PS1:遗传算法原 ...

  3. python遗传算法_带有Python的AI –遗传算法

    python遗传算法 带有Python的AI –遗传算法 (AI with Python – Genetic Algorithms) This chapter discusses Genetic Al ...

  4. 谱聚类Python代码详解

    谱聚类算法步骤 整体来说,谱聚类算法要做的就是先求出相似性矩阵,然后对该矩阵归一化运算,之后求前个特征向量,最后运用K-means算法分类. 实际上,谱聚类要做的事情其实就是将高维度的数据,以特征向量 ...

  5. 层次聚类python,scipy(dendrogram, linkage,fcluster函数)

    目录 1. 案例分析 2. 常用参数的设置 参考链接 转自:https://blog.csdn.net/weixin_42887138/article/details/117708688 1. 案例分 ...

  6. 这个图聚类Python工具火了:可对社群结构进行可视化、检测 | 开源

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 子豪 发自 凹非寺 量子位 报道 | 公众号 QbitAI 最近,又 ...

  7. 聚类 python 代码_不足 20 行 Python 代码,高效实现 k-means 均值聚类算法

    下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 不足 20 行 Python 代码,高效实现 k-means 均值聚类算法-1.jpg (143.81 KB, ...

  8. python遗传算法工具箱的使用_遗传算法的python实现,非常值得看的一篇文章

    遗传算法是一种智能优化算法,通常用于求解复杂的数学问题.相比于传统方法,遗传算法摒弃了盲目的穷举或完全随机的求解策略,借鉴了自然界优胜劣汰.自然进化的思想,快速逼近最优解.上文对遗传算法的基本内容进行 ...

  9. 层次聚类python实现_Python机器学习——Agglomerative层次聚类

    层次聚类(hierarchical clustering)可在不同层次上对数据集进行划分,形成树状的聚类结构.AggregativeClustering是一种常用的层次聚类算法. 其原理是:最初将每个 ...

  10. 一个易用、易部署的Python遗传算法库

    简介: # [scikit-opt](https://github.com/guofei9987/scikit-opt) [![PyPI](https://img.shields.io/pypi/v/ ...

最新文章

  1. Android应用源码安卓短信拦截木马项目源码
  2. WinForm------GridControl单元格内容修改外表样式
  3. HelloWorld新手常见问题
  4. SWEET HOME!田志喜研究员:给中国大豆“嵌入”高产基因
  5. BZOJ 1922: [Sdoi2010]大陆争霸
  6. 20180908 2018-2019-2 《密码与安全新技术专题》第3周作业
  7. 华为宣布智能计算战略,全栈全场景,当企业智能化转型加速器
  8. 恒生Pb系统与讯投PB系统、PTrade交易系统比较
  9. VirtualBox虚拟机安装教程
  10. 一文搞懂CAN和CAN FD总线协议
  11. win10笔记本 CMD命令直接开启热点(WIFI)
  12. Linux检测ip变动
  13. android个人开发者广告平台
  14. HBM (High Bandwidth Memory)
  15. 浅谈最短路径O(n^3)万(蒟)能(蒻)算法——————Floyd《最短路径·O(n^3)Floyd篇》
  16. 为了搞清楚类加载,竟然手撸JVM!
  17. java整型_java中长整型定义
  18. 古风系统仙侠文推荐_言情古风仙侠小说推荐——查看: 言情小说排行榜(1)
  19. JavaWeb实现短信验证
  20. vue 报错:Elements in iteration expect to have ‘v-bind:key‘ directives

热门文章

  1. linux 防火墙添加6309端口,关于在linux下部署垂直集群的问题
  2. 使用bind()和connect()函数
  3. 临时表空间和数据表空间
  4. Python新闻网站项目-3.Gerapy爬虫分布式部署
  5. 基于情感词典的网络文本情感倾向分类模型
  6. 二级c语言程序设计教程微盘,二级C语言教程.pdf
  7. 用electron实现播放flash小游戏
  8. UnityWebPlayer使用(1) 单机环境下在WinForm中使用Unity3d
  9. SQL必知必会习题练习
  10. 小甲鱼Python第二十八讲(文件)