如何用聚类的思想做预测

1 前言

这段时间不断收到有人私信问没有标签的数据集怎么做预测,因此在这篇文章中笔者就来简单说说处理这类问题方法。在正式解决这个问题我们先来探究一下他们为什么会这么问呢?仔细想想问题应该是出在“没有标签”上,试想一下如果是一个有标签数据集,那么肯定不会有人这么问。因此,这个问题其实就变成了无监督学习如何做预测。同时,这类问题的应用场景通常是需要对不含标签的数据进行划分,例如需要划分成多个等级;然后再将新输入的样本划分到对应的簇(等级)中。所有,大多数时候我们需要解决的都是如何用聚类来做预测。

在前两天,一位同学私信我并描述了如下问题:现有无标签的训练集和测试集,要求将训练集划分成五个等级,然后再对测试集进行同样的划分。他首先说到,由于没有标签因此应该通过聚类来进行解决,但他的问题在于既然是这样那么还需要训练集干什么,直接对测试集进行聚类不就行了吗?

之所以这位同学会这么想,那是因为在无监督学习中他并不知道如何将训练集和测试集关联起来。直白点说就是,他可能还没听过用聚类做预测这回事儿。

2 用聚类做预测

下面,我们就以Kmeans算法为例,介绍一下如何通过聚类来做预测。其整体思路为:首先在训练集上进行普通的聚类过程;然后计算测试集上每个样本到簇中心的距离来完成预测。

通常来说,训练集的数量都会多于或远多于测试集的数量,因此从训练集中更容易发现潜在的簇结构。所以首先我们要做的就是对训练集进行聚类得到各个簇的簇中心;然后再依次遍历测试集中的每个样本点,分别计算其到各个 簇中心的距离,选择距离最近的簇中心对应的簇作为该样本点所属的簇类别。通过这样的方式,我们便可以完成对新样本的预测任务。

与此同时,对于有标签的数据集来说我们同样可以用聚类来进行预测。由于存在标签,因此在这种场景下就有两方法来完成这一任务。第一种就是上面我们说到的方法:先聚类得到簇中心;然后计算新样本到个簇中心的距离来完成预测任务。第二方法则为:直接通过已有的标签信息计算得到各个簇的簇中心;然后再计算新样本到个簇中心的距离来完成预测任务。

3 总结

在这篇文章中,笔者首先介绍了如何通过聚类算法来对新样本进行预测,并介绍了其中的原理;接着,笔者还介绍了对于有标签的数据同样可以用聚类的方法来对新样本进行预测。本次内容就到此结束,感谢阅读!

若有任何疑问与见解,请发邮件至moon-hotel@hotmail.com并附上文章链接,青山不改,绿水长流,月来客栈见!

推荐阅读

[1]Kmeans聚类算法

[2]Kmeans++聚类算法

[3]聚类评估指标

[4] WKmeans一种基于特征权重的聚类算法

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页