假设我想取 4 个点簇。每个集群可以在给定的一组 xy 坐标内。簇内的每个点都是随机生成的点。
这些聚类将作为我的 K-Means 聚类问题的输入。我如何使用 Python 做到这一点?
我有 157 维的数据,有 688 个数据点。我想用数据进行聚类。
由于 K-Means 是最简单的算法,因此我决定从这种方法开始。
这是 Sklearn 函数调用:
KMeans(init='k-means++', n_clusters=4, n_init=10), name="k-means++", data=sales)
以下是一些输出指标:
init time inertia homo compl v-meas ARI AMI num_clusters
k-means++ 0.06s 38967 0.262 0.816 0.397 0.297 0.250 4
k-means++ 0.05s 29825 0.321 0.847 0.466 0.338 0.306 6
k-means++ 0.07s 23131 0.411 0.836 0.551 0.430 0.393 8
k-means++ 0.09s 20566 0.636 0.817 0.715 0.788 0.621 10
k-means++ 0.09s 18695 0.534 0.794 0.638 0.568 0.513 12
k-means++ 0.11s 16805 0.773 0.852 0.810 0.916 0.760 14 …
Run Code Online (Sandbox Code Playgroud) 是否有可用于改进文档聚类结果的人工智能算法?用于聚类的算法可以是分层的或任何其他的.
谢谢
nlp artificial-intelligence cluster-analysis machine-learning
我想看看来自ak的所有元素意味着在R中的集群.
因此,例如,我有一个名为userSatisfaction的表,其中包含以下列:userID, variable(1 - > 7)和百分比(0 - 1%)我想找出群集号2中的所有用户.
在我对表的元素进行聚类之后,我希望看到位于同一群集中的用户.
所以,例如,如果我有5个集群,我也希望看到集群2中的所有用户.我怎么能在R中做到这一点?
谢谢.
我面临以下数组:
y = [1,2,4,7,9,5,4,7,9,56,57,54,60,200,297,275,243]
Run Code Online (Sandbox Code Playgroud)
我想做的是提取得分最高的集群。那将是
best_cluster = [200,297,275,243]
Run Code Online (Sandbox Code Playgroud)
我已经检查了很多关于这个主题的堆栈问题,其中大多数建议使用 kmeans。尽管其他一些人提到 kmeans 可能对一维数组聚类来说是一种矫枉过正。然而,kmeans 是一种监督学习算法,因此这意味着我必须传入质心的数量。由于我需要将此问题推广到其他数组,因此我无法为每个数组传递质心数。因此,我正在考虑实施某种无监督学习算法,该算法能够自行找出集群并选择最高的集群。在数组 y 中,我会看到 3 个集群 [1,2,4,7,9,5,4,7,9],[56,57,54,60],[200,297,275,243]。考虑到计算成本和准确性以及我如何为我的问题实现它,哪种算法最适合我的需求?
我有一个6x1000的二进制数据数据集(6个数据点,1000个布尔维度).
我对它进行聚类分析
[idx, ctrs] = kmeans(x, 3, 'distance', 'hamming');
Run Code Online (Sandbox Code Playgroud)
我得到了三个集群.我如何可视化我的结果?
我有6行数据,每行有1000个属性; 其中3个在某种程度上应该相似或类似.应用聚类将显示聚类.由于我知道集群的数量,我只需要找到类似的行.汉明距离告诉我们行之间的相似性,结果是正确的,有3个集群.
[编辑:对于任何合理的数据,kmeans将总是找到所询问的簇数]
我想把这些知识带到易于观察和理解,而不必写出大量的解释.
Matlab的例子不合适,因为它涉及数字2D数据,而我的问题涉及n维分类数据.
数据集在这里http://pastebin.com/cEWJfrAR
[编辑1:如何检查集群是否重要?]
欲了解更多信息,请访问以下链接:http: //chat.stackoverflow.com/rooms/32090/discussion-between-oleg-komarov-and-justcurious
如果问题不明确,请询问您遗失的任何事情.
编辑这个问题的时候对聚类技术的了解很少,现在事后看来甚至不符合Stack Overflow网站的标准,但是我不会让我删除它,说其他人已经在这个(有效点)上投入了时间和精力,如果我继续删除,我可能暂时无法提出问题了,因此,我正在更新此问题,以使其与其他人可以借鉴的方式相关。仍然严格不遵循SO准则,因为我本人会将此标记为过于广泛,但是在当前状态下它没有任何价值,因此为其添加一点价值将是值得的。
更新的会话主题
“问题”是在聚类算法中选择最佳聚类数,该聚类算法会将各种形状分组,这些形状是图像上轮廓检测的输入,然后将聚类属性的偏差标记为“噪波”或“异常”。当时提出这个问题的要点是,所有数据集都是不同的,在它们中获得的形状也不同,并且每个数据集的形状编号也将有所不同。正确的解决方案是继续使用DBSCAN(带有噪声的基于密度的空间聚类应用程序)应用程序,该应用程序scikit-learn
当时我还没有意识到,可以正常工作,现在该产品正在测试中,我只是想回到此并纠正这个旧错误。
旧问题
旧标题 kmeans聚类中k的动态选择
我必须生成一个k-means聚类模型,其中事先不知道类的数量,有没有一种方法可以根据聚类内的欧式距离自动确定k的值。
我希望它如何工作。从k的值开始,执行聚类,查看其是否满足阈值标准并相应地增加或减少k。问题是与框架无关的,如果您有使用Python以外的语言编写的Idea或实现,请也分享。
我在研究问题https://www.researchgate.net/publication/267752474_Dynamic_Clustering_of_Data_with_Modified_K-Means_Algorithm时发现了这个问题。我找不到它的实现。
我正在寻找类似的想法来选择最好的并自己实现,或者可以移植到我的代码中的实现。
编辑我现在正在考虑的想法是:
肘法
X-均值聚类
I just want to do the community detection using Girvan Newman Algorithm, and the code was learned from a youtube video. However, when I run the same code, there comes an error
I have tried on Mac OS X python 2.7 terminal and python 3.7 by Jupyter both and the error are the same.
I expect the output to have two communities lists
我想对R应用层次聚类分析.我知道hclust()
函数但不知道如何在实践中使用它; 我一直坚持向函数提供数据并处理输出.
我还想将层次聚类与生成的聚类进行比较kmeans()
.我再次不确定如何调用此函数或使用/操作它的输出.
我的数据类似于:
## dummy data
require(MASS)
set.seed(1)
dat <- data.frame(mvrnorm(100, mu = c(2,6,3),
Sigma = matrix(c(10, 2, 4,
2, 3, 0.5,
4, 0.5, 2), ncol = 3)))
Run Code Online (Sandbox Code Playgroud)