Questions tagged «clustering»

聚类分析是根据数据的相互“相似性”将数据划分为对象子集的任务,而无需使用诸如类标签之类的现有知识。[群集标准错误和/或群集样本应被标记为此类;不要为它们使用“集群”标签。]

1
Mclust模型选择
R软件包mclust使用BIC作为选择集群模型的标准。据我了解,应该选择BIC最低的模型而不是其他模型(如果您仅关心BIC)。但是,当BIC值均为负时,该Mclust功能默认为具有最高BIC值的模型。我的来自各种试验总体理解是mclust识别“最好”的模型作为那些具有。max{BICi}max{BICi}max\{BIC_i\} 我试图理解作者为什么做出这个决定。它在CRAN站点中进行了说明:https ://cran.r-project.org/web/packages/mclust/vignettes/mclust.html 另外,mclust软件包的作者在第5页的基于模型的分类方法:使用化学计量学中的mclust软件中对此进行了记录。 “最佳”模型被认为是拟合模型中BIC最高的模型。 谁能在这个问题上大放异彩?如果较低的BIC总是更好,那么为什么作者不选择具有最低BIC的模型,而是选择具有最小绝对BIC的模型?如果可能,请提供参考。

1
期望最大化澄清
我发现有关EM算法的非常有用的教程。 该示例和教程中的图片简直太棒了。 有关计算概率的相关问题,期望最大化如何工作? 关于如何将教程中描述的理论与示例联系起来,我还有另一个问题。 在E步中,EM选择一个函数,该函数所有位置下限,并且为此。gtgtg_tlogP(x;Θ)log⁡P(x;Θ)\log P(x;\Theta)gt(Θ^(t))=logP(x;Θ^(t))gt(Θ^(t))=log⁡P(x;Θ^(t))g_t( \hat{\Theta}^{(t)}) = \log P(x; \hat{\Theta}^{(t)}) 因此,在我们的示例中,看起来像每次迭代都应该有所不同。gtgtg_t 另外,在示例中和然后将它们应用于数据,我们得出和。对我来说,这看起来很不直观。我们有一些先前的假设,将其应用于数据并获得新的假设,因此数据以某种方式改变了这些假设。我不明白为什么不等于。Θ^(0)A=0.6Θ^A(0)=0.6\hat{\Theta}_A^{(0)} = 0.6Θ^(0)B=0.5Θ^B(0)=0.5\hat{\Theta}_B^{(0)} = 0.5Θ^(1)A=0.71Θ^A(1)=0.71\hat{\Theta}_A^{(1)} = 0.71Θ^(1)B=0.58Θ^B(1)=0.58\hat{\Theta}_B^{(1)} = 0.58Θ^(0)Θ^(0)\hat{\Theta}^{(0)}Θ^(1)Θ^(1)\hat{\Theta}^{(1)} 此外,当您看到本教程的补充说明1时,还会出现更多问题。例如,在我们的案例中,是什么。我不清楚,为什么当时,不等式变得很紧Q(z)Q(z)Q(z)Q(z)=P(z|x;Θ)Q(z)=P(z|x;Θ)Q(z)=P(z|x;\Theta) 谢谢。

3
纽曼的网络模块化是否适用于带符号的加权图?
图的模块性在其Wikipedia页面上定义。在另一篇文章中,有人解释说,可以轻松地为加权网络计算(并最大化)模块化,因为邻接矩阵也可以包含有价值的联系。但是,我想知道这是否也适用于带符号的,有价值的边缘(例如,从-10到+10)。您可以提供有关此问题的直觉,证据或参考吗?一种我Ĵ一种一世ĴA_{ij}

