해결된 질문
작성
·
339
0
안녕하세요, 정성스레 만들어주신 강의 완강하고 다회차 복습중입니다.
이곳에 질문올려도 되는 것인지 모르겠는데 맨땅으로 시작하다 보니 복습하면서 작업형2 내용에 대한 전반적으로 자잘하게 궁금한 점이 있어 문의드립니다.
1. 기출 회차별로 최초 데이터가 3개가 주어지는 경우, 2개가 주어지는 경우가 있는데요.
3개가 주어지는 상황에서 X_train, X_test 값의 고유값- unique() 개수가 다른 경우 데이터를 합친 뒤 작업을 진행해야 한다고 말씀주셨는데요.
- 이 경우 데이터를 합치는 작업(concat)은 원핫인코딩/라벨인코딩의 오류를 막기 위한 것 같은데 맞게 이해한 것일까요?
- 인코딩 작업을 하지 않느다면 데이터 합치는 작업을 건너뛰어도 되는 것일까요? 혹은 반드시 데이터를 합쳐서 작업해야 하는 경우가 또 있을까요?
2. 원핫인코딩과 라벨인코딩을 각각 어떤 상황에 사용해야 하는지 감이 잡히질 않아서요.
cols = train.select_dtypes(include='O').columns
위와 같이 범주형 데이터를 단순히 통으로 묶어서 작업을 해도 되는 것인지
몇몇 강의에서처럼 일부 범주형 컬럼들만 선택해서 사용을 해야 하는 것인지(이때 컬럼 선택 기준이 있을지)
궁금합니다.
3. 강의에서는 데이터 전처리 과정 결측치 처리 외 이상치 처리에 대한 내용은 비교적 간단히 설명해주시고 넘어가 주셨는데요.
(IQR 이나 '나이' 컬럼이 음수인 경우 정도)
- 캐글을 통해 추가적인 방법론을 익혀두어야 할까요?
- 분류든 회귀든 예측한 결과값의 평가점수가 꼭 높지 않아도 전체적인 절차가 문제 없었다면 넘어가도 무방할까요?
4. 문제에서 요구하는 값에 따라 모델링 작업에서
model=randomforestClassifier()
pred = model.predict(test) 또는 pred = model.predict_proba(test)
위와 같이 predict를 사용하는지 predict_proba를 사용하는지 달라지던데요.
(분류문제일 경우) 검증 방법에서 roc_auc_score는 predict_proba를
accuracy_score, precision_score, recall_score, f1_scoe 는모두 predict 결과를 사용하시더라고요.
predict 값을 요구하는 문제라면 검증방법도 predict를 사용하는 것인지
이와 별개로 roc_auc_score와 그 외 검증 방법은 predict/predict_proba 사용방법이 고정된 것인지 궁금합니다.
답변 1
0
오해가 있는 것 같아요
데이터가 3개일 때 합치는 축은 axis=1 입니다. X_train과 y_train이 옆으로 합쳐집니다.
인코딩때 합치는 축은 axis=0입니다. X_train과 X_test이 위아래로 합쳐집니다.
인코딩시 반드시 합쳐야하는 것은 절대 아니에요~ train에는 사과 배 딸기가 있고 test에는 수박 사과 가 있을 때 카테고리(종류)가 달라 각각 진행했을 때 에러가 발생 합니다. 이때는 합쳐서 진행하라고 말했습니다.
(합쳤을 때 데이터 누수라는 문제점도 있지만 이부분은 빅분기에서는 고려사항이 아니어서 생략하겠습니다)
모르겠으면 하나만 통으로 쓰세요:) 라벨이던 원핫이던 하나만 사용해주세요 큰 차이가 벌어지진 않아요
네 맞습니다 검증도 동일한 평가지표와 방식으로 해주면됩니다.
roc_auc_score 수식 상 predict 값으로 넣어도 에러발생은 없습니다. 다만 성능이 많이 떨이지게 나올 겁니다.
답변 감사합니다! 잘 적용하여 남은 기간 열심히 복습하겠습니다!