我目前正在从事一个项目,在该项目中我必须进行一些功能选择以构建预测模型。我被引到R中一个名为mRMRe的程序包。我只是在尝试该示例,但无法使其正常工作。可以在此处找到示例-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(data)
[1] "mRMRe.Data"
attr(,"package")
[1] "mRMRe"


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

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

还需要注意的是,在链接示例中-当我加载数据时

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。

我了解您执行该示例的意图是使用经典的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是要素在原始data.frame中的位置,用于最大化相关性(针对此问题的相关性或其他质量度量),因此最后选择的要素将有助于解释target_indices中指示的要素。
例如,在分类问题中,我们将选择类变量的位置作为target_indices参数的值。

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

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

关于r - 在R中使用mRMRe,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36502796/

10-09 03:04