R:聚类 - 如何预测新病例?

时间:2015-11-09 13:42:49

标签: r machine-learning r-caret supervised-learning unsupervised-learning

我在一组150名患者中有4000个(连续的)预测变量。 首先,应确定与生存相关的变量。因此,我使用多重测试程序函数(http://svitsrv25.epfl.ch/R-doc/library/multtest/html/MTP.html)和t统计量来测试Cox比例风险生存模型中的回归系数,以确定重要的预测因子。该分析确定了60个与生存显着相关的参数。然后,我使用ConensusClusterPlus包(https://www.bioconductor.org/packages/release/bioc/html/ConsensusClusterPlus.html)执行无监督的k均值聚类,该包将3个聚类识别为基于CDF曲线的最佳解决方案。进展图。如果我然后进行Kaplan-Meier生存分析,我发现三个簇中的每一个都与不同的生存模式(低/中/长存活)相关联。

我现在的问题如下: 让我们假设我有另外一组50名患者,我想预测每个患者最可能属于哪三组。我怎样才能做到这一点?我是否需要训练分类器(例如使用caret-package(topepo.github.io/caret/bytag.html),其中具有60个重要参数的150名患者在训练集中并且算法知道哪个患者被分配到三个集群中的哪一个)并验证了50名新患者的分类器?然后执行Kaplan-Meier生存分析,看看验证集(n = 50)中预测的集群是否再次与不同的生存模式相关联?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

答案要简单得多。你确实有你的k-means,有3个集群。每个聚类都由其质心(60维空间中的一个点)标识。为了"分类"新点你只测量到这三个质心中的每一个的欧氏距离,并选择最接近的簇。这就是全部。它直接来自这样一个事实:k-means为您提供整个空间的分区,而不仅仅是您的训练集。

答案 1 :(得分:0)

我的建议是使用群集编号作为结果来创建预测模型,例如随机森林。与预测使用群集中的距离相比,它将产生更好的结果。

原因有几个,但考虑到预测模型专门用于这样的任务,例如,它会保留并考虑可靠的变量(而在集群中,每个变量都会考虑相同)。