使用预定义数据集

时间:2016-04-07 23:23:53

标签: r cluster-analysis data-mining k-means

我正在尝试群集随附的电影数据集" 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" 

你认为根据电影类型进行聚类是个好主意吗?我有点失落,不知道从哪里开始。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

回答你的第一个问题:是的,我认为这是一个有趣的项目。使用此数据集可能是了解不同数据挖掘技术的一种很酷的方式。

要回答你的第二个问题,这里有一些建议。聚类是一种无监督的学习技术。当目标变量(在这种情况下,目标变量可能是电影的类型)未知时,学习是无监督的。但是,查看您列出的列,您似乎确实拥有类型信息。考虑到这一点,您有两种选择。首先,你可以假装你没有类型信息。在这种情况下,您可以将k-means应用于其余数据。完成聚类后,您可以通过将算法与已知类型进行比较来评估算法的完成情况。其次,您可以将此问题视为分类问题。在这种情况下,您将使用类型信息来学习可以预测类型的模型。你可能已经知道了,但我只是想说出来。

为了特别针对群集问题提供一些建议,我首先要了解' r1',...,' r10'变量代表。它们是数字变量还是分类? K-means有两个步骤:一个是将数据点分配给最接近它的质心,另一个是通过取一个簇中所有数据点的平均值来计算新质心的步骤。取这些变量的意思是否有意义?

考虑到这一点,我建议首先选择要在聚类算法中使用的变量。然后编写以下函数:一个可以计算两个点之间距离的函数,一个可以将观测值分配给最近的质心,另一个可以根据赋值重新计算质心。

答案 1 :(得分:1)

您需要弄清楚良好群集是什么。

有数百万种方法可以对此数据集进行聚类。因为您可以不同地预处理数据,所以使用不同的算法,距离等。

如果没有您的指导,聚类算法只会做一些事情,并且可能会返回一个完全没用的结果!

所以你需要首先明确一个目标:什么是好的聚类?

然后,您可以尝试调整数据,以便聚类算法针对此目标进行优化。对于k-means,您需要在预处理中完成所有这些操作。对于hclust,您还可以选择符合您需求的距离函数。