Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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/6/jenkins/5.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
matlab中的K-means算法_Matlab_Cluster Analysis_K Means - Fatal编程技术网

matlab中的K-means算法

matlab中的K-means算法,matlab,cluster-analysis,k-means,Matlab,Cluster Analysis,K Means,如果不使用kmeans(X,K)语法,我们如何在Matlab中实现K-means算法 实际上问题不在于实现算法。请参见下图: 我实现了大多数网站提供的算法,例如 我设置了4个X观测值(200个样本),我已经知道这4个观测值来自1个集群。 因此,根据算法,显示图像的上述聚类是可以解释的,而事实并非如此。我认为4个初始值不应该随机选择 我还运行了一些其他源代码,例如。得出了同样的结果。您可以从下载我的观察结果并自己查看结果。通过“不使用kmeans(X,k)语法”您的意思是不预先指定k,集群的数量

如果不使用kmeans(X,K)语法,我们如何在Matlab中实现K-means算法

实际上问题不在于实现算法。请参见下图:

我实现了大多数网站提供的算法,例如

我设置了4个X观测值(200个样本),我已经知道这4个观测值来自1个集群。 因此,根据算法,显示图像的上述聚类是可以解释的,而事实并非如此。我认为4个初始值不应该随机选择

我还运行了一些其他源代码,例如。得出了同样的结果。您可以从下载我的观察结果并自己查看结果。

通过“不使用kmeans(X,k)语法”您的意思是不预先指定k,集群的数量吗?这是不可能的,因为算法依赖于提前知道集群的数量。如果您确实想在不事先知道集群数量的情况下执行集群,我会研究另一种算法,例如


如果您想使用可用的源代码实现K-means算法,请查看可靠的实现。但是语法正是kmeans(X,k)。

如果您想实现自己的k-means或(出于任何原因)不想使用MATLAB k-means语法,那么有几种方法:

  • 阅读论文:“一种有效的k-均值聚类算法: “分析与实现”,还可以阅读一些其他资源,然后编写自己的代码

  • 搜索internet,直到找到其他免费实现,以便在代码中使用它

  • 您可能希望看到以下链接:


    同时指定了k和X。我想知道k-means的源代码。我检查了VLFeat。看起来,这是一个与matlab兼容的库。我能找到作为函数m文件的解决方案吗?VLFeat实际上是通过.mex文件链接到Matlab的C代码,所以实际上没有任何Matlab代码可以查看。不过,您可以查看C代码,看看发生了什么……如果您想知道
    kmeans
    源代码,请在MATLAB的命令提示符下输入
    键入kmeans.m
    。@Ata:算法很简单,描述得很好:。你应该能够把它作为一个练习来实施。如果您在代码方面遇到问题,可以寻求帮助,但请表明您已经做出了努力…@Ata:Kmeans算法对初始化非常敏感,请参阅此相关问题:
    1. Give initial values to m1 .. mk
    2. Assignment with closest mean
    3. Update