输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值。解决办法是啥

Posted

技术标签:

【中文标题】输入包含 NaN、无穷大或对于 dtype(\'float64\') 来说太大的值。解决办法是啥【英文标题】:Input contains NaN, infinity or a value too large for dtype('float64'). What is the solution输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值。解决办法是什么 【发布时间】:2020-12-24 23:07:41 【问题描述】:

从时间导入时间 从 sklearn.metrics 导入 f1_score

def train_classifier(clf, X_train, y_train): ''' 使分类器适合训练数据。 '''

# Start the clock, train the classifier, then stop the clock
start = time()
clf.fit(X_train, y_train)
end = time()

# Print the results
print("Trained model in :.4f seconds".format(end - start))

def predict_labels(clf, features, target): ''' 使用基于 F1 分数的拟合分类器进行预测。 '''

# Start the clock, make predictions, then stop the clock
start = time()
y_pred = clf.predict(features)

end = time()
# Print and return results
print("Made predictions in :.4f seconds.".format(end - start))

return f1_score(target, y_pred, pos_label='H'), sum(target == y_pred) / float(len(y_pred))

def train_predict(clf, X_train, y_train, X_test, y_test): ''' 使用基于 F1 分数的分类器进行训练和预测。 '''

# Indicate the classifier and the training set size
print("Training a  using a training set size of . . .".format(clf.__class__.__name__, len(X_train)))

# Train the classifier
train_classifier(clf, X_train, y_train)

# Print the results of prediction for both training and testing
f1, acc = predict_labels(clf, X_train, y_train)
print(f1, acc)
print("F1 score and accuracy score for training set: :.4f , :.4f.".format(f1 , acc))

f1, acc = predict_labels(clf, X_test, y_test)
print("F1 score and accuracy score for test set: :.4f , :.4f.".format(f1 , acc))

clf_A = LogisticRegression(random_state = 42) train_predict(clf_A, X_train, y_train, X_test, y_test) 打印('')

【问题讨论】:

整个代码请使用代码标签。你什么时候会得到错误?你有更详细的错误信息吗?我们可以自己获取数据进行测试吗? 【参考方案1】:

您只是将数据拆分为测试/训练,然后将数据拟合到模型中,这就是为什么它会给您错误“输入包含 Nan 值”。

首先,您需要在使用 pandas 读取数据集后应用预处理以删除数据集中的 Nan 值。然后转向拆分数据,然后构建模型。

为此,您可以关注Link

【讨论】:

【参考方案2】:

我不知道这是否解决了问题, 尝试使用以下方法删除具有缺失值的条目:

YOUR_DATAFRAME.dropna()

【讨论】:

以上是关于输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值。解决办法是啥的主要内容,如果未能解决你的问题,请参考以下文章

GridSearchCV():ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值

SVM ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值

如何解决:ValueError:输入包含 NaN、无穷大或对于 dtype('float32') 来说太大的值?

StandardScaler -ValueError:输入包含 NaN、无穷大或对于 dtype('float64')来说太大的值

Jupiter Notebook:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值

sklearn错误ValueError:输入包含NaN,无穷大或对于dtype('float64')来说太大的值