簡體   English   中英

ValueError:輸入包含 NaN、無窮大或對於線性回歸中的 dtype('float64') 而言太大的值

[英]ValueError: Input contains NaN, infinity or a value too large for dtype('float64') in linear regression

誰能幫我解決這個問題?

我嘗試重置索引,但沒有幫助。

Python 3.7版

代碼:

import pandas as pd
import numpy as np
housing = pd.read_csv('housing.csv')
X = housing.iloc[:, housing.columns !='median_house_value'].values
y = housing.iloc[:, 9].values
print(X[0])


housing.head()


from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.linear_model import LinearRegression


labelencoder = LabelEncoder()
X[:, 8] = labelencoder.fit_transform(X[:, 8])


print(X[0])


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)


regressor = LinearRegression()
regressor.fit(X_train,y_train)
#testing/predicting using test set
y_pred = regressor.predict(X_test)
print(y_pred)

我在 regressor.fit() 方法中遇到錯誤。

錯誤圖像

好的,所以我找到了一個答案,即缺少一些數據,更准確地說是空單元格。 如果您遇到此類錯誤,這是解決方案。

  1. 檢查空單元格

    運行dataframename.isnull().sum() (用您的 dataframe 名稱方法替換dataframename到您的 dataframe。

    這將向您顯示哪些列中有空單元格或 NaN 單元格。

  2. 刪除空單元格

    運行dataframename = dataframename.dropna()以刪除空單元格。

    檢查此站點以獲取更多過濾器https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.ZFC35FDC70D5FC69D2639883A822CA7

  3. 確認它

    運行dataframename.isnull().sum()檢查是否有空單元格。

就這樣完成了。! 現在繼續您的程序的剩余部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM