작업형1, 2, 3 강의는 모두 수강했고, 현재 기출문제 11회와 10회는 풀었습니다. 이후에 기출문제 9회, 8회 ~ 등을 풀며 준비하는 것이 나을까요? 아니면 실전챌린지 연습문제를 먼저 푸는게 나을까요? 아니면 이번에 새로 공유해주신 코딩팡 환경의 모의문제를 풀까요? 시간이 있으면 모두 풀어보려고 하지만 무엇부터 시작해야할지 조언을 듣고자 질문드립니다
안녕하세요. 11회 기출부터 역순으로 순차적으로 풀어보고 있는데 8회만 해도 MIN MAX 스케일링의 수식을 문제에서 제공하고 있는 반면, 7회 기출은 갑자기 스탠다드 스케일링의 수식을 제공하지 않고, 상관계수를 구할 때 절댓값을 취해야한다는 점도 알려주지 않고있습니다. 사실 스탠다드 스케일링은 고등학교에서도 나오니까 std()함수를 썼는데 이게 또 스탠다스 스케일링을 하고싶을 땐 std()안에 ddof라는 옵션을 0으로 설정해야한다고 하네요.. 빅분기가 시행된지 얼마 안된 시험이어서 이때만 시험 문제가 이렇게 나온거고, 요즘 시험은 그냥 10회, 11회랑 비슷하게 나온다고 받아들이면 되는 것일까요, 아님 이 정도의 배경지식은 작업형 1에서 실제로 필요한게 맞는걸까요? 통계쪽 배경지식은 작업형 3에서만 필요하다고 생각했는데 당황스러워 질문 남깁니다.. 감사합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요! 2작업형의 대부분 문제를 #기본 전처리 cols = ['Gender','Ever_Married','Graduated','Profession','Spending_Score','Var_1'] train = train.drop('ID',axis=1) test_id = test.pop('ID') #레이블 인코딩 df = pd.concat([train,test]) from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols: df[col] = le.fit_transform(df[col]) train = df.iloc[:len(train)].copy() test = df.iloc[len(train):].copy() test = test.drop('Segmentation',axis=1) #원핫 인코딩 df = pd.concat([train,test]) df = pd.get_dummies(df,columns=cols) train = df.iloc[:len(train)].copy() test = df.iloc[len(train):].copy() test = test.drop('Segmentation',axis=1) #데이터나누기 from sklearn.model_selection import train_test_split X_tr,X_val,y_tr,y_val = train_test_split( train.drop('Segmentation',axis=1),train['Segmentation'],test_size=0.2,random_state=2022 ) #랜포 from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state=2022) rf.fit(X_tr,y_tr) pred = rf.predict(X_val) # #xgb from xgboost import XGBClassifier xgb = XGBClassifier(random_state=2022) xgb.fit(X_tr,y_tr) pred = xgb.predict(X_val) #lgbm from lightgbm import LGBMClassifier lgb = LGBMClassifier(random_state=2022) lgb.fit(X_tr,y_tr) pred = lgb.predict(X_val) #평가 from sklearn.metrics import f1_score print('f1: ',f1_score(y_val,pred,average='macro')) pred = lgb.predict(test) result = pd.DataFrame ({ 'ID' : test_id, 'Segmentation':pred.astype(int) }).to_csv('result.csv',index=False) diff = pd.read_csv('result.csv') diff 위 템플릿을 활용하여 레이블 인코딩과 원핫인코딩 / 모델은 랜덤포레스트,xgb,lgbm까지 총 6가지 버전을 비교해 풀고 있는데, 이대로 풀어도 되는지 여쭤보고싶습니다!
from sklearn.metrics import roc_auc_score roc_auc = roc_auc_score(y_val, pred[:, 1]) print('roc_auc: ', roc_auc) 11:19 즈음에 나오는 해당 코드에 궁금한 점이 있어 질문 드립니다. roc_auc_score() 메서드에 전달할 두 번째 아규먼트는 양성(positive)에 대응하는 클래스일 확률 리스트를 전달하는 것으로 알고 있습니다. 그런데 roc_auc_score() 메서드의 첫 번째 아규먼트에 전달하려는 값(y_val)이 0 또는 1로 이루어지지 않고 지금과 같이 '<=50K' 또는 '>50K'와 같은 문자열로 이루어진 리스트라면 roc_auc_score() 메서드 입장에서 도대체 어떻게 '<=50K'가 양성인지 '>50K'가 양성인지 판단할 수 있는 것인지 궁금합니다. 다른 수강생의 질문에서 print(rf.classes_)를 통해 보여지는 리스트의 인덱스 번호로 0이면 양성 X, 1이면 양성으로 판단한다라고 본 것 같은데, 해당 정보를 알고 있는 것(해당 정보를 저장한 주체)은 rf, 즉 랜덤포레스트 모델 객체 아닌가요? roc_auc_score() 입장에서는 rf.classes_ 속성에 직접 접근하지 않는 한, 해당 정보를 알지 못할 것 같은데 어떻게 '>50K'를 양성으로 판단하는지 궁금합니다.
안녕하십니까 2분18초 부터 나오는 재귀연산법을 그동안 제가 이전 강의에서는 연산조건이 한가지만 나오는 단순재귀 같은 경우는 그냥 눈에 보이는 코드 흐름상 파라미터 -> 리턴값 순으로 재귀연산을 해서 풀었는데 (ex:5+4+3+2+1) 이번에는 조건재귀같은 경우는 똑같이 풀다가 값이 다른 결과가 나오는 참사가 발생했습니다. 그래서 조건이든, 단순이든 재귀연산법은 리턴값부터 차근차근 파라미터 순으로 가는게 안전한 건가요?
작업형 2유형 연습문제를 풀면서 랜덤포레스트와 LGBM 모델을 둘 다 적용해 보고 있는데, 대부분의 경우 LGBM의 성능이 더 좋게 나옵니다. 혹시 실제 시험에서도 LGBM을 주력 모델로 사용해도 괜찮을까요? 아니면 데이터에 따라 랜덤포레스트가 더 유리한 경우도 있어서 두 모델을 모두 비교해 보는 것이 좋을까요? 시험장에서 모델 선택 시 어떤 기준으로 판단하면 좋을지 궁금합니다. 감사합니다! 😊
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 질문합니다. 문제1-1에서는 p-value가 0.05보다 작은 이라고 적어져 있고 문제1-2에서는 p-value가 0.05 이하라고 적어져 있어요 답에는 차이가 없지만 '보다 작은'으로 봐야하나요? 이하라고 봐야하나요?
안녕하세요 9회 시험을 볼 때, 강의를 작업형 2까지만 듣고 갔다가 60점으로 떨어졌습니다. 그동안 바쁘다고 시험을 치루지 못하다가 마지막 기회라 이번에 접수했는데요. 이번에도 시간이 없던 중에 반갑게도 [94. 빅이사] 강의가 있어서 작업형 2를 [기초편]으로 rf로 외웠는데 [96. 오징어게임]에서 Q&A 시간에 하나만 하면 LightGBM라고 하셔서요 그럼 lgb 기초편 버전을 알려주실 수 있을까요? 2년 전에는 정식으로 검증데이터 분할해서 했는데, 1주일동안 작업형 1/2/3을 다 외우려니 쉽지 않아 기초편으로 가보려 합니다. 금요일 휴가는 냈는데 열심히 해보고 합격소식 올려볼게요...ㅠㅠ
학습하다보니, (), [], {} 각 괄호의 사용이 너무 헷갈려서 문의드립니다. 때로는 두개를 같이 사용하기도 하던데, 정확하게 세 가지 괄호를 각각 어떤 기준으로 괄호를 사용하면 될까요? 예1) ['칼럼명'] # 지역별 평균 계산 df = df.groupby(['city']).mean(numeric_only=True) 예2) ("칼럼명") ->여기서는 왜 []를 안 쓰는건지.... # 'f2'컬럼이 가장 큰 지역 출력 print(df.sort_values("f2", ascending = False).index[0])
새로운 컬럼 cancel_TF 생성: 주문번호가 'C' 로 시작하면 True , 아니면 False ( 'C' 는 취소 주문) 라고 문제에 작성되어있는데 str.contains('c')가 아니라 str.startswith('c')로 해야하는거 아닌가요? contains는 c가 포함이되었는가를 판단하는걸로 알고 있고 startswith는 c로 시작하는지를 판단하는걸로 알고있는데 말이죠