我使用k-means对面部表情进行分类的方法是:
然而,使用该方法我的结果是错误的? 我的方法是正确的还是在某处错了?
答案 0 :(得分:3)
K-means不是分类算法。一旦运行,它只是找到K个元素的质心,因此它将数据分成K个部分,但在大多数情况下,它与所需的类没有任何关系。当您想要探索数据并找到一些可区分的对象时,应该使用此算法(作为所有聚类方法)。在任何意义上都难以区分。如果您的任务是构建一个识别某些给定类的系统,那么它是 classification 问题,而不是 clustering < / strong>即可。最容易实现和理解的最简单的方法之一是KNN(K-最近邻居),它大致完成了你想要完成的任务 - 检查哪些类的对象是最接近某些类的对象那些。
为了更好地发现差异让我们考虑一下你的情况 - 你试图根据面部特征来检测情绪状态。在这些数据上运行k-means可以将您的面部照片分成多个组:
正如您所看到的,有几十种可能的“合理”(甚至更完全不可解释)分裂,而K-means(和任何)其他聚类算法只会找到其中一种(在大多数情况下 - 不可解释的)。分类方法用于克服这个问题,“解释”算法你期待什么。