symbolicRegressor的Y_train值

时间:2018-09-18 08:14:12

标签: python-3.x genetic gplearn

我将数据集拆分为X_trainY_trainX_testY_test,然后使用了symbolicRegressor ...

我已经将Dataframe中的字符串值转换为浮点值。 但是应用symbolicRegressor会出现此错误:

  

ValueError:无法将字符串转换为float:'d'

'd'是Y中的值。

由于我在Y_trainY_test中的所有值都是字母字符,因为它们是“标签”,所以我不明白为什么symbolicRegressor试图获取浮点数.. < / p>

有什么主意吗?

2 个答案:

答案 0 :(得分:0)

根据https://gplearn.readthedocs.io/en/stable/index.html-“符号回归是一种旨在识别最能描述关系的基础数学表达式的机器学习技术”。注意mathematical。我对问题的话题不太擅长,gplearn的描述也没有明确定义适用范围/限制范围。

但是,根据源代码https://gplearn.readthedocs.io/en/stable/_modules/gplearn/genetic.htmlfit()类的方法BaseSymbolic包含行X, y = check_X_y(X, y, y_numeric=True),其中check_X_y()sklearn.utils.validation.check_X_y()。参数y_numeris的意思是:“是否确保y具有数字类型。如果y的dtype是对象,则将其转换为float64。应仅用于回归算法。”

因此y的值必须是数字。

答案 1 :(得分:0)

很抱歉重播。 gplearn支持使用SymbolicRegressor估计量进行回归(数字y),而对于新发布的gplearn 0.4.0,我们也支持使用SymbolicClassifier进行二进制分类(y中的两个标签)。不过从事态发展来看,您遇到了gplearn当前不支持的多标签问题。这可能是我们将来希望支持的事情。