【问题标题】:Error using the makeRegrTask function from the MLR package使用 MLR 包中的 makeRegrTask 函数时出错
【发布时间】:2018-10-22 13:19:09
【问题描述】:

我正在尝试使用 MLR 包进行特征选择。这是我的代码:

#Feature Extraction
features.task = makeRegrTask(id = "cr", data = final1, target = "spam")
feature_selection= generateFilterValuesData(features.task, method = "information.gain")
plotFilterValues(feature_selection)

这是我得到的错误:

> features.task = makeRegrTask(id = "cr", data = final1, target = "spam")
Error in (function (cn, x)  : 
  Unsupported feature type (character) in column 'host'.

我应该怎么做才能解决这个错误?提前感谢您的帮助。

【问题讨论】:

    标签: r machine-learning data-mining feature-selection


    【解决方案1】:

    如果host 是一个字符变量,那么您应该首先将它转换为一个因子。 mlr可以处理因素。

    可能的代码是:

    data = final1 %>% mutate_at(vars(one_of("host")), funs( as.factor)) 
    data = final1 %>% mutate_if(sapply(data_test, is.character), as.factor)
    

    请注意,这是dplyr 代码。在第一行中,您可以添加要转换为因子的列名,然后将其传递给任务。第二个转换所有字符列。

    【讨论】:

      【解决方案2】:

      host 列包含字符(字符串)值,但makeRegrTask 只希望看到您作为data 传入的任何内容中的响应变量和预测变量。

      来自docs

      data:包含特征和目标变量的数据框

      如果您打算将host 用作分类预测器,则需要创建代表每个级别的虚拟变量。否则,请在将 final1 传递到 makeRegrTask 之前删除 host

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多