Tpot isnan错误

时间:2018-04-17 18:58:35

标签: python tpot

我之前发布过类似问题(Categorical Data with 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,)大小的系列。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

由于某种原因,TPOT返回与isnan相关的错误。确保将要素转换为浮点数:

X = X.astype(np.float64)