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