【问题标题】:How can we put the initial centroids in FCM function ( Matlab )我们如何将初始质心放入 FCM 函数(Matlab)
【发布时间】:2017-03-30 12:01:19
【问题描述】:

我在 Matlab 中使用 fcm 函数进行聚类。但是,初始质心是随机设置的。我需要自己设置初始质心值。我正在考虑修改 Matlab 中的 stepfcm 函数。谁能告诉我如何自己放置初始质心?

【问题讨论】:

  • 看看this的例子,他们使用initfcmstepfcm。您可以只生成自己的数据,而不是 initfcm's。

标签: matlab cluster-analysis centroid


【解决方案1】:

我做了edit('fcm.m')
在第 84 行(我使用 MATLAB R2016b)你有:

U = initfcm(cluster_n, data_n); % Initial fuzzy partition

这是簇质心的初始化。
如果你用你自己的替换它,你会得到你想要的。

怎么做?

在 MATLAB 的命令行上运行命令 edit('fcm.m')
使用名称FcmInit保存它的副本。
将函数签名从 [center, U, obj_fcn] = fcm(data, cluster_n, options) 更改为 [center, obj_fcn] = FcmInit(data, cluster_n, U, options)
删除U = initfcm(cluster_n, data_n); 行,这样它就不会覆盖输入。

【讨论】:

  • 谢谢!但是我有质心值,如何将它们转换为 U 值?
  • 您将函数fcm.m 复制到您自己的函数中并编辑我指向的行。您甚至可以将其设置为输入参数。
  • 你能在上面的答案中证明这一点吗?我有一组数据和一组质心值。如何设置初始质心的 U 值?
  • 你的意思是我把簇质心的 U 初始化。但我没有 U ,我只有初始质心值。我认为我们应该首先从初始质心值计算 U。
  • 质心是向量。 U 由这些向量组成。
猜你喜欢
  • 2018-05-09
  • 2015-09-17
  • 2019-05-14
  • 2016-06-27
  • 2013-03-27
  • 2017-08-05
  • 2016-11-16
  • 2013-08-05
  • 1970-01-01
相关资源
最近更新 更多