묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2번
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요, 작업형 2번 답안 제출할때 평가지료(RMSE) 모델 작성 후 Print(result) 도 작성하고 답안 제출해도괜찮을까요? ,, 원래 print(result)도 출력하고 제출하는게 맞을까요?? (rmse 뿐만 아니라 모든평가지표도 동일한지 궁금합니다) ex( print(mse) print(f1) 등등) <코드>#학습 및 예측from sklearn.ensemble import RandomForestRegressorrf = RandomForestRegressor(random_state=0)rf.fit(X_tr,y_tr)pred = rf.predict(X_val)from sklearn.metrics import mean_squared_errordef rmse(y_val,pred): mse = mean_squared_error(y_val,pred) return mse ** 0.5result = rmse(y_val,pred)print(result)#제출 pred = rf.predict(test)submit = pd.DataFrame({'pred':pred})submit.to_csv('result.csv',index = False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 8회 작업형 2
# 라이브러리 및 데이터 불러오기 import pandas as pd train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/8_2/churn_train.csv") test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/8_2/churn_test.csv") #EDA print(train.shape, test.shape) #(4116, 19) (1764, 18) # print(train.info()) # print(test.info()) #결측치 x # print(train.isnull().sum()) # print(test.isnull().sum()) #,수치형,오브젝트 체크 # train.describe(include='O') # train.describe() #Id는 버리기 # train['TotalCharges'].value_counts() #타겟이 많으면 회귀 #데이터 전처리 train = train.drop('customerID',axis=1) test= test.drop('customerID',axis =1) print(train.shape, test.shape) #타겟 분리 target = train.pop('TotalCharges') #스케일링 #컬럼다르면 합치고 인코딩후 분리 df = pd.concat([train,test],axis=0) train1 = df.iloc[:len(train)].copy() test1 = df.iloc[len(train):].copy() print(train.shape, test.shape) from sklearn.preprocessing import RobustScaler cols = train1.describe(exclude='object').columns scaler = RobustScaler() train1[cols] = scaler.fit_transform(train1[cols]) test1[cols] = scaler.transform(test1[cols]) #인코딩 from sklearn.preprocessing import LabelEncoder cols = train1.describe(include='object').columns le = LabelEncoder() for col in cols: train1[col] = le.fit_transform(train1[col]) test1[col] = le.transform(test1[col]) print(train.shape, test.shape) #검증데이터 분리 from sklearn.model_selection import train_test_split x_tr,x_val,y_tr,y_val = train_test_split(train1, 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 from sklearn.metrics import mean_absolute_error rf = RandomForestRegressor(random_state=0) rf.fit(x_tr,y_tr) pred = rf.predict(x_val) print(mean_absolute_error(y_val,pred)) #lightGBM import lightgbm as lgb lgbmr = lgb.LGBMRegressor(random_state=0, verbose=0) lgbmr.fit(x_tr,y_tr) pred = lgbmr.predict(x_val) print(mean_absolute_error(y_val,pred)) #xgboost from xgboost import XGBRegressor xgbr = XGBRegressor(random_state=0) xgbr.fit(x_val,y_val) pred = xgbr.predict(x_val) print(mean_absolute_error(y_val,pred)) #951.033800718042 랜덤 #952.79254077987 lightgbm #41.89787395866172 xgboost맨마지막에 xgboost로 돌렸는데 41이라는 결과 나옵니다 이건 과적합인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
max_depth 문의
lightgbm에서 max_depth에 변화를 주는 튜닝을 했는데, 해도 평가지표가 아예 변화가 없는데 이런 경우도 있을 수 있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
행별 합
이전에는 행별 합을 구할 때df.T를 사용했던 거 같은데sum(axis=1)을 사용해도 되는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3혼란
선생님 각각의 설명을 들으면 이해가 되고 알겠는데 그걸 어느문제에 어떤 순서로 적용을 시켜야 하는지를 잘 모르겠습니다이건 문제를 보면서 익혀야하는걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
구름예시 3번문제
구름예시문제 작업형3에서 마지막 독립표본t검정 하라고해서 모수적검정 해도 되는지 확인 차 로그리지스틴 샤피로검정 했는데 1집단 샤피로검정 p값이 0.035네요 이런 경우 만휘트니검정을 해야하나요? 아니면 문제에서 제시한 대로 그냥 모수적검정인 독립표본t검정을 해야하는지비모수적검정인 만휘트니유 검정을 해야하는지 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
문제 3번 map을 이용한 풀이에서도 import numpy 필요하지 않나요??
문제 3번 map을 이용한 풀이에서도 import numpy 필요하지 않나요?? 검색해보세요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
train_test_split random_state 질문입니다.
데이터 분리에서 random_state 2025와 random_state 0를 사용할 때 각각 학습 검증값이 다른데 이것도 모델처럼 하이퍼파라미터(max_depth, n_estimators)를 수정해가며 검증값을 측정하는게 맞나요 ?체험형 문제에서 X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size = 0.2, random_state = 2025)로 작성하니 rmse 값이 923이 나왔고, random_state를 0으로 바꾸니 800대가 나오네요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4회기출 작업형2 이렇게 푸는게 맞나요..?
# 라이브러리 불러오기 import pandas as pd # 데이터 불러오기 train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/4_2/train.csv") test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/4_2/test.csv") #preprocessing print('변경전:',train.shape, test.shape) train = train.drop('ID', axis =1 ) target = train.pop("Segmentation") test_id = test.pop('ID') print('변경후:',train.shape, test.shape) data = pd.concat([train, test], axis = 0) cols = data.select_dtypes(include = "object").columns #encoding from sklearn.preprocessing import LabelEncoder for col in cols: la = LabelEncoder() data[col] = la.fit_transform(data[col]) train = data[:len(train)].copy() test = data[len(train):].copy() print(train.shape, test.shape) print(train.head(3)) #분할 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 RandomForestClassifier rf = RandomForestClassifier(random_state = 1006 , max_depth=7, n_estimators = 1000) rf.fit(X_tr, y_tr) pred = rf.predict(X_val) len(pred) from sklearn.metrics import accuracy_score, f1_score #점수측정 f1 = f1_score(y_val, pred, average='macro') acccuracy = accuracy_score(y_val, pred) print('f1:',f1) print('acccuracy:', acccuracy) #rf 기본 0.4946975843769027 # rf : max_depth=7, n_estimators = 1000 # f1: 0.5406747794301512 # acccuracy: 0.5566391597899475 # lgb # f1: 0.5227625161214081 # acccuracy: 0.536384096024006 pred = rf.predict(test)#실제예측 pd.DataFrame({'ID':test_id,'Segmentation':pred}).to_csv("00000.csv", index = False) pd.read_csv("00000.csv")하이퍼파라미터 여러가지 넣으면서 f1스코어 테스트하면서 해봤는데 적절히 풀었는지 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 train, test의 범주가 다를때
안녕하세요.시나공 빅분기 p.338 노트북 가격 예측에 대한 문제를 풀다가 궁금한 점이 있어서 질문드립니다.train, test의 범주가 다를때 concat으로 데이터를 합쳐서 get_dummies를 적용하여 원핫 인코딩을 하게 되는데,혹시 concat으로 데이터를 합쳐서 LabelEncoder를 적용한 후 동일하게 나누면 안 되나요?합친 데이터에 fit()을 적용시키고 결과를 도출했을 시 값이 더 좋게 나오는 것처럼 보여지는데 책에 기술되어있지 않은 이유는 문제가 있기 때문인건가요? 사용한 코드cols = train.select_dtypes(include='O').columns total = pd.concat([train,test]) from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols: total[col] = le.fit_transform(total[col]) train = total[:train_n] test = total[train_n:]
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3 잔차이탈도 계산
#잔차이탈도 계산 print(-2 * model.llf) print(-2 * -143.47) #286.94 print(round(286.93267518507366,2)) #286.93작업형 3에 이렇게 소수점 문제에서 llf나 params 이런함수들을 몰라서 이문제 같은경우 summary 표에서 log-likelihood값인 -143.47을 임의로 곱했을때 값이 286.94이고 선생님이 하신거는 286.93인데 이러면 틀린건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 test 예측 오류
X_val로 예측 후 roc-auc 결과로 LGBM 모델을 선택했습니다.그리고 test를 넣어 최종 예측을 했는데 pred 값이 이렇게 나오네요,,,어떤게 문제일까요 ㅠㅠ 참고로 test 데이터셋은 이렇게 되어있습니다...
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
함수를 변수명으로 덮어씌운다면?
안녕하세요. 연습을 하던 중 오타나 실수로 인해 함수를 변수명으로 사용하거나 = 이 들어가서 덮어씌워지는 경우가 있었습니다.계속 실수를 발견하지 못하다가 오류가 나는 상황에서 이것이 원인인걸 뒤늦게 알게 되는 경우가 많았습니다.colab에서는 초기화를 시켜서 함수를 되돌리고는 했는데, 시험 환경에서 해당 실수가 일어났을 경우 되돌리는 방법이 있는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의문제
저는 위에서 target = train.pop('Attrition_Flag')를 원핫인코딩 하기 전에 했는데, 검증 데이터 분리작업 시 선생님이 작성하신 코드를 그대로 작성해야하는지 궁금합니다!별개의 문제일까요~?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의고사
원핫인코딩할 때 train = pd.get_dummies(train, columns=cols)가 아닌 train = pd.get_dummies(train)으로만 진행하면 안되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
오즈비 구하기
로지스틱회귀에서 오즈비를 구하는 것은 이해했습니다.궁금한 점은 오즈비를 선형회귀에서도 오즈비를 구할 수 있나요?구한다면 방법은 모델에서 logit대신 ols를 이용하여 모델을 만들고 회귀계수를 np.exp()에 넣어 구하면 되는 건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 합쳐서 인코딩하는 방법과 관련하여 문의사항
안녕하세요,수업 잘 듣고 있습니다.데이터 합쳐서 인코딩하는 방법과 관련하여 문의사항이 있습니다. data=pd.concat([train,test],axis=0)data=pd.get_dummies(data)train=data.iloc[:len(train).copy()test=data.iloc[letn(train):].copy()합친 후 원핫인코딩 후 분할하는 방법이 위와 같은걸로 책에 기재가 되어있는데요! 만약 아래와 같이 합친후 레이블인코딩 후 분할해도 괜찮은지 문의드립니다.data=pd.concat([train,test],axis=0)from sklearn.preprocessing import LabelEncoderle=LabelEncoder()for col in cols:data[col]=le.fit_transform(data[col])train=data.iloc[:len(train).copy()test=data.iloc[letn(train):].copy()
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
roc_auc
roc_auc 평가 코드를 작성하는데 다음과 같은 에러메세지가 떴습니다. 왜일까요?ㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
구름 예시문제 작업형 2
선생님 안녕하세요~이번에 작업형 2 예시문제가 변형되었는데카테고리 부분이 하나가 다르더라고요.원핫인코딩을 합쳐서 진행하셨는데만약 결측치를 그냥 fillna(0) or fillna(평균값) 으로 채우고train = pd.get_dummies(train)test = pd.get_dummies(test)이렇게 원핫인코딩을 하게되면 에러가 발생할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 8회 2유형에서 평가지표 사용
평가지표를 사용할때mse는 924.75가 나왔는데 r2를 찍어보니까 0.27이 나왔습니다.이 경우에 문제에서 mse를 이용해서 평가한다고 했는데 그대로 내도 문제가 없을까요?