1
用于集群验证的信息(VI)指标变化背后的直觉是什么?
对于像我这样的非统计学家来说,VI即使阅读了Marina Melia的相关论文“ Comparing clusters-an based based distance ”(多变量分析杂志,2007年),也很难把握度量(信息的变化)的概念。实际上,我不熟悉许多集群的术语。 以下是MWE,我想知道在使用的不同指标中输出的含义。我在R中具有这两个群集,并且具有相同的id顺序: > dput(a) structure(c(4L, 3L, 4L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 4L, 3L, 4L, 4L, 3L, 4L, 4L, 4L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 4L, …


2
如何在纵向数据中找到分组(轨迹)?
语境 我想先设定一下场景,然后再扩展问题。 我有纵向数据,大约每3个月对受试者进行一次测量,主要结果是数值(从连续到1dp),范围是5到14,(所有数据点的)大部分在7到10之间。意大利面条图(x轴上有年龄,每个人都有一条线),因为我有超过1500名受试者,这显然是一团糟,但是随着年龄的增长,向更高的价值迈进了明显的步伐(这是众所周知的)。 更广泛的问题是:我们想做的是首先能够确定趋势组(开始时高并保持高位,开始时低并保持低位,开始时低并增加到高位等),然后我们可以查看与“趋势组”成员资格相关的个人因素。 我在这里的问题专门针对第一部分,即按趋势分组。 题 我们如何对单个纵向轨迹进行分组? 哪种软件适合执行此操作? 我正在研究一位同事建议的SAS和M-Plus中的Proc Traj,但我想知道其他人对此有何想法。

4
是否存在k均值中没有最优k的情况?
这在我心中至少存在了几个小时。我试图为k-means算法(具有余弦相似性度量)的输出找到最佳k,因此最终将失真作为簇数的函数进行了绘制。我的数据集是在600维空间中的800个文档的集合。 据我了解,在此曲线上找到拐点或肘点应该至少告诉我大约需要将数据放入的簇数。我把图放在下面。通过使用最大二阶导数测试获得绘制红色垂直线的点。完成所有这些操作之后,我陷入了一个简单得多的难题:这张图告诉我有关数据集的什么信息? 它是否告诉我不值得进行聚类并且我的文档缺乏结构,或者我需要设置一个很高的k?尽管有一个奇怪的事情,就是即使k很小,我也看到类似的文档被聚集在一起,所以我不确定为什么要得到这种曲线。有什么想法吗?

5
针对名义/圆形变量的SOM聚类
只是想知道是否有人熟悉标称输入的聚类。我一直在将SOM作为解决方案,但显然它仅适用于数字功能。分类功能是否有扩展?我特别想知道“星期几”是否可能是功能。当然可以将其转换为数值特征(例如,周一至周日对应于1-7号),但是,周日与周一之间的欧几里得距离(1&7)将与周一至周二(1&2)之间的欧氏距离不同)。任何建议或想法将不胜感激。

2
以2D可视化多维数据(LSI)
我正在使用潜在语义索引来查找文档之间的相似性(谢谢,JMS!) 降维后,我尝试了k均值聚类将文档分组为聚类,效果很好。但是我想进一步介绍一下,并将文档可视化为一组节点,其中任意两个节点之间的距离与它们的相似度成反比(高度相似的节点靠在一起)。 令我惊讶的是,由于我的数据> 2维,因此我无法将相似度矩阵准确地简化为2维图。所以我的第一个问题是:是否有标准方法可以做到这一点? 我可以将数据缩小为二维,然后将它们绘制为X轴和Y轴,这对于一组约100-200个文档就足够了吗?如果这是解决方案,那么从一开始就将我的数据缩减为2维更好,还是有什么方法可以从我的多维数据中选择两个“最佳”维? 我正在使用Python和gensim库,如果有区别的话。

3
初始化K均值聚类的方法
我对当前为K均值选择初始种子(集群中心)的最新技术感兴趣。 谷歌搜索有两种流行的选择: 随机选择初始种子,以及 使用KMeans ++选择技术:Arthur&Vassilvitskii 2006 k-means ++:精心播种的优势 还有其他任何人都知道的有前途的方法,这些方法可能不那么受欢迎?

1
R / mgcv:为什么te()和ti()张量积产生不同的曲面?
的mgcv软件包R具有两个功能,用于拟合张量积相互作用:te()和ti()。我了解两者之间的基本分工(拟合非线性交互与将这种交互分解为主要效果和交互)。我不明白的是为什么te(x1, x2)而ti(x1) + ti(x2) + ti(x1, x2)可能产生(略)不同的结果。 MWE(改编自?ti): require(mgcv) test1 <- function(x,z,sx=0.3,sz=0.4) { x <- x*20 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+ 0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2)) } n <- 500 x <- runif(n)/20;z <- runif(n); xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30) pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30))) truth <- matrix(test1(pr$x,pr$z),30,30) f <- test1(x,z) y <- f + rnorm(n)*0.2 par(mfrow = c(2,2)) # …
11 r  gam  mgcv  conditional-probability  mixed-model  references  bayesian  estimation  conditional-probability  machine-learning  optimization  gradient-descent  r  hypothesis-testing  wilcoxon-mann-whitney  time-series  bayesian  inference  change-point  time-series  anova  repeated-measures  statistical-significance  bayesian  contingency-tables  regression  prediction  quantiles  classification  auc  k-means  scikit-learn  regression  spatial  circular-statistics  t-test  effect-size  cohens-d  r  cross-validation  feature-selection  caret  machine-learning  modeling  python  optimization  frequentist  correlation  sample-size  normalization  group-differences  heteroscedasticity  independence  generalized-least-squares  lme4-nlme  references  mcmc  metropolis-hastings  optimization  r  logistic  feature-selection  separation  clustering  k-means  normal-distribution  gaussian-mixture  kullback-leibler  java  spark-mllib  data-visualization  categorical-data  barplot  hypothesis-testing  statistical-significance  chi-squared  type-i-and-ii-errors  pca  scikit-learn  conditional-expectation  statistical-significance  meta-analysis  intuition  r  time-series  multivariate-analysis  garch  machine-learning  classification  data-mining  missing-data  cart  regression  cross-validation  matrix-decomposition  categorical-data  repeated-measures  chi-squared  assumptions  contingency-tables  prediction  binary-data  trend  test-for-trend  matrix-inverse  anova  categorical-data  regression-coefficients  standard-error  r  distributions  exponential  interarrival-time  copula  log-likelihood  time-series  forecasting  prediction-interval  mean  standard-error  meta-analysis  meta-regression  network-meta-analysis  systematic-review  normal-distribution  multiple-regression  generalized-linear-model  poisson-distribution  poisson-regression  r  sas  cohens-kappa 

