train과 test 데이터 전처리 시, 두 데이터 모두에서 '총구매액' 과 '최대구매액'이 음수이길래 이상치인줄 알고 전처리에 고민을 좀 했습니다. 고민하다보니 전액 환불한 경우에는 논리적으로 음수가 맞더라고요. 그래서 별도의 이상치 처리는 안 했습니다. 다만, 제가 궁금한점은 실제 시험에서 이상치가 나왔을 때 대응 방법 (예를 들어, 이상치가 아닌 데이터만 살리는 등) 이 문제처럼 test데이터에서 이상치가 나올 가능성이 있는지와 대응방법 (test데이터의 행은 삭제해서는 안 되는 것으로 알고 있습니다.) 위 두가지가 궁금합니다.
ValueError Traceback (most recent call last) /usr/local/lib/python3.11/dist-packages/pandas/core/indexes/range.py in get_loc(self, key) 412 try: --> 413 return self._range.index(new_key) 414 except ValueError as err: ValueError: 3 is not in range The above exception was the direct cause of the following exception: KeyError Traceback (most recent call last) 3 frames /usr/local/lib/python3.11/dist-packages/pandas/core/indexes/range.py in get_loc(self, key) 413 return self._range.index(new_key) 414 except ValueError as err: --> 415 raise KeyError(key) from err 416 if isinstance(key, Hashable): 417 raise KeyError(key) KeyError: 3 기출3회 작업형1 3번 문제를 풀 때, 맨 처음 데이터를 다시 실행시켜주지 않으면 동일한 코드라도 이런 오류가 뜹니다. 매번 처음 데이터를 실행해줘야하나요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 방법 2인 pivot table을 만든 이후에 기존 방법 1의 grouped['차이'] 항목을 만들어 처리하였는데요. 방법 2에서는 grouped라는 변수에 pivot table 결과를 안넣으셨는데, pivot table 결과가 어떻게 grouped에 들어간걸까요??
안녕하세요. 데이터 전처리 단계에서 저는 수치형 데이터를 넣어서 진행하였습니다. 하지만 수업에서는 범주형 데이터를 선택하여 인코딩을 하셨습니다. 이 기준을 어떻게 정한건가요?? 저는 info()를 통하여 df를 확인해보니 수치형(int,float)이 많아서 num_cols로 만들어서 진행하였습니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요, 작업형2 번에서 train, test 두 데이터 동일 컬럼에 결측치가 있을경우 숫자면 0 , 문자면 최빈값으로 채우는 방법도 있지만..연습문제 풀다 가끔 train, test 컬럼 수? 뭐가 안맞는다는 오류가떠서.. 해당 결측치 컬럼은 train과 test에서 제거해버려도 문제가 안될까요? ( 결측치 있는 컬럼이 Target이 아니라는 전제하에)
안녕하세요. 유사한 질문을 찾아보았으나 의문이 해결되지 않아 질문드립니다. anova 테이블을 만들기 전 적합한 데이터 형태를 만들기 위해 melt 함수를 사용하시더라구요. anova 테이블을 만들 때 필요한 특정한 데이터 형태가 있는건가요? 왜 melt함수를 적용해 주어야 하는지 아직 이해하지 못해서 질문드려요. 답변 기다리겠습니다. 감사합니다.
선생님의 코딩 # LightGBM import lightgbm as lgb lg = lgb.LGBMClassifier(random_state=0, verbose=-1) lg.fit(X_tr, y_tr) pred = lg.predict(X_val) print("lightgbm") print(f1_score(y_val, pred, average='macro')) # 최종 제출 파일 (lightGBM) pred = lg.predict(test) result = pd.DataFrame({'pred':pred}) result.to_csv("result.csv", index=False) 저의 코딩 from lightgbm import LGBMClassifier lg = LGBMClassifier(random_state=0, verbose=-1) model = lg.fit(X_tr, y_tr) pred = model.predict(X_val) pred.shape f1_score(y_val,pred, average='macro') # basic # 0.9257472552209252 pred = lg.predict(test) submit = pd.DataFrame({'pred' : pred}) submit.to_csv('result.csv', index=False) pd.read_csv('result.csv') 여쭙고싶은 것은 선생님께서는 lg.fit을 어떤 변수에 넣지 않고 바로 학습시킨 뒤 그것으로 예측 및 검증을 하고 최종 test 예측까지 수행하시는데, 저는 lg.fit을 model이란 변수에 넣은뒤 예측 및 검증을하고, 최종적으로는 lg로 test 예측을 수행합니다. 혹시 이 차이에서 최종 예측성능에 차이가 생길까요?
교수님 안녕하십니까? 3회 기출유형 (작업형2)를 혼자 풀면서 심사위원분들께서 채점을 할 때, 사용자 코드를 보고 채점 코드를 변경하시는지 혹은 일괄적인 코드로 채점을 하시는지 궁금함이 생겼습니다. 궁금한 점 1) 테스트 데이터값을 예측할 때 -> pred = rf.predict_proba(test)[:,1] 로 하지 않고, -> pred = rf.predict_proba(test) 로 테스트 데이터를 예측한 이후, 아래와 같이 진행하면 심사위원분들이 유동적으로 채점 코드를 변경하시나요? test_index = test.index[:] test_index submit = pd.DataFrame({'index':test_index,'y-pred':pred[:,1]}) submit.to_csv('result.csv',index=False) pd.read_csv('result.csv') ※ 교수님이 주신 채점 코드를 아래와 같이 제 임의로 변경하면 채점이 되는것을 확인했습니다. roc_auc_score(y_test,pred) -> roc_auc_score(y_test,pred[:,1]) ※ 다만, 사용자 데이터를 보지않고 채점 코드를 일괄적으로 적용하면, 정해진 제출형식에 어긋나게 작성해서 0점을 받을까 걱정이되서 문의드립니다!