ValueError:输入包含 NaN、无穷大或对于 dtype('float32')来说太大的值。随机森林运行


#fill -999 to NAs
X = X_train.fillna(-999)
y = y_train.fillna(-999) 
import lightgbm as lgb
import xgboost as xgb
NFOLDS = 8
folds = KFold(n_splits=NFOLDS)
#====================================
xgb_submission=sample_submission.copy()
xgb_submission['isFraud'] = 0
import xgboost as xgb
from sklearn.metrics import roc_auc_score
for fold_n, (train_index, valid_index) in enumerate(folds.split(X)):
X_train_, X_valid = X.iloc[train_index], X.iloc[valid_index]
y_train_, y_valid = y.iloc[train_index], y.iloc[valid_index]
#xgbclf.fit(X_train_,y_train_)
rf_clf1 = RandomForestClassifier(n_estimators=300, max_depth = 10, min_samples_leaf=8, 
min_samples_split=8, random_state=0)
rf_clf1.fit(X_train,y_train_)
pred = rf_clf1.predict(X_test)
print(pred)

我检查了 X 或 y 是否有任何 Nan 但没有
,但它给出了 ValueError 的错误:输入包含 NaN、无穷大或对于 dtype('float32'( 来说太大的值。

> print(type(X),type(y)) 
> <class 'pandas.core.frame.DataFrame'> <class'pandas.core.series.Series'>

此错误何时实际出现 - 在分配X_train_、X_valid值或将数据集拟合到 RandomForest 算法时?

我还从代码中看到,在第一轮中您定义了数据帧X_train_

**X_train_**, X_valid = X.iloc[train_index], X.iloc[valid_index]

而您将rf_clf1对象拟合到另一个数据集(即:X_train(

rf_clf1.fit(X_train,y_train_)

所以这里变量名称中缺少的_也可能是这种情况。

最新更新