目录

聚类分析

聚类的概念

如何衡量两笔数据的相似性

二元变量的相似性的衡量方法

混合类别型变量与数值型变量的的相似性衡量

距离的计算

明天我们在接下来解决剩下两个问题


我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主

目前进度:第四部分【机器学习算法】

聚类分析

聚类的概念

聚类是一个非监督式的学习,只要有输入变量就可以,目标的获得就是通过输入变量把相似的集中在一群。没有事先分好类的数据来监督。简单来讲就是没有目标变量

它就是通过将相似的数据聚合到一起的处理

同一群的成员的相似性要越高越好,不同集群间的数据相异性要越高越好。

案例:

这是之前举了一个例子,如果你要对银行中的数据进行顾客分群的处理,该如何做。

这个数据是通过年龄和收入对客户进行聚类的动作,一个资料点代表一个客户,我们可以发现比较密集集中的就会形成一个客户群,我们已经分别标出了

我们可以通过这些群对应输入字段的平均值来了解该群体的特点。

比如第一个群体,它的年龄属于中上游,收入最低

第二个群体年级相对较高,收入较高

第三个群体年级相对较小,收入也是偏高

将输入字段的相似记录合并起来。

案例2

聚类分析虽然没有目标变量,但是你的思想,内心要有目标。要求根据分析者的目标来进行分群。比如现在我希望你对下面的弹珠进行聚类分析:

它的分类方法其实很多,但是我们只能选择一种分类规则来进行分类,所以我们会根据心里的想法对它进行分类。

比如我们根据颜色进行分类

那么我们就可以吧颜色分为5个群。Color就是我们心中的目标。

再比如我们选择根据大小对它进行分类

我们可能就分为3群,大弹珠,中弹珠,小弹珠。

再比如,我们可以根据弹珠的透明度来分。

就可以分为2群

再比如,我们根据弹珠的花纹复杂程度来划分,就可以分为3群

我们就可以把它们分为3种,一种无花纹,一种不规则花纹,一种规则花纹。

所以聚类分析虽然是无监督模型,但是你心中要有模型。使用者需要什么结果,他就会产生什么样的变量。

聚类分析的重点有3:

1.我们如何用数字来表示成员间的相似性(或相异性)?

因为我们需要将他们根据这个特点来进行聚类

2.如何根据相似性将类似的成员分在同一群(算法的选择)

3.怎么去描述各群的特征。

实现我们解决第一个问题

如何衡量两笔数据的相似性

这里有n笔记录,p个字段。这个一般就是我们的数据。接下来我们需要计算它们之间彼此的距离,这里使用的是pairwise的距离,下表是两两一对的距离矩阵。

自己和自己的距离一定是0,说明相似性为百分百,距离越小,相似性越大。所以我们只需要看上三角或者下三角就可以。

距离矩阵的每个距离我们要如何计算?X下面用3种方式进行说明。

二元变量的相似性的衡量方法

这里用的是二变量的两个比较常用的公式,这种二元变量通常使用在推荐系统,有还是没有,有代表顾客对这个商品感兴趣,没有代表顾客对这个商品不感兴趣。这些都是属于二元变量。

在顾客中推荐购买这两种商品的相似度的时候经常用这两个公式。

它们是如何去计算的呢,首先它们需要产生上面的交叉表。Contingency table。需要两个对象i和j我们要看i和j的相似度。

q是代表两个字段都是1的个数,r+s代表一个是1,一个是0的个数(就是二者不相同的个数),tdaib都是0的个数

总共有几笔记录数就是q+r+s+t

我们第一个方法simple Matching coefficient简单比对技术,就是不相同的个数除以总共有几笔数据

第二种方法jaccard和simple Matching coefficient的区别就在于分母,它把分母中t(二者都是0)的情况除去了。分母变为q+r+s

一般第二种方法使用在电商产品,我和你都没购买这个商品,那么能说明这两个商品相似吗,当然不行,可能我们都不知道这个商品。说不定我们知道了就会买

举个案例:

我们现在有3个病人,我们有病人的病症以及做的一些检验。后面的数据代表是否有这个病症。Test中的P代表它是否有这种阳性反应。写N代表阴性反应。

比如我们选择要计算jack和mary的的距离(相异性),Jack的值有可能Y有可能N,mary也有可能N有可能Y

我们画出他们的交叉表,第一个病症都是Y,那么q就加一,两个都是N,那么s加一…….以此类推。

