선생님의 코딩 # 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점을 받을까 걱정이되서 문의드립니다!
안녕하세요. 이번에 올라온 2유형 문제를 풀어보았는데요. <작성한 코드> import pandas as pd train = pd.read _csv("data/customer_train.csv") test = pd.read _csv("data/customer_test.csv") # 사용자 코딩 pd.set_option('display.max_columns', None) # 전처리 target = train.pop('총구매액') train['환불금액'] = train['환불금액'].fillna(0) test['환불금액'] = test['환불금액'].fillna(0) # [선택2] 원핫 인코딩 (카테고리가 다르면 합쳐서 진행 필요함) df = pd.concat([train, test]) df = pd.get_dummies(df) # 다시 분리 train = df.iloc[:len(train)] test = df.iloc[len(train):] print(train.shape, test.shape) # 검증용 데이터 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state = 0) print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) # 모델 학습 및 평가 from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit (X_tr, y_tr) pred = model.predict(X_val) from sklearn.metrics import root_mean_squared_error print("RMSE:",root_mean_squared_error(y_val, pred)) # 제출 pred = model.predict(test) submit = pd.DataFrame({'pred': pred}) submit.to _csv('result.csv', index=False) print( pd.read _csv('result.csv')) 결측치를 0으로 채우고 train,test 합쳐서 원핫인코딩 후 랜덤포레스트회귀 모델사용 RMSE 평가지표 값이 나왔는데 강사님 수치랑 너무 크게 차이가 나서요. 이렇게 많이 차이 나도 괜찮은건가요? 작을수록 좋은거이긴 하지만 강사님이랑 너무나 다른 값이 나와서 제가 작성한 코드와 화면 출력하여서 틀린부분이 있는지 문의 드립니다.
안녕하세요 Next app router 관련해서 질문드립니다. 현재 사이드프로젝트에서 route handler를 적극활용하고 있는데요. 제가 인프라나 백엔드 관련 지식이 없다보니 좀 헷갈리는게 있습니다. 현재 저희 서비스에서 특정 API는 클라이언트 컴포넌트에서 route handler로 API 호출 -> route handler에서 외부 백엔드 API 호출 이런 형태로 사용되고 있는데요, 이때 실제로 route handler 서버가 아래의 사진 중 어느 형태로 운용되는 것인가요? 즉, Next 프로젝트를 배포했을 때 각 유저마다 route handler 서버가 할당되는 것인가요? 아니면 모든 유저의 요청을 오직 하나의 route handler서버에서 대응하는 것인가요? 아니면 이게 배포 환경에 따라 달라지는것인가요?
실기에서 GridSearchCV써도 되나요? 'n_estimators': [100, 200], 'max_depth' : [5, 10], 'min_samples_split': [2, 5] 만 설정했는데도 돌아가는데 꽤 오래걸리는 것 같아서요 귀찮아서 바로 refit해서 쓰고 있는데 돌려보고 나서 GridSearchCV는 주석처리하고 나온 파라미터만 써서 돌려야 할까요?