K-means:初始中心不明显

2024-01-25

我正在使用通航套餐 https://cran.r-project.org/web/packages/GA/GA.pdf我的目标是找到 k 均值聚类算法的最佳初始质心位置。我的数据是 TF-IDF 分数中单词的稀疏矩阵,可下载here. https://drive.google.com/open?id=0B0heEjN4tZlWNGE4OTgzUjkxN28以下是我实施的一些阶段:

0. 库和数据集

library(clusterSim)           ## for index.DB()
library(GA)                   ## for ga() 

corpus <- read.csv("Corpus_EnglishMalay_tfidf.csv")     ## a dataset of 5000 x 1168

1. 二进制编码并生成初始种群。

k_min <- 15

initial_population <- function(object) {
    ## generate a population to turn-on 15 cluster bits
    init <- t(replicate(object@popSize, sample(rep(c(1, 0), c(k_min, object@nBits - k_min))), TRUE))
    return(init)
}

2. 健身功能最小化 Davies-Bouldin (DB) 指数。我在其中评估生成的每个解决方案的 DBIinitial_population.

DBI2 <- function(x) {
    ## x is a vector of solution of nBits 
    ## exclude first column of corpus
    initial_centroid <- corpus[x==1, -1]
    cl <- kmeans(corpus[-1], initial_centroid)
    dbi <- index.DB(corpus[-1], cl=cl$cluster, centrotypes = "centroids")
    score <- -dbi$DB
    return(score) 
}

3. 运行遗传算法。有了这些设置。

g2<- ga(type = "binary", 
    fitness = DBI2, 
    population = initial_population,
    selection = ga_rwSelection,
    crossover = gabin_spCrossover,
    pcrossover = 0.8,
    pmutation = 0.1,
    popSize = 100, 
    nBits = nrow(corpus),
    seed = 123)