总共有6个字段。不一致的部分是有一个test3.就不一致的部分一共是1,这里的分母采用的是除去都是N的情况,因为都是N可能他们都没去做测试,所以都是N,只是我们不了解具体情况,也有可能检测了就是阳性。我们也不懂。所以我们就把NN的情况排除在外。总数就是2+0+1

1/3来作为jack和mary的距离。其实蛮简单的。

那我们再举一个例子。Mary和jim的例子,它有Y和N,我们发现都是Y的有1个,q=1,两个不一致的有3个,都是N的有2个。

所以他的距离就是3/4.

所以我们认为jim和mary最不可能得到一样的疾病而jack和mary最可能得一样的疾病。

混合类别型变量与数值型变量的的相似性衡量

那如果我们字段里不仅仅只有二元变量,还有身高体重,温度这种数据,也就是混合类别的数据,或者完全都是数值型的字段,身高体重,温度,那么我们需要保证二元变量和身高体重的距离是相同权重的。

数值型的数据有一个好处,他有固定的标尺,数据和数据之间的距离是固定的,比如一公斤和两公斤,两公斤和三公斤的距离就是一样的。

顺序型的数据就不会一样,比如我们对某一幅画的喜欢程度,我们用1= detest(厌恶)2=dislike(不喜欢)3=indifferent(还好)4=like(喜欢)5=admire(很喜欢)。这里你就会发现数字和数字之间的距离是不同的,比如厌恶和不喜欢之间的距离和不喜欢和还好之间的距离其实因人而异。但是距离肯定不一样。

类别型的变量。眼睛的颜色,也可以编码为数字,但是注意这里的数字只是用来代替类别,不能起到数字的作用。还是类别

二元变量就是类别变量的特殊,比如性别。也可以编码为0,1,注意还是看你的应用。

距离的计算

Manhattan distance/City-Block Distance

曼哈顿距离,或者阶梯距离

他们的距离其实就是第一个维度的距离加上第二个维度的距离然后标准化,一般用极值标准化,直角距离

举个案例:

这里有两个人,第一个人年龄20岁,第二个人年龄30岁,第一个顾客收入30000第二个顾客收入50000.

他们之间的距离就是(年龄的差,除以年龄最大值减去最小值)加上(收入的差除以收入最大值减去最小值),也就是1/5+1/5=0.4

-Eucliden Distance

欧式距离:

第一个维度距离的平方加上第二个维度距离的平方…..

还是举个例子

说个年龄,用年龄的差除以年龄最大值减去最小值,再把结果平方,加上收入的计算平方,最后把总值开根号。

现在了解距离的计算方法了,我们来看看一个混合数据的计算:

我们还是这两个客户,年龄是数值字段,occupation是职业(二元变量),gender是性别也二元变量,education level教育等级是分类变量,我们对他继续编码,1代表high school 2代表undergraduate 3代表master

我们分别计算各个字段(维度)的距离。

第一个数值字段采用曼哈顿距离,第二个二元变量距离使用相同为1,不同为0的处理方法,分类变量用曼哈顿距离。

最终我们得到二个客户的平均距离,平均距离的公式就是距离之和除以4.(因为都标准化了,所以可以直接除以4),这里得到的是平均曼哈顿距离。

我们用平均距离还有一个好处,我们可以用它来对空值进行填补。或者直接进行计算

这个案例就是没有职业,我们就可以对职业进行忽略,计算出结果,我们求平均距离还是会在0-1之间,所以对结果影响不是很大。然后我们在回头对它进行填补也是可以的。

明天我们在接下来解决剩下两个问题

2.如何根据相似性将类似的成员分在同一群(算法的选择)

3.怎么去描述各群的特征。

明天是我们学习聚类算法的重点

聚类算法的分类

-Exclusive vs.Non-Exclusive(Overlapping)的聚类方法分为:层次聚类,划分聚类、模糊聚类、密度聚类

层次聚类算法:单一聚类法、完全链结法、平均链结法、中心法、word’s法

划分聚类法:K-means法、Kmedoids法、SOM法、两步法

模糊聚类:EM算法(用的比较少)

密度聚类:密度聚类算法(DBSCAN)

群数的判断

R-Squared

