在R中使用mRMRe

我目前正在进行一个项目,需要进行特征选择来构建预测模型。我被引导到一个名为mRMRe的R包。我只是尝试运行示例,但无法使其工作。示例可以在这里找到。

这是我的代码 –

data(cgps)data <- data.frame(target=cgps.ic50, cgps.ge)mRMR.ensemble(data, 1, rep.int(1, 30))

当我运行这段代码时,我得到了以下错误 –

Error in .local(.Object, ...) : data must be of type mRMRe.Data.

我进一步研究后发现,实际上需要将数据转换为mRMR.Data类型。所以我做了以下更新 –

# Updatedata <- mRMR.data(data = data.frame(target=cgps.ic50, cgps.ge))mRMR.ensemble(data, 1, rep.int(1, 30))

但我仍然得到相同的错误。当我查看数据的类别时 –

> class(data)[1] "mRMRe.Data"attr(,"package")[1] "mRMRe" 

所以数据已经是请求的类型,但代码仍然无法运行。

我的问题是,如果有人有使用这个包的经验,或者有任何帮助或评论,我将不胜感激!

还想指出,在链接中的示例中 – 当我加载数据时

cgps_ic50 -> cgps.ic50cgps_ge -> cgps.ge

所以数据的名称与示例中的名称不一样。


回答:

根据您编写的代码:

data(cgps)data <- mRMR.data(data = data.frame(target=cgps.ic50, cgps.ge))mRMR.ensemble(data, 1, rep.int(1, 30))

函数mRMR.ensemble接收数据作为第一个参数,但该函数的默认第一个参数是solution_count。

我理解您执行该示例的意图是使用经典的mRMR特征选择算法找到30个相关且非冗余的特征,因此请尝试这样做:

data(cgps)data <- mRMR.data(data = data.frame(target=cgps.ic50, cgps.ge))mRMR.ensemble(data = data, target_indices = 1,               feature_count = 30, solution_count = 1)

target_indices是原始数据框中用于最大化相关性(相关性或其他质量度量)的特征的位置,因此最终选择的特征将有助于解释target_indices中指示的特征。例如,在分类问题中,我们会选择类变量的位置作为target_indices参数的值。

feature_count参数表示要选择的变量数量。

solution_count不是经典mRMR的参数。它表示要组合的mRMR算法的数量,以获得最终的特征选择,因此如果设置为1,则仅执行一个经典mRMR。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注