Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Cluster analysis 基于结果选择聚类方法_Cluster Analysis_Weka_Recommendation Engine_K Means_Dbscan - Fatal编程技术网

Cluster analysis 基于结果选择聚类方法

Cluster analysis 基于结果选择聚类方法,cluster-analysis,weka,recommendation-engine,k-means,dbscan,Cluster Analysis,Weka,Recommendation Engine,K Means,Dbscan,我在用WEKA写论文,有1000多行数据。数据库包括人口统计信息(年龄、位置、状态等),后跟产品名称(值为1或0)。最终结果是一个推荐系统。 我使用了两种聚类方法,K-Means和DBScan 当使用K-means时,我尝试了3个不同数量的聚类,而使用DBscan时,我选择了3个不同的ε(ε3=48个聚类,忽略了17%的数据,ε2.5=19个聚类,而聚类0包含229个项目,忽略了6%),这意味着我对相同的数据有6个不同的聚类结果 如何选择最适合我的数据?什么是“最佳”? 一些聪明人注意到: 聚类

我在用WEKA写论文,有1000多行数据。数据库包括人口统计信息(年龄、位置、状态等),后跟产品名称(值为1或0)。最终结果是一个推荐系统。 我使用了两种聚类方法,
K-Means
DBScan

当使用
K-means
时,我尝试了3个不同数量的聚类,而使用
DBscan
时,我选择了3个不同的ε(ε3=48个聚类,忽略了17%的数据,ε2.5=19个聚类,而聚类0包含229个项目,忽略了6%),这意味着我对相同的数据有6个不同的聚类结果

如何选择最适合我的数据?

什么是“最佳”? 一些聪明人注意到:

聚类的有效性通常在旁观者的眼中

客观上没有更好的聚类方法,或者你没有做聚类分析

即使某个结果在某些数学度量(如分离、轮廓)上实际上“更好”,或者甚至在使用标签进行监督评估时——它仍然只会更好地优化某些数学目标,而不是优化您的用例

K-均值为给定的K找到一个局部最优平方和赋值。(如果你增加k,就会有更好的赋值!)DBSCAN(实际上它的拼写都是正确的大写)总是为给定的MinPts/Epsilon组合找到最佳的密度连接组件。然而,两者都只是根据一些数学标准进行优化除非此标准符合您的要求,否则它毫无价值。所以没有最好的,除非你知道你需要什么。但是如果你知道你需要什么,你就不需要做聚类分析了

那怎么办呢? 尝试不同的算法和不同的参数,并使用您的领域知识分析输出,如果它们能帮助您解决您试图解决的问题。如果它们能帮助你解决问题,那么它们是好的。如果他们没有帮助,请再试一次

随着时间的推移,你会积累一些经验。例如,如果平方和对您的域没有意义,请不要使用k-means。如果您的数据没有有意义的密度,请不要使用基于密度的集群,如DBSCAN。并不是这些算法失败了。他们只是解决不了你的问题,他们解决了另一个你不感兴趣的问题。他们可能真的很擅长解决另一个问题