在 R 中使用 mRMRe

Using mRMRe in R

我目前正在从事一个项目,我必须在该项目中进行一些特征选择以构建预测模型。我被引导到一个名为 mRMRe 的 R 包。我只是想尝试这个例子,但无法让它发挥作用。这个例子可以在这里找到 - http://www.inside-r.org/packages/cran/mRMRe/docs/mRMR.ensemble.

这是我的代码 -

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类型。所以我做了这个更新 -

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

但我仍然遇到同样的错误。当我查看 class 时,我有 -

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

因此数据是请求的类型,但代码仍然无法正常工作。

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

还要注意,在 link 的示例中 - 当我加载数据时

cgps_ic50 -> cgps.ic50
cgps_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。

我了解到您执行该示例的意图是使用 classic 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是用来最大化相关性(correlation or other quality measure for this issue)的特征在原始data.frame中的位置,所以最后选择的特征会很好用于解释 target_indices 中指示的功能。 例如,在 class 化问题中,我们会选择 class 变量的位置作为 target_indices 参数的值。

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

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