我需要帮助 我正在研究机器学习。 我尝试使用以下代码导入数据集:
# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Importing the dataset
dataset = pd.read_csv('Rural3.csv', low_memory=False)
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 77].values
# Splitting the dataset into the Training set and Test set
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
# Feature Scaling
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
但是,出现错误: ValueError:输入包含无穷大或对于dtype('float64')而言太大的值
我该怎么办?我是python的新手。 预先感谢。
答案 0 :(得分:0)
如果数据值非常大,请尝试进行标准化。您可以找到更多信息here
答案 1 :(得分:0)
我建议您在用熊猫加载数据集后,查看是否具有空值:
dataset = dataset.dropna()
还要确保您的X值是数字,您可以使用dataset.describe()或dataset.info():
print(dataset.info()) # will give you info about the dataset columns
您还可以尝试更新sklearn,某些版本的sklearn中存在一个已知的错误(我不记得哪个)
# if you are using conda
conda install scikit-learn
# if you are using pip
pip install -U scikit-learn
答案 2 :(得分:0)
该错误有时会引起误解。 如果您在数据集中有空白值(这意味着数据集中的某些要素具有空白值),那么您仍然可以得到这种类型的错误。 我们如何解决这个问题...
compression_opts = dict(method='zip',archive_name='out.csv')
df.to_csv('out.zip', index=False, compression=compression_opts)
您也可以尝试
df[df['column_name'] == ''].index
通过分析输出CSV来识别具有空白值的特征。
通过以下代码删除具有空值的完整记录
df = df.dropna(subset=['column_name'])
答案 3 :(得分:0)
此解决方案效果很好,修复了电源转换时的错误
df =df[~df.isin([np.nan, np.inf, -np.inf]).any(1)]