vlambda博客
学习文章列表

Fx数学建模|K-means聚类算法(第一部分)




     Hello,大家好呀,Fx又和大家见面啦! 

     今天开始,就让Fx带领大家一起系统性地学习下参加数学建模竞赛的必备知识点-“K-means”聚类算法今天的推文是学习内容的第一部分--“了解分类和聚类的区别所在”

(友情提示:如果读者对聚类已经很了解了,同时有Python编程的基础的话,建议去动手编程实践K-means聚类算法吧!后续的推文中我们也会给出K-means聚类算法的实践案例!)



1




聚类和分类





在熟练掌握聚类前,建议先区别分类和聚类。1.1和1.2是分类、聚类的两个简单小例子。


1.1




分类简单小例子





分类的定义:依据数据对象已知的属性将数据对象进行归类。

不懂什么是属性和数据对象?

点击查看

什么是属性和数据对象?


“数据对象” 、“属性”是数据分析中的一个概念。

我们拿到的数据通常是有多行、多列的数据表,下面这个表是很简单的一个数据表。

简单点,你就理解成“数据对象”就是这个数据表中(非首行)的一行就行啦!

对于,首行,你就理解成数据对象的一个“模板”就行了!

Fx数学建模|K-means聚类算法(第一部分)

同样地,简单点理解,“属性”就理解成数据表中的一列。

Fx数学建模|K-means聚类算法(第一部分)

总之,你有可能听到别人是这样陈述的:(“小王”,59,59,“Y”)是一个数据对象,这个数据对象的“学生姓名”属性是“小王”,“平时成绩”属性是59。

以上就是对“数据对象”和“属性”的简单阐述。

Fx数学建模|K-means聚类算法(第一部分)

接下来,一起来看看下面这个例子吧!

>假如你是个老师,教务部告诉你:成绩表上小王、小红、小张同学还没有被判断是否挂科,见表1-1。你的工作是:对这三位学生进行挂科与否的分类。在此时“挂科”与“不会挂科”就是两个类别。

Fx数学建模|K-means聚类算法(第一部分)

教务部告诉你,目前的挂科与否的分类规则是:

①如果学生的总成绩低于60分,则被分类为“挂科”这一类别。

②如果学生的总成绩大于等于60分,则被分类为“没挂科”这一类别。

(注:总成绩 = 0.5 * 平时成绩 + 0.5 * 期末考试成绩)

根据这个分类规则,你就可以对这三位学生进行分类啦,分类结果如表1-2所示。

Fx数学建模|K-means聚类算法(第一部分)

>分类具体过程如下:

(如果读者已经读懂上面的内容,就不需要看此部分内容啦)

点击查看

分类具体过程


对于小王同学:

总成绩 = 0.5 * 59 + 0.5 * 59 < 60  ;被分类为“挂科”

对于小红同学:

总成绩 = 0.5 * 61 + 0.5 * 63 > 60  ;被分类为“没挂科”

对于小张同学:

总成绩 = 0.5 * 84 + 0.5 * 86 > 60  ;被分类为“没挂科”



Fx数学建模|K-means聚类算法(第一部分)


1.2




聚类简单小例子





聚类的目的?其实是将数据对象进行归类。看看下面这个例子就知道啦!

假设你是你们班的班长,你的老师已经把学生的成绩表交给你,然后对你说:根据同学们的成绩把他们分成不同的学习小组吧!怎么分?分成什么样,你自己决定吧!

而这就是聚类啦!你老师没把“归类”的规则告诉你;你自己也不知道要分成多少类!

于是你就主观地决定分成两组(A组-学霸组;B组-学民组)

Fx数学建模|K-means聚类算法(第一部分)

接着,看到这三位同学的成绩,你一定很想把小王、小红归为B组, 小张归为A组,对吧?你希望得到的聚类结果如表1-4所示,对吧?(在此不阐述对这三位同学进行聚类的具体方法;如果使用k-means聚类方法,得到的也是如表1-4所示的结果)

Fx数学建模|K-means聚类算法(第一部分)


1.3




总结





聚类和分类不同在于:

①分类时知道怎么分,知道具体的分类规则(已经存在了分类规则),也知道被分类的数据对象可能会被分为几个类别。

②聚类时不知道被聚类的数据对象可能会被分为几个类别;聚类的规则需要自己设定。


Fx数学建模|K-means聚类算法(第一部分)



今天的学习内容到这里就结束啦!

您看懂了吗?

看懂的可以点个赞或在看~

没看懂的可以在下方留言区留下您的“吐槽”



Fx数学建模|K-means聚类算法(第一部分)

获取更多建模资讯