【机器学习算法】聚类分析-1 聚类是什么,我们如何确定类别间的相似性或者相异性相关推荐

  1. 机器学习算法--无监督学习--聚类

    机器学习算法–无监督学习–聚类 一.原型聚类 特点:需要预先指定簇的个数K 1.K-Means Python实现K-Means算法: Python实现K-Means算法 原理:从数据集中选择K个样本作 ...

  2. 机器学习算法总结之聚类:K-means

    写在前面 在前面学习的ML算法中,基本都是有监督学习类型,即存在样本标签.然而在机器学习的任务中,还存在另外一种训练样本的标签是未知的,即"无监督学习".此类任务中研究最多.应用最 ...

  3. 机器学习算法学习---处理聚类问题常用算法(三)

    BIRCH的全称是利用层次方法的平衡迭代规约和聚类(Balanced Iterative Reducing and Clustering Using Hierarchies) BIRCH算法利用了一个 ...

  4. ​【机器学习】数据科学中 17 种相似性和相异性度量(上)

    本文解释了计算距离的各种方法,并展示了它们在我们日常生活中的实例.限于篇幅,便于阅读,将本文分为上下两篇,希望对你有所帮助. "There is no Royal Road to Geome ...

  5. 机器学习算法之 K 均值聚类

    机器学习算法之 K 均值聚类 本文我们来学习一下另一种经常听到的机器学习算法-- K 均值聚类. 这个名字确实跟"K 近邻"有些相像,但是要明确的是,"K 近邻" ...

  6. 机器算法有哪几种 python_8种顶级Python机器学习算法-你必须学习

    今天,我们将更深入地学习和实现8个顶级Python机器学习算法. 让我们开始Python编程中的机器学习算法之旅. 8 Python机器学习算法 - 你必须学习 以下是Python机器学习的算法: 1 ...

  7. 解密Kernel:为什么适用任何机器学习算法?

    作者 | Marin Vlastelica Pogančić 译者 | 陆离 编辑 | 一一 出品 | AI科技大本营(ID:rgznai100) 机器学习中Kernel的秘密(一) 本文探讨的不是关 ...

  8. 机器学习算法—KNN算法原理

    机器学习算法-KNN算法原理 概述: KNN算法一般也会经常被称为K邻近算法,其核心思想是根据训练集中的样本分类计算测试集中样本与训练集中所有样本的距离,根据所设定的K值选取前K个测试样本与训练样本最 ...

  9. 【机器学习入门】深入浅出聚类算法!如何对王者英雄聚类分析,探索英雄之间的秘密...

    Datawhale 作者:小一,Datawhale优秀学习者 寄语:首先,对聚类算法进行了介绍:然后,解释了EM算法E步.M步的原理:最后,对sklearn参数进行了详解,并对王者荣耀英雄利用EM算法 ...

最新文章

  1. JavaScript - this详解 (三)
  2. VC++ 连接SQL Server数据库(远程+本地)
  3. Windows消息机制学习笔记(三)—— 消息的接收与分发
  4. Crystal 语法概述[转]
  5. python语言打印菱形_Python 实现打印单词的菱形字符图案
  6. oracle打patch,Oracle初学者入门指南-How to get Oracle Patch?
  7. linux 笔记本键盘灯驱动程序,安装和使用CKB Next在Linux上更改Corsair键盘背光设置...
  8. 信息学奥赛一本通(2064:【例2.1】交换值)
  9. 解决pytorch二分类任务交叉熵损失函数CrossEntropyLoss报错:IndexError: Target 1 is out of bounds.
  10. 终于来了!iOS 13大更新发布,新功能均与新冠疫情有关
  11. Html前端基础(select下拉选标签、table表格标签)
  12. mysql 最基础的日常操作
  13. 设计牛人——设计入门答疑番外篇有感
  14. 在SQL Server中读取事务日志-从黑客到解决方案
  15. Maven安装与配置教程
  16. 【Multisim仿真+报告+演示视频】数电课设五人表决器Multisim仿真设计【全套资料】资源编号:YM5-V1.0.1-五人表决器
  17. 文件同步工具BT Sync介绍和使用说明
  18. C语言——打鱼晒网问题
  19. h5页面调用百度地图获取当前位置并在地图上标注出来
  20. 树莓派python控制两个舵机_利用树莓派,光敏电阻和小型舵机实现自动获取 《最终幻想 X HD重制版》 连续避雷200次奖杯...

热门文章

  1. 荟味齐鲁鲁菜网站/美食网站/菜谱网站
  2. DOCTYPE声明方式
  3. Uber Go 语言编程规范
  4. 端午热:原来最爱林志玲的不是他
  5. C语言餐饮管理系统(链表实验练习)
  6. Oracle数据库:创建、修改、删除、使用同义词synonym和索引index
  7. php html 网页发帖框
  8. Python挺酷的 | 识别蓝牙MIDI(基于ESP32开发板)
  9. ArcGIS二次开发基础教程:开发环境配置教程(ArcEngine10.4+VS2019)
  10. 约数之和【质因数分解+等比数列求和】