본문 바로가기
개발/AI

(AI) ValueError: Input X contains NaN

by gomdeng 2024. 12. 27.

🐶 에러

특정 컬럼에 대한 결측치 대체값을 상관관계 높은 변수로 예측하여 넣는 과정에서  다음과 같은 에러가 발생했다.

✔️ 입력 예시
# LSTAT 결측값이 있는 행과 없는 행 분리
df_with_na = df[df["LSTAT"].isnull()]
df_without_na = df[df["LSTAT"].notnull()]

# 상관관계 높은 변수 선택
correlated_features = ["MEDV", "INDUS", "NOX", "AGE", "TAX"]

# 회귀 모델 학습
model = LinearRegression()
X_train = df_without_na[correlated_features]
y_train = df_without_na["LSTAT"]
model.fit(X_train, y_train) 💣에러 발생


✔️ 에러
ValueError: Input X contains NaN.  an inplace method.
LinearRegression does not accept missing values encoded as NaN natively

 

🐶 내용

LinearRegression 모델에서 입력 데이터(X_train 또는 X_pred)에 NaN 값이 포함되어 있을 때 발생
💣 해당 예시의 경우,  ["INDUS", "AGE"] 데이터에 NaN 값이 포함됨

 

🐶 조치

NaN 데이터 결측값 처리
df['INDUS'] = df['INDUS'].fillna(df['INDUS'].median())
df['AGE']   = df['AGE'].fillna(df['AGE'].median())