해결된 질문
작성
·
247
0
cols = list(X_train.columns[X_train.dtypes != object])
print(cols)
for col in cols:
Q1 = X_train[col].quantile(0.25)
Q3 = X_train[col].quantile(0.75)
IQR = Q3 - Q1
min_iqr = Q1 - 1.5*IQR
max_iqr = Q3 + 1.5*IQR
X_train.loc[X_train[col]<min, col] = min_iqr
X_train.loc[X_train[col]>max, col] = max_iqr
print(X_train)
이렇게 하고 X_test도 똑같이 해도 될까요?
답변 1
1
아니요! 테스트에 이렇게 적용하면 0점입니다 테스트 데이터의 행(레코드)는 삭제되면 절대 안됩니다
iqr 이상치 처리가 좋을 때도 있는데 데이터에 따라 너무 많은 데이터가 삭제되기도 해요~
이상치 처리는 문제에 명시된 것이나 나이(age)처럼 누구나 알 수 있는 것이 아니면 권장하지 않습니다