기출에서는 train, test 모두에 결측치가 없었는데요 혹시 결측치가 있는 데이터가 주어지면 어떻게 해야하는지 궁금합니다. 아래 케이스별로 궁금하고 object 결측치인지 수치형 결측치인지에 따라서도 다르게 해야 할까요? train 에만 결측치가 있는 경우 test 에만 결측치가 있는 경우 train/test 모두에 결측치가 있는 경우
# 최종 제출 파일 (lightGBM) pred = lg.predict(test) submit=pd.DataFrame({'pred':pred}) submit.to_csv("result.csv",index=False) 아래처럼 feature가 맞지 않아서 에러가뜹니다. 강의 그대로 했는데 왜그러는 걸까요?? --------------------------------------------------------------------------- ValueError Traceback (most recent call last) /tmp/ipython-input-50-2529582812.py in <cell line: 0>() 1 # 최종 제출 파일 (lightGBM) ----> 2 pred = lg.predict(test) 3 submit=pd.DataFrame({'pred':pred}) 4 submit.to_csv("result.csv",index=False) 2 frames /usr/local/lib/python3.11/dist-packages/lightgbm/sklearn.py in predict(self, X, raw_score, start_iteration, num_iteration, pred_leaf, pred_contrib, validate_features, **kwargs) 1008 n_features = X.shape[1] 1009 if self._n_features != n_features: -> 1010 raise ValueError( 1011 "Number of features of the model must " 1012 f"match the input. Model n_features_ is {self._n_features} and " ValueError: Number of features of the model must match the input. Model n_features_ is 28 and input n_features is 8
작업형2에서 데이터 전처리할 때 라벨인코딩or원핫인코딩 후 랜포 or lightGBM만 준비해서 가려고 하고 기출 계속 돌려보고 있는데 아직 어떤 경우에 라벨인코딩이 적합하고, 원핫인코딩이 적합한지 구분이 안됩니다 1)어떤 데이터들일때 어떤 인코딩이 적합한건지 궁금합니다! (+현재는 오브젝트타입 라벨인코딩해서 모델 학습한거랑 원핫인코딩해서 모델 학습한거랑 각각 비교해보고 수치 더 좋은걸로 선택했었습니다..!) 2)그리고 항상 데이터 전처리(라벨or원핫인코딩) 전에 target 컬럼 먼저 train에서 복사해서 옮겨놓고 그 후에 데이터전처리를 하는게 맞는걸까요??
시험 환경 작업형2 문제에서 라벨 인코딩을 하기 전에, set을 통해서 train과 test의 unique를 확인하보고 "train이 test를 포함하기 때문에 합칠 필요가 없다"고 말씀을 하셨는데요. 혹시 시험을 볼 때 그것까지 미처 확인해보지 못하고 그냥 다음과 같이 진행을 했을 때 문제가 생길까요..? cols = ['주구매상품', '주구매지점'] from sklearn.preprocessing import LabelEncoder for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col])
실제 시험을 볼때는 뭔가 정신이 없을거같아서 train과 test의 unique값 차이 여부 생각하지 않고 그냥 무조건 train과 test를 concat으로 합치고 레이블 인코딩 진행한 후 train과 test를 분리하고자 하는데 이렇게 진행해도 괜찮을까요? 데이터 누수(?), 과적합가능성 있다고 들어서 질문드립니다.
안녕하세요. Chat gpt에서 lightGBM 전에는 아래와 같이 코딩을 해주면 된다고 하는데, 책이나 강의에서는 랜덤포레스트와 동일하게 원핫 인코딩이나 라벨인코더를 사용하고 있습니다. 어떻게 하는게 맞는건가요? train = train.astype('category') test = test.astype('category')
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 유형 2 질문... 전처리 전에 print(train['total'].describe()) 지수표기법 ->일반 형태로 꼭 바꿔야 하나요??
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 결론부터 말씀드리면, scikit-learn 버전 1.4 이상부터는 root_mean_squared_error 함수를 직접 import 해서 사용할 수 있습니다. 과거에는 RMSE를 계산하기 위해 mean_squared_error 를 불러와 제곱근을 취해야 했지만, 최신 버전에서는 더 직관적으로 사용할 수 있게 함수가 추가되었습니다. 사용 방법 (scikit-learn 1.4 이상) 아래와 같이 바로 import 하여 사용하시면 됩니다. 라는데.. 시험칠 때 바로 적용 가능한가요? 아니면 강의내용처럼 mse에 함수 만들어야 하나요? 유형 2 질문입니다. ㅜㅠㅠ