针对 "Input contains NaN, infinity or a value too large for dtype('float64')." 错误的适当操作
Appropriate action against "Input contains NaN, infinity or a value too large for dtype('float64')." error
我为 LGBM 机器学习准备了一个 csv 文件,并使用了以下代码。
X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=0.2, random_state=333 )
lgbm_wrapper = LGBMClassifier(n_estimators=400)
evals = [(X_test, y_test)]
lgbm_wrapper.fit(X_train, y_train, early_stopping_rounds=100,
eval_metric="logloss", eval_set=evals, verbose=True)
preds = lgbm_wrapper.predict(X_test)
pred_proba = lgbm_wrapper.predict_proba(X_test)[:, 1]
但是我遇到了这样的问题
/usr/local/lib/python3.7/dist-packages/sklearn/utils/validation.py in
_assert_all_finite(X, allow_nan, msg_dtype)
104 msg_err.format
105 (type_err,
--> 106 msg_dtype if msg_dtype is not None else
X.dtype)
107 )
108 # for object dtype data, we only check for NaNs (GH-13254)
ValueError: Input contains NaN, infinity or a value too large for
dtype('float64').
为了解决这个问题,我先检查了数据的数据类型
Date object
A float64
B int64
C int64
D float64
E float64
F float64
G float64
H object
dtype: object
X.dropna() 也经过预处理以消除与 NaN 相关的值。但是,仍然会出现与 float63 相关的错误。我需要一点帮助。
我的数据是这样的
当使用 dropna 时,您确实知道 X.dropna() 不正确,我希望删除 NA 您为其中的索引执行了 X = X.dropna() drop X drop 相应的索引在 target 中。
我为 LGBM 机器学习准备了一个 csv 文件,并使用了以下代码。
X_train, X_test, y_train, y_test=train_test_split(X, y, test_size=0.2, random_state=333 )
lgbm_wrapper = LGBMClassifier(n_estimators=400)
evals = [(X_test, y_test)]
lgbm_wrapper.fit(X_train, y_train, early_stopping_rounds=100,
eval_metric="logloss", eval_set=evals, verbose=True)
preds = lgbm_wrapper.predict(X_test)
pred_proba = lgbm_wrapper.predict_proba(X_test)[:, 1]
但是我遇到了这样的问题
/usr/local/lib/python3.7/dist-packages/sklearn/utils/validation.py in
_assert_all_finite(X, allow_nan, msg_dtype)
104 msg_err.format
105 (type_err,
--> 106 msg_dtype if msg_dtype is not None else
X.dtype)
107 )
108 # for object dtype data, we only check for NaNs (GH-13254)
ValueError: Input contains NaN, infinity or a value too large for
dtype('float64').
为了解决这个问题,我先检查了数据的数据类型
Date object
A float64
B int64
C int64
D float64
E float64
F float64
G float64
H object
dtype: object
X.dropna() 也经过预处理以消除与 NaN 相关的值。但是,仍然会出现与 float63 相关的错误。我需要一点帮助。
我的数据是这样的
当使用 dropna 时,您确实知道 X.dropna() 不正确,我希望删除 NA 您为其中的索引执行了 X = X.dropna() drop X drop 相应的索引在 target 中。