Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm Matlab群集:在大数据集上无法正常工作_Algorithm_Matlab_Sorting_Cluster Analysis - Fatal编程技术网

Algorithm Matlab群集:在大数据集上无法正常工作

Algorithm Matlab群集:在大数据集上无法正常工作,algorithm,matlab,sorting,cluster-analysis,Algorithm,Matlab,Sorting,Cluster Analysis,我有一组数据,可以分为两组。沿y轴的垂直设置和沿x轴的水平设置。我试着分别用蓝色和红色来描绘它们。但正如你们所看到的,一些蓝色和红色混合在一起。有谁能帮我用聚类正确地做到这一点吗?我用kmeans来做这个 [cidx2,cmeans2]=kmeans(minSpikeV,2) 但似乎效果不太好 我做了@mpaskov提到的事。但现在我明白了。那些红色的长方形应该是蓝色的正方形。有人能帮我吗? 您可以使用不同的初始化方法,也可以自己指定 % uses random samples [cidx2,c

我有一组数据,可以分为两组。沿y轴的垂直设置和沿x轴的水平设置。我试着分别用蓝色和红色来描绘它们。但正如你们所看到的,一些蓝色和红色混合在一起。有谁能帮我用聚类正确地做到这一点吗?我用kmeans来做这个

[cidx2,cmeans2]=kmeans(minSpikeV,2)

但似乎效果不太好

我做了@mpaskov提到的事。但现在我明白了。那些红色的长方形应该是蓝色的正方形。有人能帮我吗?

您可以使用不同的初始化方法,也可以自己指定

% uses random samples
[cidx2,cmeans2] = kmeans(minSpikeV,2, 'Start', 'sample');

% not 100% on the dimensions, but I can not try as I do not have the toolbox for kmeans
[cidx2,cmeans2] = kmeans(minSpikeV,2, 'Start', [-0.05,2; -0.25,0.1]); 

阅读

中的详细信息。您可以使用不同的方法初始化方法或自己指定它们

% uses random samples
[cidx2,cmeans2] = kmeans(minSpikeV,2, 'Start', 'sample');

% not 100% on the dimensions, but I can not try as I do not have the toolbox for kmeans
[cidx2,cmeans2] = kmeans(minSpikeV,2, 'Start', [-0.05,2; -0.25,0.1]); 

阅读

中的详细信息,因为kmeans是一种启发式方法,这有时是典型的行为(它保证只收敛到某个局部最优,因为该问题是一个具有多个局部极小值的非凸优化问题;它是np难问题)。经典的增加鲁棒性的方法是使用不同的随机种子进行多次聚类(多次启动)。mpaskov的回答给出了一些关于如何手动操作的想法(我使用的所有实现都已经提供了现成的功能),这些数据对我来说更适合DBSCAN,但也许Matlab k-means不是很好。你试过用ELKI对数据进行聚类吗?@Anony mouse那是什么?我最喜欢的聚类工具。非常快,有很多选择。请在那里或最远点尝试KmeansPlus初始化。@Anony Mouse非常感谢您的建议。我将尝试将tooAs kmeans作为一种启发式,这有时是典型的行为(它保证只收敛到某个局部最优,因为该问题是一个具有多个局部极小值的非凸优化问题;它是np难的)。经典的增加鲁棒性的方法是使用不同的随机种子进行多次聚类(多次启动)。mpaskov的回答给出了一些关于如何手动操作的想法(我使用的所有实现都已经提供了现成的功能),这些数据对我来说更适合DBSCAN,但也许Matlab k-means不是很好。你试过用ELKI对数据进行聚类吗?@Anony mouse那是什么?我最喜欢的聚类工具。非常快,有很多选择。请在那里或最远点尝试KmeansPlus初始化。@Anony Mouse非常感谢您的建议。我要试试那个牙套,姆帕斯科夫和萨沙。我还在想你说什么。感谢你help@TMH基本上,kmeans从两个值开始,即猜测每个集群的中心在哪里。然后执行迭代以改进它们。如果您从一个非常糟糕的点开始,它可能不会收敛并分离两个集群。现代kmeans算法尝试不同的起点,并使用“最佳”起点,但不确定matlab是否做到了这一点。但它确实允许您选择希望集群集中的起点,或者选择启动算法的不同方式。谢谢mpaskov和sascha。我还在想你说什么。感谢你help@TMH基本上,kmeans从两个值开始,即猜测每个集群的中心在哪里。然后执行迭代以改进它们。如果您从一个非常糟糕的点开始,它可能不会收敛并分离两个集群。现代kmeans算法尝试不同的起点,并使用“最佳”起点,但不确定matlab是否做到了这一点。但它确实允许您选择期望集群围绕的起点,或者选择启动算法的不同方式。