一文读懂聚类

我们不管是做分类还是回归,我们拿到的数据都是(x,y)这么一对数据,也就是(x_{1},y_{1}),(x_{2},y_{2}),......,(x_{n},y_{n}),我们那到是的是这么一堆数据,我们不管是建立什么样的模型,比如说是f(x,\theta ),参数是\theta,然后再与实际值ý带进损失函数求一个损失L(f(x,\theta ),y),我们去学这模型\theta是一个什么东西,我们最后把f(x,\theta )学到了,我们带入一个f(x_{i},\theta )得到一个值y_{i},这个y_{i}要使它与实际的那个ý尽量的接近的,这就是我们的目的。而这样一个东西,带标记,带类别或者是带值的,这是一个有监督的学习。

但有些时候我们没有这y,只有x的时候,我们也能不能对这个数据根据它的相似性,就是根据X自身的相似性将数据分成若干个部分呢?这样就叫做无监督,而聚类是最重要的无监督。

而事实上呢,我们不妨这样来想,假如说我们现在拿到了这样一堆数据(x_{1},x_{2},......,x_{m}),而x_{1}......x_{m}都是Ñ维的,其实这个数据就是一个m行ñ列的矩阵。如果说我们通过聚类的方式,就是让x_{1}......x_{m}属于不同的类别,这样的一个类别就叫做簇。我们说这些数据分到哪一个簇里边了,比如我们把x_{1}......x_{m}分到ķ个簇里边,比如分到第三个簇里边了,我们不妨把它标记为...... 101总共ķ个数值,m个都分一下不就把原来的m行ñ列的样本变成了m行ķ列的数据,一般来说ķ<n,因此这样一个东西就可以叫做降维。因此我们有些时候不管说它是一个聚类也好,说它是个降维也好,都往往指的是无监督的对x自相似性的一种变换。

我们再举个很有趣的例子,大家还记得PCA这么做的吗?我们现在有一个m行n列的x,而X^{T}X是一个Ñ阶方阵。如果要去求它的特征值和特征向量(\mu ,\lambda )把它的每一个(\mu _{1}......\mu _{n})这些特征值拿出来得到一个矩阵U,那U^{T}(X^{T}X)U这样一个东西就变成了对角阵。那如此一来我们取U的前ķ个特征值U1 ......U_{n},这不就是所谓的PCA嘛。我们在里边仍然是把这ñ乘n,本来是ñ个特征,我们最后选出来了ķ个特征,所以说PCA的工作就只有X,没有ÿ的事儿嘛,所以说PCA是一个降维。

聚类的定义:聚类就是对大量未标注的数据集按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小。

例如协同过滤,就是做推荐系统的协同过滤,协同过滤其实本质上是一个无监督的学习方式,只有若干个用户和若干个商品的这样一个矩阵,而且它还有可能是稀疏的。我们通过让大量的用户齐心协力共同把那个喜好的商品给过滤出来,齐心协力做一个过滤嘛,简称协同过滤。

在根据相似性来做聚类的时候,第一步就是如何来度量这个相似性,相似性的最为简单的方式就是欧式距离。

猜你喜欢

转载自blog.csdn.net/weixin_38241876/article/details/84892186
今日推荐