묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
평가지표를 무시해도 되나요?
평가를 하지 않고 그냥 바로 예측해서 제출해도 된다고 여러번 말씀하신것 같은데roc_auc 일때만 제출할 pred가 pred_proba 임을 파악하는 용도로 사용하고 나머지는 그냥 무시해도 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출유형 문제와 시험장에서의 문제 차이
기출유형 문제들을 아래와 같은 형태로 주시곤 했는데 시험장 문제와 아예 같은 문제인가요? 예를 들어 시험장에서도 아래 주어진 것처럼 데이터 목록, 예측할 컬럼들을 알려주는지 평가지표가 MAE면 (Mean Absolute Error) 이렇게 풀어서 나타내주는지 궁금합니다! 작업형2 - 통신사에서 고객에게 청구될 총 금액을 예측하시오.제공된 데이터 목록:churn_train.csv(훈련 데이터)churn_test.csv(평가용 데이터)예측할 컬럼: TotalCharges(총 청구액)학습용 데이터(churn_train.csv)를 이용하여 총 청구액을 예측하는 모델을 만든 후 이를 평가용 데이터(churn_test.csv) 에 적용해 얻은 예측값을 다음과 같은 형식의 CSV 파일로 생성하시오.제출 파일은 다음 1개의 컬럼을 포함해야 한다.pred: 예측된 총 청구액제출 파일명: ‘result.csv’제출한 모델의 성능은 MAE(Mean Absolute Error) 평가지표에 따라 채점한다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
한 가지 방법으로 풀기에서
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요랜덤포레스트 분류 회기만 잘 구분하고인코딩은 원핫 인코딩으로만 진행해도 될까요?라벨인코딩도 해야할지 고민입니다.이전에 유니크가 너무 많으면 원핫인코딩이 오래걸려서 라벨 인코딩을 해야한다고 했던걸로 기억해서요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2에서 만약 데이터가 3개로 주어지면 concat 하고 작업하는 방법을 알려주셨는데
concat하는 데이터가 train데이터 두개로 나뉜것을 하나의 train으로 합치라는 뜻 맞나요? 주어지는 X_test데이터는 기존 연습하던데이터들처럼 그냥 test 데이터인거죠?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형 3(Ver.2025) 소문제 3번 질문
from scipy import stats result = stats.ttest_ind(df[cond1]['Resistin'], df[cond2]['Resistin'], equal_var = True) 안녕하세요!3번 소문제 질문에서'두 집단의 로그 리지스틴 값에 유의미한 차이가 있는지...' 라고 해서 ttest 시에도 로그 값을 사용해야 하는 줄 알았습니다.from scipy import stats result = stats.ttest_ind(np.log(df[cond1]['Resistin']), np.log(df[cond2]['Resistin']), equal_var = True)위 코드처럼요. 하지만 그렇지 않더라구요.혹시 왜 그런건지 설명 좀 부탁드려도 될까요?감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모델에서의 상수항 처리
model.summary()하면 회귀 계수들이 나오는데회귀 계수 관하여 답을 제출할때는 상수항은 고려하지 않고 제하나요? 이질문을 드리는 이유는 기출8회 작업형3 문제와 캐글 문제 때문에 여쭈어봅니다기출8회 작업형3처럼 상수항은'독립변수'에 포함시키지 않는지이에따라 항상 상수항은 연산에대해서 포함시키지않는것인지하단 캐글 문제 처럼 회귀계수 중 가장 큰값 같은 문제에서 상수항 계수가 제일 큰데 이러면 상수항 회귀계수를 내는것인지 # 모든 변수를 사용하여 OLS 모델을 적합하고, 회귀계수 중 가장 큰 값은? from statsmodels.formula.api import ols formula = 'y~x1+x2+x3+x4' model = ols(formula, data = data).fit() print(model.summary()) print(model.params[1:].max()
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2번 관련해서
1-2 번 관련해서 궁금한게 있는데 idxmax( ) 가 가장 큰 거 반환해주는걸로 알고 있는데 idxmax(axis = 1 ) 을 사용하면 컬럼이 7 개 나오는데 그게 연도별로 가장 높은걸 반환해주는걸로 이해했습니다. 근데 어떤 원리인지 잘 모르겠어요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2유형 변수 삭제
실제 시험 작업형 2유형에서설명력이 낮은 변수를 삭제하거나결측치나 이상치가 있는 데이터를 준다면 결측치를 제거하거나이런것에 기준이 있을까요?제가 문제를 읽어보고 임의로 결정해서 삭제를 해야할까요 아니면 문제에 있는 모든 변수(고유한ID컬럼제외)를 포함해서 학습해야할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
귀무,대립가설
대립가설과 귀무가설은 대응표본검정의 모든 문제에서 동일한 설정인가요 ?? 귀무가설: 뮤d >= 0 대립가설: 뮤d <0 2. 그리고 정규성 검정(샤피로윌크)할 때 df['diff'] = df['after'] - df['before']로 항상 계산하는건가요 ??대응표본검정은 뮤d가 before- after였는데 뮤d와 diff값은 아예 다른값이라고 생각하면 되는걸까요 ??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
8회 작업형2 원핫인코딩
기출 8회 작업형2 내용 중원핫인코딩을 하는 부분이 있는데먼저 cols에 train의 object타입 컬럼을 담아놓고train = pd.get_dummies(train,columns=cols) test = pd.get_dummies(test,columns=cols)이런식으로 작성을 하는데,다른 영상에서는 columns=cols 이 부분을 안 넣는 것도 본 것 같아서요!저 구문의 의미와 넣었을 때와 안 넣었을 때의 차이점이 궁금합니다!
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 파일 생성전 pred 순서에 오류
안녕하세요 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") # print(train.shape, test.shape) # train.head() # train.isnull().sum() # train = train.drop('CustomerID', axis = 1) # tesT = test.drop('CustomerID', axis = 1) target = train.pop('TotalCharges') # cols = train.select_dtypes(include = 'O').columns # # print(cols) # from sklearn.preprocessing import LabelEncoder # for col in cols : # le = LabelEncoder() # train[col] = le.fit_transform(train[col]) # test[col] = le.transform(test[col]) train = pd.get_dummies(train) test = pd.get_dummies(test) 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 # rf = RandomForestRegressor(random_state = 0) # rf.fit(X_tr, y_tr) # pred = rf.predict(X_val) # print(pred) # 937.577739684466 import lightgbm as lgb model = lgb.LGBMRegressor(random_state = 0, verbose=-1) model.fit(X_tr,y_tr) pred = model.predict(X_val) # 946.7024808036148 from sklearn.metrics import mean_absolute_error print(mean_absolute_error(y_val, pred)) pred = model.predict(test) submit = pd.DataFrame({'pred':pred}) submit.to_csv('result.csv',index = False) # result = pd.read_csv('result.csv')
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pd.to_datetime 적용시 오류 문의
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요df['날짜']=pd.to_datetime(df['날짜']) df['연도']=df['날짜'].dt.year 으로 변환해서 짜고 싶은데, 오류가 나는 이유가 뭘까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주형변수 처리관련
ols사용할때 독립변수가 범주형이면C()로 감싸는데문제를풀면서 이 변수가 범주형인걸 알더라도문제에서 특정변수가 범주형이라고 주어지지않는한C()를 사용하지 않는게 낫나요? 자의로판단해서 C()를 하는건지 문제에서 주어진것만 하는지 질문드립니다. 왜냐면케글문제를 푸는데 특정변수가 범주형이라고 주어졌는데, 다른 변수도 범주형인 경우가 있었습니다https://www.kaggle.com/code/agileteam/t3-2-example-py
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
강사님 안녕하세요!
캐글 t1-38.pivot-py 질문이 있습니다. # - 1) 총가입금액 컬럼을 생성하세요. (총가입금액 = 보험상품_가입금액 + 저축상품_가입금액)df['총가입금액'] = df['보험상품_가입금액'] + df['저축상품_가입금액']# print(df.head())# - 2) 각 지점코드와 연령대별로, 성별에 따른 총가입금액 합계를 구하세요.(단 합계 결측치일 때는 0으로 대체하시오)df_pv = df.pivot_table(index=['지점코드', '연령대'], columns='성별', values='총가입금액', aggfunc='sum', fill_value=0).reset_index()# print(df_pv) # C303 50대 2 컬럼 => NaN# # # help(pd.pivot_table) # fill_value 여기서 확인 가능# - 3) 연령대가 40대 또는 50대인 경우에 한해, 성별 간 총가입금액 차이(절댓값 기준)가 가장 큰 지점코드를 구하세요. (정답은 지점코드 1개 예: B204)# print(df.head())cond40 = df['연령대'] == '40대'cond50 = df['연령대'] == '50대'df = df[cond40 | cond50]# print(df.head())df_pv2 = df.pivot_table(index=['지점코드', '연령대'], columns='성별', values='총가입금액', aggfunc = 'sum', fill_value=0).reset_index()# print(df_pv2)df_pv2['diff'] = abs(df_pv2[1] - df_pv2[2])# print(df_pv2['diff'].idxmax())cond = df_pv2['diff'].idxmax()# print(df_pv2.loc[cond]['지점코드'])# C303# - 4) 3번에서 찾은 지점과 연령대에서, 총가입금액이 더 높은 성별의 금액은 전체 고객 총가입금액의 몇 %를 차지하나요? (반올림 후 소수 셋째자리 구하기)# print(df_pv2)# print(df_pv2.loc[cond]['연령대']) # 50대# print(df.head())total = df['총가입금액'].sum()# print(total) # 150333657# print(df_pv2)cond_a = df_pv2['지점코드'] == 'C303'cond_b = df_pv2['연령대'] == '50대'df3 = df_pv2[cond_a & cond_b]# print(df3) # 12353774diff = 12353774result = diff / total * 100print(round(result, 3)) 제가 작성한 코드입니다.강사님께서 풀이로 올려주신 코드와 약간의 차이가 있지만, 결국 차이(diff)값과 total값은 똑같을텐데저는 결과값이 8.218이 출력되고있습니다.잘못 코딩한 부분 지적해주시면 감사하겠습니다!매번 감사드립니다.내일 모레 시험 잘 보고 오겠습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예제 작업형2 관련 질문드립니다.
아래와 같이 코드를 작성했는데, rmse값이 선생님께서 푸신거랑 다르게 너무 작게 나와서 질문드려요. 제가 봤을 땐 선생님이 작성하신 코드랑 똑같이 한 것 같은데.. 어떤 부분에서 달라진 건가요? 제가 어디서 실수한지 모르겠습니다 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) pd.set_option('display.float_format','{:.10f}'.format) # 총구매액 예측 -> 회귀. RandomForestRegressor & predict # root_mean_squared_error # csv파일명 : result.csv / 타겟 칼럼명 : pred (2482개!) # EDA # 데이터전처리 # 환불금액 결측치 0으로 처리 train['환불금액'] = train['환불금액'].fillna(0) test['환불금액'] = test['환불금액'].fillna(0) # 레이블 인코딩 from sklearn.preprocessing import LabelEncoder lb = LabelEncoder() cols = train.select_dtypes(include = 'O').columns for col in cols: train[col] = lb.fit_transform(train[col]) test[col] = lb.transform(test[col]) target = train.pop('총구매액') # 데이터분할 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) # 모델학습 및 평가 from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor(random_state = 0, n_estimators = 400) rf.fit(X_tr,y_tr) pred = rf.predict(X_val) from sklearn.metrics import root_mean_squared_error print(root_mean_squared_error(y_val, pred)) # 베이스라인 : 808.1092610336881 # n_estimators = 400 : 793.0646436460113 # 결과 계산 및 제출 pred = rf.predict(test) result = pd.DataFrame({'pred': pred}) result.to_csv('result.csv', index = False) submit = pd.read_csv('result.csv') print(submit)
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 제1유형 문제 풀이 답안
작업형 제1유형은 문제 풀이 화면(python) 출력에서도 답안에 제출할 숫자만 출력이 되어야 하는건지 궁금합니다. 작업형 제1유형은 문제 풀이 화면(python)에서 문제를 푼 후, 답안 제출 화면에서 답을 입력하고 제출한다고 되어 있는데, 문제 풀이 화면(python) 속 출력 값도 채점에 포함되는지 여쭤보고 싶습니다. 섹션 16. 67. 6회 기출문제(작업형3) 강의 중 3분 49초 쯤에 작업형3은 작업형1과 달리 출력을 답안에 맞게 할 필요가 없다는 말씀을 하셨는데 작업형 제1유형은 python 출력에서도 답안에 제출할 숫자만 출력이 되어야 하는건지 혼란스러워 질문합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형3 (ver.2025)의 결과값이 다르게 나옵니다.
예시문제 작업형3 (ver.2025)의 두번째 문제를 풀었는데, 저는 답이 0.442 가 나오는데요.. 이건 정답이 있는거라 다르면 안되는거잖아요..ㅜㅜ 정말 똑같이 했는데.. 뭐가 문제일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 작업형1 t1-39 2번 문제 질의
아래와 같이 처리할 경우 결측치가 모두 채워지지 않고, 결과값이 60.0으로 산출됩니다.혹시 cond에 따른 df[cond].groupby.transform을 바로 result로 받으면 안되는 이유가 있을까요? cond = df['총 학습 시간'] >= 500 result = df[cond].groupby(['학습 카테고리'])['완강률'].transform('mean') #print(df['완강률'].isnull().sum()) == 6 df['완강률'] = df['완강률'].fillna(result) #print(df['완강률'].isnull().sum()) == 2 df[df['학습 카테고리'] == '디자인']['완강률'].mean().round(1)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(ver.2025) rmse 문의드립니다
rmse는 sklearn에서 지원하지 않아 mse를 구한다음 따로 다시 구해야되는 걸로 알고 있는데요,해당 강의 영상을 보면 from sklearn.metrics import root_mean_squared_error 로 바로 사용하고, root_mean_squared_error(y_val,pred)로 사용하셔서요. 만약 문제에서 rmse 문제가 나오면 이 코드를 그대로 써도 되는 건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
체험환경에서 데이터.csv
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요체험환경에서 데이터.csv 클릭하면 데이터 보이던데, 시험장에서 이렇게 확인해도 되는건가요??