Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于预定义数据集的K-means聚类_R_Cluster Analysis_Data Mining_K Means - Fatal编程技术网

R 基于预定义数据集的K-means聚类

R 基于预定义数据集的K-means聚类,r,cluster-analysis,data-mining,k-means,R,Cluster Analysis,Data Mining,K Means,我正在尝试对R中“ggplot2”包附带的电影数据集进行聚类。我将使用k-means。此数据集附带的列名为: [1] "title" "year" "length" "budget" "rating" [6] "votes" "r1" "r2" "r3" "r4" [11] "r5" "r6" "r7"

我正在尝试对R中“ggplot2”包附带的电影数据集进行聚类。我将使用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" 

你认为基于电影类型进行聚类是个好主意吗?我有点迷路了,不知道从哪里开始。有什么建议吗?

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

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

为了给你一些关于集群问题的建议,我首先想知道'r1',…,'r10'变量代表什么。它们是数值变量还是分类变量?K-means有两个步骤:一个是将数据点指定给离它最近的质心,另一个是通过取群集中所有数据点的平均值来计算新的质心。取这些变量的平均值有意义吗


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

您需要找出构成良好簇的因素

有数百万种方法可以对该数据集进行集群。因为您可以对数据进行不同的预处理,使用不同的算法、距离等

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

因此,您需要首先明确一个目标:什么是好的集群


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

不清楚您想要实现什么。我只是想引入一些想法,以便更多地了解集群是什么以及集群的作用。就像在这个数据集的例子中,你会做什么来对它进行聚类,你会有什么问题?谢谢你,Michael。这澄清了一些疑问。回答您的问题:r1-10。乘以10,这部电影被评为1的用户百分比(最接近10%)。