- 머신러닝을 할 때 전처리 과정부터 머신러닝 파이프라인에 포함해서 진행해야 하나요?
데이터 전처리를 하기 전에 먼저 train/test split을 하는 것이 맞나요?
원칙대로라면 전처리 2,3(어쩌면 1번까지도..)번 포함 대부분 전처리는 split 후에 해야 하긴 함. 원칙대로라면!
그러나 실무에서 굳이 분리하지 않고 주어진 데이터로 지금처럼 전처리 다 해놓고 해도 됨.
나중에 새로 들어올 데이터가 test 데이터가 될 수 있기 때문.
전체적으로 하나의 흐름을 연습하고 싶다면 디테일한 원칙까지 엄격히 따져서 할 건 아니긴 함. 애매~
변수명 앞뒤 공백 제거 : test data에서는 오히려 공백을 제거하면 안 되는 상황일 수도 있는 보수적인 상황 고려!!! 이런 상황은 거의 없긴 함. 실무에서의 상황이 어떠한가에 따라 너무 달라짐..
train test split 하는 기본 원리만 알면 됨. 데이터 누수 리스크 배제
- EDA는 전체 데이터로 진행하는 건가요, 아니면 train 데이터만 사용해서 진행해야 하나요?
EDA는 train data로만 하는 게 맞음.
- split 전에 수행해도 되는 전처리는 어디까지인가요? 예: 컬럼명 정제(여백 제거 등)
더 세부적으로 측정 불가능한 단위가 있을 수 있고, 측정 시간(e.g. id)과 단위가 세밀하게 나뉘지 않은 경우
id는 달라도 그 시간 동안 계속 같은 값만 들어갈 수 있음
수집과정에서 발생한 문제. 중복데이터 처리!
- 중복데이터를 제거하면 절반이 줄어드는데 이렇게 많이 줄어들어도 괜찮은건가요?
2번 3번이 고장의 강도에 따라 나뉜 걸로 알고 있음.
고장인지 아닌지 이진분류로 보고 있다면 1로 봐도 괜찮음.
그런데 2번 3번이 고장과는 별개인 제 3 요인인 경우 문제가 될 수 있음. 다중분류 상황임.
그리고 라벨링이 test data에서는 완전 다른 라벨링이 생길수도 있음.
지금 데이터는 무조건 라벨링이 고정(고장인 경우는 1,2,3 중에 하나)되어있고, 앞으로 얻을 데이터도 새로운 라벨링이 생기지 않는다는 가정 하에서는 split 전에 미리 해도 괜찮음.
지금까지의 전처리
변수명 앞뒤 공백 제거
센서 데이터(Sensor 변수)의 이상치 탐색 및 처리 ★★
: 결측치는 중앙값으로 넣음 → median :: split 후에 처리하는 걸 고려할 필요 있음
불량 유형 컬럼(Defects)에서 2 or 3 → 1로 변경 ★
(이진분류법) : 원칙대로 하자면 split 후 고려할 필요 있음(특히 비지도 학습). 그러나 이미 라벨링을 뭘 할지 다 정해진 상황이라 미리 해도 okay~ (지도 학습)
새로운 파생 변수 컬럼 생성 (불량인지 아닌지 판단하는 컬럼) : 미리 해도 okay~
type별 데이터 분리 : 미리 해도 okay~
→ 중복데이터 처리가 된 csv 파일을 type1, type2 로 만듦 - 민준
쌍봉 아닌 세 개의 봉이 생기는 것과 같은 상황이 발생할 수 있는 경우엔 나중에 해야 함
상황에 따라 달라지는 것..