-
Notifications
You must be signed in to change notification settings - Fork 6
Description
참고한 Comprehensive data exploration with Python 노트북에 해당 내용이 있습니다.
결측치가 15% 이상인 데이터는 삭제하여 존재하지 않는 데이터로 만든다고 명시되어 있습니다.
그 중 결측치가 99퍼센트 수준인 PoolQC(수영장 수질)도 제거하는 것으로 설명되어 있습니다. 하지만 데이터에 대한 설명이 들어있는 data_description.txt를 확인해본 결과, NA로 표시된 결측치는 수영장이 없을 경우 결측치로 표시하는 것으로 확인했습니다.
즉 99%의 데이터는 결측치로 표시되어있지만 실제로는 결측치가 아닌 데이터이기에 정제와 전처리 과정을 거치면 충분히 활용가능한 데이터가 됩니다.
물론 해당 데이터셋에서는 이 데이터를 남기더라도 연관된 수영장 면적(PoolArea)이 다중공선성(Multicollinearity) 문제를 일으키고, PoolQC를 삭제하는 것은 결론적으로 옳은 판단이 된다는 것을 AI의 도움을 통해 알아냈습니다.
하지만 위의 사례를 통해 특성이 매우 많은 데이터를 다룰 때(특성들의 특징들을 일일히 파악하기 어려울 정도의 양) 정제와 전처리 과정을 거친다는 것은 매우 위험한 과정이라고 생각했습니다.
만약 변수의 의미를 충분히 해석하지 않은 상태에서 기계적으로 제거할 경우, 중요한 패턴을 놓칠 가능성도 존재한다고 생각합니다.
PoolQC와 같이 결측치로 보이지만 실제로는 특정 의미(예: 수영장의 부재)를 가지는 경우, 이를 단순 결측으로 간주하고 삭제하는 것은 정보 손실로 이어질 수 있다고 생각함
변수의 수가 매우 많은 상황에서는 모든 변수의 의미를 일일이 파악하는 것이 현실적으로 어렵기 때문에, 일정 기준을 기반으로 한 자동화된 정제 과정이 필요하다고 생각합니다만 이러한 과정이 오히려 중요한 정보를 제거하는 결과를 초래할 수도 있다는 점에서, 중요한 변수를 보존하기 위한 실무적인 기준이나 접근 방법은 무엇인지 궁금합니다.