강의 잘 듣고 계시다니 감사합니다 😊 순서가 정해진 건 아니고, 순서가 달라져도 됩니다. 저도 코딩때마다 다르나 자격증을 준비하는 수험생에게는 한 두 가지 방법을 알려드리고 있어요. 만약 더 깊이 공부한다면 순서를 외우기 보다 각 작업의 이해가 필요합니다. 순서는 자격증 시험을 위한 용도입니다. 예를 들어 타겟을 꼭 먼저 분리해야하는 것도 아니에요! 그런데 타겟이 분리되지 않은채로 인코딩이나 스케일링을 하게 되면 타겟 데이터가 달라질 수 있는데 이를 처리하는 코드가 더 늘어나게 되어 최대한 코드를 적게 쓰면서 작업하는 방식으로 설명드리고 있어요! 검증 데이터 분리 → 인코딩 으로 진행하면 코드가 더 많아집니다. train, val, test 세 가지를 모두 인코딩해야 해요. 데이터 누수에 대해서도 잘 알고 계시네요! 말씀하신 방식(학습 데이터에만 fit, 검증 데이터에는 transform)이 실무에서는 필요하지만, 시험은 시험으로 접근하시는 게 좋습니다. 복잡하거나 코드가 더 늘어나는 방식은 설명하지 않고 있는 점 양해 부탁드립니다. 스케일링은 우리가 사용하는 트리 계열 모델(랜덤포레스트, LightGBM)이 스케일링에 크게 영향을 받지 않기 때문에 시험에서는 생략하셔도 괜찮습니다. 정리하면 시험에서는 타겟 분리 → (결측치 처리) → (스케일링) → 인코딩 → 검증 데이터 분리 → 모델 학습 순서를 추천드려요! 그 외 작업은 가능한 만큼 시도해 주시면 되겠습니다. train과 test의 범주가 다를 때: 각각 따로 get_dummies 를 하면 컬럼 수가 달라져서 예측할 때 에러가 납니다. 이때는 train과 test를 합쳐서 인코딩한 뒤 다시 나눠 주세요. (이 또한 데이터 리키지 문제는 있지만 코드는 평가하지 않고 있습니다) 선형 계열 모델을 쓸 때: 로지스틱 회귀, 선형 회귀, KNN, SVM 같은 모델은 스케일링 영향을 크게 받기 때문에 스케일링을 꼭 해주시는 게 좋습니다. 스케일링 대상: 스케일링은 수치형 컬럼에만 적용합니다. 인코딩 전에 스케일링을 하는 이유도 원-핫 인코딩으로 만들어진 0/1 컬럼까지 스케일링되지 않게 하기 위해서예요. 화이팅입니다.
네, 잘알고 계신 것 같습니다. 반복문으로 확인합니다. 다만 시험문제에서 오브젝트 컬럼이 많았던 적은 없어 확인에 큰 문제는 없었어요. 그냥 합치는 것도 방법중 하나 입니다. 아직까진 기출해서 카테고리가 달라진적은 없으나 예시문제 데이터가 그렇게 나오고 있어 준비할 필요는 있습니다
안녕하세요! 우선 에러가 아니라 Warning은 무시하셔도 됩니다. (시험에서도 동일함) FutureWarning 미래 판다스 버전에서는 이렇게 코드 작성하면 안될 수 있다. 단 현재 버전에서는 현재에서는 아무런 문제가 없습니다. SettingWithCopyWarning 지금 수정하는 대상이 copy일 수도 있어서, 원본 df 가 바뀌지 않을 수 있다"는 뜻 만약 수정한다면 df.loc[:9, 'views'] 이런식으로 작성이 필요합니다. df = df.sort_values('views', ascending=False).reset_index(drop=True) df.loc[:9, 'views'] = ref # loc은 끝 라벨 포함 → 0~9, 총 10개 경고(워닝) 자체는 채점에 영향을 주지 않습니다. 경고는 에러가 아니므로 코드는 끝까지 실행되고, print 로 출력된 값이 정답이면 문제없습니다.