안녕하세요, XGBRegressor 학습 시 나타나는 warning으로 실제 오류와 자주 헷갈려서, import warnings warnings.filterwarnings('ignore') 실행 후 코드를 계속 실행해도 괜찮을 지 여쭤보고자 문의 드립니다. 좋은 강의 감사합니다.
'views' 컬럼의 1사분위수, 3사분위수 그리고 IQR을 계산하시오. 이상치 조건에 맞는 데이터를 찾으시오. (이상치는 1사분위수 – (IQR 1.5)보다 작은 값과 3사분위수 + (IQR 1.5)보다 큰 값) 이상치 데이터의 'views' 컬럼 합을 정수로 구하시오. 문제를 푸는데 1사분위수와 3사분위수를 새로운 df['1qr'] df['3qr''] 이라는 컬럼을 생성해서 저장하고싶은데 시험 점수에는 영향이없나요
작업형2를 할때 원-핫 인코딩이나 레이블인토딩을 진행해서 더 성능이 좋은 모델을 쓰고 있는데 강의에서 불균형일때 원-핫인코딩처럼 합쳣다가 푸는 방식으로 추천해주셨는데 레이블도 합쳤다가 푸는형식으로 해도 상관이 없는지? 와 안전하게 그냥 둘다 합쳐서 인코딩하는 방식으로 해도 상관없는지 궁금합니다!
안녕하세요 현재 작업형 2 문제 풀이 중 인코딩을 하는 경우 아래와 같이 코드를 작성하고 있습니다 import pandas as pd train= pd.read_csv('/content/churn_train.csv') test= pd.read_csv('/content/churn_test.csv') #(4116, 19) (1764, 18) target= train.pop('TotalCharges') #1. 인코딩 df= pd.concat([train, test]) df1= pd.get_dummies(df) train= df1.iloc[:len(train)].copy() test= df1.iloc[len(train):].copy() 인코딩 후 train, test로 나누는 과정에서 미리 train의 길이를 지정하고 그 변수를 넣는 것이 맞는 걸까요? 아니면 기존의 방식 (위) 처럼 해도 무관한지 궁금합니다 import pandas as pd train= pd.read_csv('/content/churn_train.csv') test= pd.read_csv('/content/churn_test.csv') #(4116, 19) (1764, 18) target= train.pop('TotalCharges') train_len= len(train) #1. 인코딩 df= pd.concat([train, test]) df1= pd.get_dummies(df) train= df1.iloc[:train_len].copy() test= df1.iloc[train_len:].copy()
안녕하세요. 원래는 작업형3을 아예 버리려고 했는데 남은 시간동안 작업형3을 조금이라도 공부하려고 하는데 어떻게 해야될지 모르겠어서 질문글 남깁니다. 우선 빅이시 영상에서 소개하는 summary 확인하는 방법은 숙지해두었는데, 그외에 직접 검정을 하거나, 기초통계에 대한 지식은 거의 없는 상황입니다. 현재 상황에서 어떤걸 하는게 가장 좋은 전략일까요? 기출에 나온 작업형 3 관련 개념들이라도 숙지하고 시험장 들어가는게 현재로선 최선일까요? 감사합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 선생님. 연습문제 연습하고 있는데요 작업형2에서 선생님의 코드예시로 작성한 파일이랑 제가 만든 파일이랑 확률값의 소수점차이가 나는 이유는 무엇일까요?.. (사진첨부) 혹시 시험에는 무관한건지 여쭤봅니다
작업형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유형 연습문제를 풀면서 랜덤포레스트와 LGBM 모델을 둘 다 적용해 보고 있는데, 대부분의 경우 LGBM의 성능이 더 좋게 나옵니다. 혹시 실제 시험에서도 LGBM을 주력 모델로 사용해도 괜찮을까요? 아니면 데이터에 따라 랜덤포레스트가 더 유리한 경우도 있어서 두 모델을 모두 비교해 보는 것이 좋을까요? 시험장에서 모델 선택 시 어떤 기준으로 판단하면 좋을지 궁금합니다. 감사합니다! 😊