0

我将我的数据集拆分为X_train、和Y_train,然后我使用了 symbolicRegressor ...X_testY_test

我已经将 Dataframe 中的字符串值转换为浮点值。但是通过应用symbolicRegressor我得到这个错误:

ValueError:无法将字符串转换为浮点数:'d'

其中“d”是来自 Y 的值。

由于我在Y_train和中的所有值Y_test都是字母字符,因为它们是“标签”,所以我不明白为什么要symbolicRegressor尝试获取浮点数..

任何的想法?

4

2 回答 2

0

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

但是,根据类的源代码https://gplearn.readthedocs.io/en/stable/_modules/gplearn/genetic.html方法fit()包含BaseSymbolicX, y = check_X_y(X, y, y_numeric=True)where check_X_y()is sklearn.utils.validation.check_X_y()。参数y_numeris意思是:“是否保证y是数值类型。如果y的dtype是object,则转换为float64。应该只用于回归算法”。

所以y值必须是数字。

于 2018-09-18T14:57:49.970 回答
0

抱歉重播晚了。gplearn使用估计器支持回归(数字 y)SymbolicRegressor,并且在新发布的版本gplearn 0.4.0中,我们还支持使用SymbolicClassifier. 但是,从事物的声音来看,您有一个gplearn当前不支持的多标签问题。这可能是我们希望在未来支持的东西。

于 2019-04-25T06:13:03.740 回答