使用 MLR 包中的 makeRegrTask 函数时出错
Error using the makeRegrTask function from the MLR package
我正在尝试使用 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'.
我应该怎么做才能解决这个错误?在此先感谢您的帮助。
host
列包含字符(字符串)值,但 makeRegrTask
期望仅看到您作为 data
传入的任何内容中的响应变量和预测变量。
来自docs:
data
: A data frame containing the features and target variable
如果您打算 host
成为分类预测变量,则需要创建代表每个级别的虚拟变量。否则,在将 final1
传递给 makeRegrTask
之前删除 host
。
如果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
代码。在第一行中,您可以添加要转换为因子的列名称,以便将其传递给任务。第二个转换所有字符列。
我正在尝试使用 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'.
我应该怎么做才能解决这个错误?在此先感谢您的帮助。
host
列包含字符(字符串)值,但 makeRegrTask
期望仅看到您作为 data
传入的任何内容中的响应变量和预测变量。
来自docs:
data
: A data frame containing the features and target variable
如果您打算 host
成为分类预测变量,则需要创建代表每个级别的虚拟变量。否则,在将 final1
传递给 makeRegrTask
之前删除 host
。
如果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
代码。在第一行中,您可以添加要转换为因子的列名称,以便将其传递给任务。第二个转换所有字符列。