输入包含 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')来说太大的值