![](/img/trans.png)
[英]Python input contains NaN, infinity or a value too large for dtype float32
[英]"Input contains NaN, infinity or a value too large for dtype('float32')There are no Nan or blanks in my data set but still wont let me proceed
嘗試運行隨機森林回歸器 model 時,不斷收到錯誤“輸入包含 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)
任何建議將不勝感激,如果需要,請索取更多詳細信息。
謝謝
或者,錯誤表明數字對於 dtype('float32') 可能太大,您可以嘗試將它們轉換為 dtype('float64'),因為這樣可以將更大的數字存儲在 memory 中。
如果數據集中最大的數是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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.