사실 전처리를 배우면서 가장 궁금했던 부분이다
결측치나 이상치 같은 데이터를 처리하는 것은 이해할 수 있다
애초에 데이터 자체가 잘못되었기 때문에, 이를 임의로 처리하는 것은 올바르다고 생각한다
이해가 가지 않았던 부분은 데이터 변환 단계의 피쳐 엔지니어링 이었다
중요하지 않은 feature를 제외하고, 때로는 분리하기도 하는 등 데이터를 가공하는 작업을 말한다
강의를 듣다보니, Date feature를 년 / 월 일로 나눠보고, 별 의미없는 feature는 다시 없애버리는 등의 작업을 진행하는 것을 보았다
이것을 보고 다음의 의문이 떠나가질 않았다
- 그런데 그렇게 마음대로 바꿔도 되는 걸까?
- 발견하지 못했을 뿐, 어딘가에서 의미있는 변수이지 않을까?
- 중요한 feature를 +라고 하고 중요하지 않은 feature를 -라고 한다면,
제외된 feature도 있는 편이 좀 더 정확한 결과가 나오지 않을까?
. . .
그러나 곧 이것은 머신러닝 학습 방식을 생각하지 않았음을 깨달았다
처음으로 돌아가서 생각을 해보았다. 우린 무엇 때문에 데이터를 정리하는 걸까?
분석과 모델링에 유용한 데이터를 전달하기 위해서이다
앞선 머신러닝이란?에서 봤듯이, 지도학습의 경우엔 좋은 데이터를 얻는 것이 중요하다
이 경우 좋은 데이터란 단순히 데이터 정리(Cleaning)만을 의미하는 것이 아니다
feature와 target 사이의 관계가 명확한 데이터들이 중요하다
때문에 별로 영향을 끼치지 못하는 feature라면 제외하는 것이다
A) 반대로 생각해보자. 명확하지 않은 데이터가 왜 필요할까?
내 경우, 곰곰히 생각해보니 "혹시나 규칙이 있을 수도 있으니까" 였다
하지만 이런 생각은 잘못되었다고 생각한다
지도학습은 우리가 알려주는 것 이외의 규칙을 찾아내진 못한다
우리가 관계있다고 가정한 feature들을 가지고 예측하여, 사람이 하기 어려운 일을 도와준다던가
예측 근거에 신빙성을 더해주는 일을 한다
즉, 제공한 규칙을 그대로 학습해서 예측하기 때문에, 규칙이 명확하게 보이는 데이터를 제공하는 것이 중요하다