在尝试运行随机森林回归模型时,不断收到错误"输入包含NaN、无穷大或对dtype('float32'(太大的值"。我已经搜索了我的数据集,但看不到任何无限值或NaN。有什么建议吗?
[96] df.replace([np.inf, -np.inf], np.nan, inplace=True)
[98] df.fillna('mean', inplace=True)
[100] model = RandomForestRegressor()
model.fit(X_train, y_train)
如有任何建议,我们将不胜感激,如有需要,请提供更多详细信息。
感谢
你检查过这个答案吗?https://datascience.stackexchange.com/questions/11928/valueerror-input-contains-nan-infinity-or-a-value-too-large-for-dtypefloat32
或者,错误表明数字可能对dtype("float32"(太大,您可以尝试将它们转换为dtype("float64"(,因为这将允许在内存中存储更大的数字。
如果数据集中的最大数字是91,我将尝试重新定义X_train和y_train以进行故障排除。
X_train_new = []
for num in X_train:
if num > 91 or num < -100:
print('X_train', str(num))
break
X_train_new.append(float(num))
y_train_new = []
for num in y_train:
if num > 91 or num < -100:
print('y_train', str(num))
break
y_train_new.append(float(num))
model.fit(X_train_new, y_train_new)
根据X_train和y_train的形状(我现在假设为一维(,您可能需要将上述代码自定义为正确的形状。但你明白了吗?
此外,您可能还需要定义下限,即,如果数字小于-100,例如