3
我应该使用哪种算法将庞大的二进制数据集聚为几类?
我有一个很大的(650K行* 62列)二进制数据矩阵(仅0-1个条目)。矩阵大部分是稀疏的:大约占8%。 我想将其分为5组-从1到5命名。我尝试了层次化群集,但是它无法处理大小。考虑到长度为62的650K位向量,我还使用了基于汉明距离的k-means聚类算法。在这些情况下,我都没有得到正确的结果。 请帮忙。

3
两种高斯混合物之间的距离以评估聚类解
我正在运行一个快速仿真以比较不同的群集方法,并且目前遇到了尝试评估群集解决方案的障碍。 我知道各种验证指标(许多在R 中的cluster.stats()中找到),但是我假设如果估计的集群数量实际上等于集群的真实数量,则最好使用这些验证指标。我想保持一种能力,可以测量在原始模拟中未指定正确数量的聚类解决方案时聚类解决方案的性能(即,模拟为具有4个聚类的三个聚类解决方案模型数据的性能如何)解)。仅作为您的参考,对群集进行模拟以拥有相同的协方差矩阵。 我认为高斯的两种混合之间的KL散度将对实现有用,但是不存在封闭形式的解决方案(Hershey和Olson(2007年)),实现蒙特卡洛模拟的计算开始变得昂贵。 是否还有其他可能易于实现的解决方案(即使只是一个近似值)?

2
如何“智能化”分类数据的集合?
我正在尝试智能地对已排序的集合进行分类。我有条数据的集合。但我知道,这个数据拟合到不平等的大小分档。我不知道如何智能地选择端点以正确适合数据。例如:nnnmmm 假设我的收藏夹中有12件商品,并且我知道数据可以放入3个容器中: Index: 1 2 3 4 5 6 7 8 9 10 11 12 Value: 1 1 1 3 3 3 3 3 3 5 5 6 如何智能地为的bin选择断点?i={1−3},{4−9},{10−12}i={1−3},{4−9},{10−12}i = \{1-3\}, \{4-9\}, \{10-12\} 我目前的实现方式是将数据分成大小均匀的容器,然后取端点的平均值,以找到容器末端的索引。所以它是这样的: Index: 1 2 3 4 5 6 7 8 9 10 11 12 Value: 1 1 …

5
聚类是拆分数据以进行逻辑回归的一种方法
我正在尝试通过逻辑回归模型基于某些功能来预测学生的成败。为了提高模型的性能,我已经考虑过根据明显的差异将学生分为不同的组,并为每个组构建单独的模型。但是我认为可能很难通过考试来确定这些群体,因此我想通过根据学生的特征将学生分类。这是建立此类模型的常见做法吗?您是否建议我将其分为明显的组(例如,第一学期学生与回国学生),然后对这些组进行聚类,或者从一开始就聚类? 尝试澄清: 我的意思是说我正在考虑使用聚类算法将逻辑回归的训练集分成几组。然后,我将为每个组分别进行逻辑回归。然后,当使用Logistic回归预测学生的学习成绩时,我将根据他们最适合的群体选择要使用的模型。 也许我可以通过包含一个组标识符来做同样的事情,例如,如果学生要返回,则返回1,否则返回0。 现在,您让我开始思考,对训练数据集进行聚类并使用其聚类标签作为逻辑回归中的功能是否有利,而不是为每个总体建立单独的逻辑回归模型。 如果为回国学生和新生的学生添加组标识符很有用,扩展组列表是否也有用?群集似乎是执行此操作的自然方法。 我希望这很清楚...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.