묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
강의 수강 질문
오늘까지 수강을 들어서 섹션 10까지 수강을 완료했습니다.이후 강의 중 필수적으로 수강해야 하는 강의가 궁금합니다. 섹션 11에 로지스틱 회귀(필수) 라고 되어있는것도 필수로 들으라는 의미 맞죠?? 선생님이 수강 할 강의 다 알려주시면 이후에는 문제 풀이만 계속 할 생각인데.. 기출문제 먼저 풀고 책에있는 예상문제 푸는게 나을지, 예상문제부터 푸는게 나을지 조언 부탁드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
인코딩 관련질문
안녕하세요 선생님. 제가 수강을통해 배우기로는decribe(include ='O')속성을 찍어봐서 unique개수가 맞지않으면 데이터를 합친 후 인코딩을 진행하는거로알고있습니다. 강의중에는 평소에는 보통 그냥 train,test를 따로따로 인코딩 하시더라고요.(원핫에경우에도, 라벨인코딩일때는 train ->fit_transform, test->transform이런식으로). 저도 이 방식으로 하다가 원핫이든 라벨인코딩이든 unique개수가 같든 그냥 모두 데이터를 합친 후, 인코딩 한 후에 데이터를 다시 train과 test를 분할해 사용하고 있습니다.(스케일링 필요할 경우에는 인코딩 후 스케일링 후 분할). 혹시 이 방법으로 계속 진행하고 시험환경에서도 그렇게 해도될지 질문드립니다. data = pd.concat([train, test], axis =0) print(data.shape) from sklearn.preprocessing import LabelEncoder cols = data.select_dtypes(include = "object").columns 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)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
train_copy 안할 경우 스케일링 코딩법
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요아래 코드 안 쓸경우,# 데이터를 매번 새롭게 불러오기 위해 함수로 제작 함 def get_data(): train_copy = train.copy() test_copy = test.copy() return train_copy, test_copy아래처럼 입력하면 되나요?from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() display(train[cols].head(2)) train[cols] = scaler.fit_transform(train[cols]) test[cols] = scaler.transform(test[cols]) display(train[cols].head(2))
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 9회 연도의 자료형
안녕하세요.9회 기출 데이터의 '연도'는 int로 숫자형으로 표기되었지만 범주형인 것 같아서 이런 경우에 다른 처리가 필요하지 않은지 갑자기 궁금증이 생겨 질문드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2유형 기출 5회 풀이 확인 부탁드립니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요시험이 코앞이나 아직 다른 방법을 시도해보기에는 에러가 너무 많이 떠서 아래와 같이 코드 작성하였는데 이렇게만 작성하면 너무 위험한 판단일지 조언 부탁드립니다. (문제에서 제시하고 있는 평가지표를 안사용하고 이런식으로 제출해도 될지 해서요,,!이방법말고는 아직 숙달된 방법이 없어 문의드립니다)y=train.pop('price')train=pd.get_dummies(train)test=pd.get_dummies(test)from sklearn.ensemble import RandomForestRegressorrf =RandomForestRegressor(random_state=0)rf.fit(train,y)pred=rf.predict(test)submit = pd.DataFrame({'pred':pred})submit.to_csv('result.csv', index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 회귀 평가 기준
평가지표가 이렇게 나왔는데 제출해도 괜찮은 정도일까요?아니면 수정해서 더 좋게 보완하는 게 좋을까요?평가지표들의 기준이 궁금합니다.그리고 회귀모델은 시험에서 몇 개 정도 돌려보는게 좋고, 해볼만한 모델이 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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')를 원핫인코딩 하기 전에 했는데, 검증 데이터 분리작업 시 선생님이 작성하신 코드를 그대로 작성해야하는지 궁금합니다!별개의 문제일까요~?