我正在尝试群集随附的电影数据集" ggplot2"在R.我将使用k-means。此数据集附带的列名称为:
[1] "title" "year" "length" "budget" "rating"
[6] "votes" "r1" "r2" "r3" "r4"
[11] "r5" "r6" "r7" "r8" "r9"
[16] "r10" "mpaa" "Action" "Animation" "Comedy"
[21] "Drama" "Documentary" "Romance" "Short"
你认为根据电影类型进行聚类是个好主意吗?我有点失落,不知道从哪里开始。有什么建议吗?
答案 0 :(得分:1)
回答你的第一个问题:是的,我认为这是一个有趣的项目。使用此数据集可能是了解不同数据挖掘技术的一种很酷的方式。
要回答你的第二个问题,这里有一些建议。聚类是一种无监督的学习技术。当目标变量(在这种情况下,目标变量可能是电影的类型)未知时,学习是无监督的。但是,查看您列出的列,您似乎确实拥有类型信息。考虑到这一点,您有两种选择。首先,你可以假装你没有类型信息。在这种情况下,您可以将k-means应用于其余数据。完成聚类后,您可以通过将算法与已知类型进行比较来评估算法的完成情况。其次,您可以将此问题视为分类问题。在这种情况下,您将使用类型信息来学习可以预测类型的模型。你可能已经知道了,但我只是想说出来。
为了特别针对群集问题提供一些建议,我首先要了解' r1',...,' r10'变量代表。它们是数字变量还是分类? K-means有两个步骤:一个是将数据点分配给最接近它的质心,另一个是通过取一个簇中所有数据点的平均值来计算新质心的步骤。取这些变量的意思是否有意义?
考虑到这一点,我建议首先选择要在聚类算法中使用的变量。然后编写以下函数:一个可以计算两个点之间距离的函数,一个可以将观测值分配给最近的质心,另一个可以根据赋值重新计算质心。
答案 1 :(得分:1)
您需要弄清楚良好群集是什么。
有数百万种方法可以对此数据集进行聚类。因为您可以不同地预处理数据,所以使用不同的算法,距离等。
如果没有您的指导,聚类算法只会做一些事情,并且可能会返回一个完全没用的结果!
所以你需要首先明确一个目标:什么是好的聚类?
然后,您可以尝试调整数据,以便聚类算法针对此目标进行优化。对于k-means,您需要在预处理中完成所有这些操作。对于hclust,您还可以选择符合您需求的距离函数。