我目前正在从事一个项目,在该项目中我必须进行一些功能选择以构建预测模型。我被引到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/