问题标签 [k-means]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4157 浏览

algorithm - 我们应该使用 k-means++ 而不是 k-means 吗?

k-means++算法有助于原始 k-means 算法的以下两点:

  1. 原始的 k-means 算法在输入大小上具有超多项式的最坏情况运行时间,而 k-means++ 声称是 O(log k)。
  2. 与最佳聚类相比,找到的近似值在目标函数方面可能会产生不太令人满意的结果。

但是 k-means++ 有什么缺点吗?从现在开始,我们是否应该一直使用它而不是 k-means?

0 投票
1 回答
364 浏览

statistics - K-mean 聚类,为什么不同的聚类初始位置会影响最终的聚类结果?

我不确定这个问题是否适合这里。无论如何,这里的人似乎很有帮助。所以这是我的问题。

在 k-mean 聚类的情况下,有必要给出聚类的初始位置。为什么不同的聚类初始位置会影响最终的聚类结果?

0 投票
2 回答
13123 浏览

r - R用热图绘制kmeans聚类

我想用 kmeans 对矩阵进行聚类,并能够将其绘制为热图。听起来很琐碎,我也看过很多这样的情节。我试图用谷歌搜索,但找不到绕过它的方法。

我希望能够在此图上绘制面板 A 或 B 之类的东西。假设我有一个 250 行 5 列的矩阵。我不想对列进行聚类,只是对行进行聚类。

那么如何将这 10 个集群绘制为热图?您的评论和帮助非常受欢迎。

谢谢。

在此处输入图像描述

0 投票
2 回答
2270 浏览

cluster-analysis - 如何在k-means中找到集群的坐标

我正在尝试在键值类型的向量上使用 k-means 聚类。我的问题是,如何设置向量中每个元素的坐标?具体来说,键值对是字符串浮点数。我需要这个来稍后找到集群的中心。

0 投票
5 回答
47465 浏览

java - 用Java读取wav文件

我想用 Java 读取 wav 文件,我将用 K-means 对它们进行分类。

如何在 Java 中读取 wav 文件并将它们分配到数组或类似的东西中(您可以提出建议)以对它们进行分类?

编辑:我想使用 API 来读取 wav 文件和 K-means。

0 投票
2 回答
1351 浏览

cluster-analysis - 稀疏矩阵中元素聚类的距离度量

我正在尝试使用 K-means 基于大约 1200 个二进制变量对大约 12000 个元素进行聚类。传统的距离度量(欧几里得、曼哈顿、汉明、列文斯坦)都没有产生令人满意的结果。

我设计了以下指标。

Dist(x,y)= P(x=0|y=1) P(y=0|x=1) 的最小值

有没有人对这类问题使用过类似的方法?使用这个指标有什么明显的缺陷吗?我对数据挖掘比较陌生,如果有任何反馈,我将不胜感激。

谢谢

0 投票
2 回答
601 浏览

artificial-intelligence - 距离最远的 k 个元素(聚类?)

我有一个简单的机器学习问题:

我有 n (~110) 个元素,以及所有成对距离的矩阵。我想选择相距最远的10个元素。也就是说,我想

我的距离度量是对称的并且尊重三角不等式。

我可以使用什么样的算法?我的第一直觉是执行以下操作:

  1. 将 n 个元素聚类为 20 个聚类。
  2. 仅将每个簇替换为该簇中距离原始 n 的平均元素最远的元素。
  3. 使用蛮力解决剩下的 20 名候选人的问题。幸运的是,20 选 10 只有 184,756。

编辑:感谢 etarion 富有洞察力的评论,在优化问题陈述中将“返回(距离)总和”更改为“返回最小距离”。

0 投票
2 回答
2301 浏览

algorithm - K-means 可以用来帮助基于像素值的图像分离吗?

我正在尝试根据像素值分离灰度图像:假设一个 bin 中的像素从 0 到 60,另一个 bin 中的像素为 60-120,另一个中的像素为 120-180 ...,依此类推,直到 255。在此范围内大致等距案子。但是,通过使用 K-means 聚类,是否有可能更实际地衡量我的像素值范围应该是多少?试图一起获得相似的像素,而不是在像素浓度较低的地方浪费垃圾箱。

编辑(包括获得的结果): 在此处输入图像描述 在此处输入图像描述

k-means 没有集群 = 5

0 投票
18 回答
46638 浏览

algorithm - 具有相等簇大小的 K-means 算法变化

我正在寻找最快的算法,将地图上的点按距离分成大小相等的组。k-means 聚类算法看起来简单而有前途,但不会产生同样大小的组。

该算法是否有变体或允许所有集群的成员数量相等的不同算法?

另请参阅:将 n 个点分组到 k 个大小相等的集群中

0 投票
2 回答
5467 浏览

c++ - 不知道“k”的OpenCV中的分层k-Means

我正在尝试对一组 4D 向量进行聚类,但事先不知道应该有多少个聚类。在过去,我已经能够使用 cvKmeans2 进行聚类,只要知道聚类的数量。我正在浏览 API 并遇到cv::flann::hierarchicalClustering. 这看起来会做我需要的(即,执行k-means,在必要时拆分集群,迭代直到拆分使结果恶化),但我真的在“索引参数”上苦苦挣扎。

我发现我需要创建一个作为第二个参数的索引结构,但是我从以下代码中得到一个错误:

cv::flann::Index fln_idx = cv::flann::KMeansIndexParams::createIndex( framePoints );

错误是:

../src/segmentation_1.cpp:592: error: cannot call member function ‘virtual flann::Index* cv::flann::KMeansIndexParams::createIndex(const cv::Mat&) const’ without object

framePoints定义如下:

CvMat *framePoints = cvCreateMat( frameTracklets.size( ), 4, CV_32FC1 );

我很确定我在做一些非常愚蠢的事情(我的 C++ 知识还可以,但不是很好)。我想我已经发布了所有相关的代码,但如果没有,请告诉我,我会发布更多。

提前致谢!

更新

我遵循了 LumpN 的建议并使用以下内容创建了一个 Kmeans 对象:

现在,当我运行它时,我收到一条错误消息,hierarchicalClustering()例如“所需集群的数量应该是>= 1”(我需要检查何时开始工作 - 我将使用实际错误进行更新)。我假设它createIndex()给出了起点,然后hierarchicalClustering()拆分集群直到找到一个好的结果(不确定这是否是最佳的)。我需要cv::flann::KMeansIndexParams()用一些参数打电话吗?我看过api,完全糊涂了!再次感谢!