4.问题。kmeans(corpus[-1],initial_centroid) 中的错误:初始中心不明显`。

我发现了类似的问题here https://community.tableau.com/thread/193251,其中用户还必须使用参数来动态传入要使用的集群数量。它是通过硬编码簇的数量来解决的。然而对于我的情况,我确实需要动态地传递簇的数量,因为它来自随机生成的二进制向量,其中那些1's将代表初始质心。

检查与kmeans() code https://svn.r-project.org/R/trunk/src/library/stats/R/kmeans.R,我注意到错误是由重复的中心引起的:

if(any(duplicated(centers)))
        stop("initial centers are not distinct")

我编辑了kmeans功能与trace打印出重复的中心。输出:

 [1] "206"  "520"  "564"  "1803" "2059" "2163" "2652" "2702" "3195" "3206" "3254" "3362" "3375"
[14] "4063" "4186"

这表明随机选择的内容没有重复initial_centroids我不知道为什么这个错误不断发生。还有其他什么会导致此错误吗?

P/S:我确实理解有些人可能认为 GA + K-means 不是一个好主意。但我确实希望完成我已经开始的事情。最好将此问题视为 K 均值问题(至少在解决initial centers are not distinct error).


从问题的本质来看,遗传算法不太适合优化 k 均值 - 初始化种子相互作用太多,ga 不会比对所有可能的种子进行随机采样更好。

所以我的主要建议是不要在这里使用遗传算法!

如果你坚持,你需要做的是检测坏参数,然后简单地返回坏初始化的坏分数,这样它们就不会“生存”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

K-means:初始中心不明显 的相关文章

  • 按不规则时间间隔对数据进行分组求和(R语言)

    我正在看这里的 stackoverflow 帖子 R 计算一组内的观察次数 https stackoverflow com questions 65366412 r count number of observations within a
  • 如何修复 TypeError: G 必须是 'd' 矩阵?

    目标 尝试通过优化过程运行玩具数据集 我遇到以下错误 TypeError Traceback most recent call last
  • 使用 pkg:sjPlot 函数创建一个生成部分斜体单元格的数据框

    我正在尝试创建一个简单的数据表 其中 Coral taxon 列中的属名称为斜体 而 spp 列中的属名称为斜体 属名后面的部分不大写 我尝试使用 expression 函数对 Coral taxon 的每一行进行编码 但没有成功 sum
  • 如何将同一行中以逗号分隔的值拆分到R中的不同行

    我有一些数据来自谷歌表格 https forms gle rGQQL3tvA1PrE4dD8我想拆分以逗号分隔的答案 and 复制参与者的 ID 数据如下 gt head data names Q2 Q3 Q4 1 PART 1 fruit
  • 如何在 R 中绘制一列与其余列的关系图

    我有一个数据集 其中 1 是时间 接下来的 14 个是幅度 我想在一张图表上散布所有大小与时间的关系 其中每个不同的列都是网格化的 分层在另一个之上 我想使用原始数据来制作这些图表 并单独制作它们 但只想执行此过程一次 数据集A 唯一的自变
  • 如何在 R 中将字符串解析为层次结构或树

    有没有办法将表示组的字符串解析为 R 中的层次结构 假设我的小组结构如下 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 3 1 1 3 1 1 1 3 2 1 1 3 3 1 2 1 2 1 1 2 1 1 1 2 1 2 1
  • 排序因素与水平

    有人能解释一下 R 中 ordered 参数的用途吗 R says ordered逻辑标志来确定级别是否应被视为有序 按给定的顺序 所以如果我有一个名为名称的因素并设置ordered TRUE names lt factor c fred
  • 如何定义“f_n-chi-square”函数并使用“uniroot”求置信区间?

    I want to get a 95 confidence interval for the following question 我已经写了函数f n在我的 R 代码中 我首先使用 Normal 随机采样 100 个样本 然后定义函数h
  • 什么是大O表示法?你用它吗? [复制]

    这个问题在这里已经有答案了 什么是大O表示法 你用它吗 我想我错过了这门大学课程 D 有人使用过它并给出一些现实生活中使用它的例子吗 也可以看看 八岁孩子的大O https stackoverflow com questions 10716
  • 如何使用 xpath 检查某个对象在网页中是否可见?

    我正在 R 中使用 RSelenium 包来进行网络抓取 有时加载网页后 需要检查某个对象在网页中是否可见 例如 library RSelenium open a browser RSelenium startServer remDr lt
  • R- 将某些列从 0 标准化为 1,其值等于 0

    我最近开始使用 are 我想扩展我的数据矩阵 我在这里找到了一种方法在两点之间缩放系列 https stackoverflow com questions 5468280 scale a series between two points
  • 一段 R 代码会影响 foreach 输出中的随机数吗?

    我使用运行模拟foreach and doParallel并与随机数 名为random在代码中 简而言之 我模拟一个足球联赛 随机生成所有比赛的获胜者以及相应的结果 在dt base没有比赛进行 在dt ex1 and dt ex24场比赛
  • 获取函数的命名空间

    我正在开发一个包 我希望在其中向对象添加编辑历史记录 该包允许其他包注册用于编辑对象的函数 我正在寻找一种方法来记录注册用于编辑的函数的包的版本 问题是 给定一个函数 如何从导出的位置获取包 我的想法是调查它的搜索路径 但是search 仅
  • R 可以创建带有可单击条形图的条形图图像以插入网页吗?

    我知道如何创建条形图 以及如何将其粘贴在网页上 例如 使用hwriteImage in the 作家包 http www embl de gpau hwriter 我想要的是每个栏都是一个在鼠标悬停时突出显示的区域 并且每个栏在单击时都有不
  • 列出 R 数据文件的内容而不加载

    我有时用print load myDataFile RData 当我加载数据文件时列出它的内容 有没有办法列出内容而不加载数据文件中包含的对象 我认为如果不加载对象就无法做到这一点 解决方案可能是使用包装器将 R 对象保存到save 该函数
  • gcc 与 clang:符号剥离

    gcc 和 AMD Open64 opencc 都有一个 s选项 剥离符号表和重定位信息 到目前为止我还没能在 Clang LLVM 中找到相同的选项 它存在吗 您可以使用stripbinutils 中的实用程序 实际上 llvm ld 有
  • 在R中循环子文件夹

    我正在 R 环境中包含多个子文件夹的文件夹中工作 我想要循环遍历多个子文件夹 然后在每个子文件夹中调用 R 脚本来执行 我想出了下面的代码 但我的代码似乎添加了 到子文件夹列表 我收到错误 文件中的错误 文件名 r 编码 编码 无效的 描述
  • picker输入字体或背景颜色

    我在闪亮的仪表板中使用 pickerInput 这很好 除了一个问题 背景颜色和字体颜色太相似 使得过滤器选择难以阅读 有什么办法可以改变背景或字体颜色吗 如果可能的话 我想继续使用 pickerInput 但如果有一个带有 selectI
  • 如何按用户定义(例如非字母顺序)对数据框进行排序[重复]

    这个问题在这里已经有答案了 给定一个数据框dna gt dna chrom start chr2 39482 chr1 203918 chr1 198282 chrX 7839028 chr17 3874 以下代码重新排序dna by ch
  • 使用 z = f(x, y) 形式的 B 样条方法来拟合 z = f(x)

    作为一个潜在的解决方案这个问题 https stackoverflow com questions 76476327 how to avoid creating many binary switching variables in gekk

随机推荐

  • 使用编码打开内存映射文件

    内存映射文件 https docs python org 3 library mmap html module mmap是使用正则表达式或对大型二进制文件进行操作的有效方法 如果我有一个大文本文件 1GB 是否可以使用编码感知映射文件 正则
  • 视图必须派生自 WebViewPage

    当我决定需要进行一些维护时 我已经有了一个可以运行的 MVC 应用程序 我的视图全部位于 SHARED 目录下 我决定将它们移至单独的目录中 我实现了在这里找到的 CustomViewEngine 我可以在 ASP NET MVC 中指定自
  • 为什么 N'ko 使用 3 位小数来显示定点(“F”)数字,而实际上所有其他文化都使用 2 位小数?

    不同的文化使用不同的小数点分隔符 点 1 23 或逗号 1 23 或者在波斯语 伊朗 的情况下 可能会发现 momayyez 或斜杠 https i stack imgur com 2sxXf png或 1 23 我一直在测试我的库 其中涉
  • 如何在 Javascript/HTML5 中解析 Excel (XLS) 文件

    我可以通过读取 Excel 文件FileReader但它输出文本以及奇怪的字符 我需要阅读xls按行读取文件 读取每一列中的数据并将其转换为 JSON 如何逐行读取xls文件 下面的函数将 Excel 工作表 XLSX 格式 数据转换为 J
  • 无法观察 AVPlayerItem 的 @“status” 键

    我正在尝试从 URL 播放流 但有一个问题 ObserveValueForKeyPath ofObject change context 只是不执行 据我了解 它不取决于streamURL 无论它是否正确 它必须将状态从 AVPlayerI
  • 无法转换 Pandas 数据帧时间戳

    我对使用 Pandas 还很陌生 我正在尝试找出为什么这个时间戳不会转换 例如 一个单独的时间戳是字符串 2010 10 06 16 38 02 代码如下所示 newdata pd DataFrame from records data c
  • 同一服务器上多个站点的 nginx 配置

    我正在尝试创建一个 nginx 服务器 可以在同一服务器上托管多个站点 我在 var www 目录中保留了两个包含 index html 文件的不同目录 第一个目录 dir1 包含文件夹结构为 dir1 Folder app app 目录包
  • Java/MySql如何实现基于角色的访问控制?

    我计划启动一个基于网络的项目 涉及用户注册 就像论坛 CMS 一样 但我的障碍是我不知道如何实现所谓的基于角色的访问控制 我在谷歌上搜索 基于角色的访问控制 并在结果书中找到了以下内容 设计模式 这与我的需要有关吗 有关于实现这个想法的教程
  • 如何在 GNU/Linux 中使用 python 自动化 GUI 应用程序的操作? [复制]

    这个问题在这里已经有答案了 如何自动化 gthumb 增强颜色 选项 gThumb 是一款适用于 GNU Linux 的优秀图像管理软件 当我们看到图像时 我们可以在 gthumb 中轻松增强颜色 但是 我们必须单击图像 然后单击按钮 增强
  • 错误“无法实例化活动...在路径上找不到类:DexPathList”

    当我尝试构建应用程序时Eclipse 我收到以下错误 05 20 15 04 51 202 E AndroidRuntime 1543 FATAL EXCEPTION main 05 20 15 04 51 202 E AndroidRun
  • ExtJS 6 在内存代理中使用自定义过滤功能

    我有一家商店配置了内存代理 http docs sencha com extjs 6 2 1 modern Ext data proxy Memory html with enablePaging true 商店的remoteFilter
  • MVVM Light IsInDesignMode 属性不起作用

    我遇到一个问题 即在 VS 或 Blend 中运行解决方案时 属性 IsInDesignMode 未返回预期值 true 我的环境由Win Server 2008 R2 VS2010 Pro Blend 4和MVVM Light V3组成
  • 如何理解指令的“terminal”?

    在此页面中 http docs angularjs org guide directive http docs angularjs org guide directive 指令定义对象 terminal 如果设置为 true 则当前优先级将
  • 运行时检查失败 #2 - 变量“x”周围的堆栈已损坏

    在以下代码中返回时 我收到此运行时检查失败 我相信类似的代码在程序的其他地方运行良好 有任何想法吗 String GetVariableName CString symbol CString filepath char acLine 512
  • 在 MySQL 中使用 ALTER TABLE 建立索引需要多长时间?

    这可能有点像询问字符串的长度有多长 但统计数据是 英特尔双核 4GB 内存 具有 800 万行 约 20 列的表 大部分为具有 auto increment 主 id 的 varchar 查询是 ALTER TABLE my table A
  • mobx中无法观察到对象的深层变化

    我在反应中使用 mobx 6 3 12 管理状态 但我无法观察到物体的深层变化 这是我的消息来源 store class ApiStore values name author constructor makeObservable this
  • Sequelize表名更改

    已将表重命名为users to user在 MySQL 数据库中 在Express我在跑Sequelize并为旧的创建了一个架构users桌子 重命名表并且代码中的所有内容都从users to user Sequelize仍在寻找专门命名的
  • 按颜色排序

    我有一长串 1000 十六进制颜色 分为一般颜色类别 红色 橙色 蓝色等 当我显示每个类别中的颜色列表时 我需要按颜色顺序显示它们 即先浅红色 最后深红色 执行此操作的算法是什么 谷歌搜索让我失败了 我知道这个问题很老了 但是我没有找到解决
  • 停止/启动服务器上的应用程序池和站点

    我想编写一个脚本并从本地 PC 运行它来停止和启动服务器上存在的应用程序池和站点 应用程序池和网站的价值 测试 服务器的值 SERVER1 任何指导将不胜感激 使用管理权限运行命令提示符 然后键入以下内容 C Windows System3
  • K-means:初始中心不明显

    我正在使用通航套餐 https cran r project org web packages GA GA pdf我的目标是找到 k 均值聚类算法的最佳初始质心位置 我的数据是 TF IDF 分数中单词的稀疏矩阵 可下载here https