0

我之前发布过类似的问题(带有 tpot 的分类数据)。感谢 Randy,我能够让代码运行,但现在我在几个小时后停止了它,我收到了类似的错误:

  File "XXXXXXXX", line 832, in score
    if np.any(np.isnan(testing_features)):

TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

我不确定我是否错误地停止了它(我只是在 spyder 中按了ctrl+ c)或者还有其他问题。我确保数据都是数字的,包括特征标题。知道可能是什么问题吗?

这是我正在运行的代码:

train_x, test_x, train_y, test_y=train_test_split(x,y)
train_x=pd.get_dummies(train_x).values
from tpot import TPOTRegressor

regressor=TPOTRegressor()
regressor.fit(train_x,train_y)
print(regressor.score(test_x,test_y))

我不知道如何显示训练和测试数组的内容。train_x 是一个尺寸 (2400,62) float64 和 train_y 是一个 (2400,) 尺寸系列。

4

2 回答 2

1

使用第一个解决方案给了我以下错误,

x_train = x_train.astype(np.float64)
x_test = x_test.astype(np.float64)
ValueError: setting an array element with a sequence.

将特征转换为 numpy 数组对我来说是诀窍。即使它们最初是 numpy 数组

x_train = np.array(list(x_train), dtype=np.float)
x_test = np.array(list(x_test), dtype=np.float)

于 2020-01-31T21:08:15.273 回答
0

出于某种原因,TPOT 返回与isnan错误类型相关的错误。确保您的功能转换为浮点数:

X = X.astype(np.float64)
于 2018-11-14T05:04:15.383 回答