묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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 클릭하면 데이터 보이던데, 시험장에서 이렇게 확인해도 되는건가요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 답안제출 관련 질문
작업형2 제출 할 때 답안 확인 차 코딩했던 pd.read_csv("result.csv")요 부분까지 냅둔채로 제출해도 상관없나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
np.log(), np.log1p() 차이
안녕하세요, 예시문제 제3유형 1번문제를 푸는데 로그 함수 사용법에 궁금점이 생겨서 질문드립니다. 로그 변환할 때 np.log()와 np.log1p() 이렇게 배웠던 것 같은데,이 문제 풀 때는 np.log()를 사용하셔서요.두 개중에 어떤걸 사용하는지 기준이 있을까요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 기출 유형(작업형2) 풀이인데 이렇게 해도 될까요?
# 데이터 불러오기 import pandas as pd train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/5_2/train.csv") test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/5_2/test.csv") ytrain = train.pop('price') cols = ['model','transmission','fuelType'] # train = pd.get_dummies(train) # test = pd.get_dummies(test) from sklearn.preprocessing import LabelEncoder for col in cols: le = LabelEncoder() train[col]= le.fit_transform(train[col]) test[col]= le.fit_transform(test[col]) from sklearn.model_selection import train_test_split x_tr,x_val,y_tr,y_val = train_test_split(train, ytrain,test_size=0.2,random_state=2022 ) # from sklearn.ensemble import RandomForestRegressor # rf = RandomForestRegressor(random_state = 2022) # rf.fit(x_tr,y_tr) # y_pred = rf.predict(x_val) import lightgbm as lgb model = lgb.LGBMRegressor(randomstate=0,verbose=-1) model.fit(x_tr,y_tr) y_pred = model.predict(x_val) from sklearn.metrics import root_mean_squared_error result = root_mean_squared_error(y_val,y_pred) submit = pd.DataFrame(y_pred) submit.to_csv('오지욱.csv',index=False) # pd.read_csv('오지욱.csv') # 1324.4944863328471 원핫 랜덤포레스트 # 1320.1181960644112 레이블 랜덤포레스트 # 1271.4972710398029 레이블 lgb -> 선택 # 1282.70065302789 원핫 lgb작업형 2에서 더 어렵게 나오면 그냥 다시 시험친다는 각오로 원핫,레이블 -> 랜포,lgb 경우의 수 4가지 구한뒤 제일 좋은 수치를 가진 모델로 작업해서 제출하고자 합니다. 지금까지로 봐왔을땐 작업형 2는 이정도로만 해도 충분 하겠죠?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
8회 기출 1유형 질문_iloc
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요8회 기출유형(작업형1) 문제풀이 과정 문의드립니다 방문객합계를 구할때 컬럼끼리 더하는 것 말고아래와 같이 진행은 불가한걸까요?아래처럼 작성하면 오류가 떠서요ㅜ df['방문객 합계']=df.iloc[:,1:]
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
encoding시 데이터 병합
범주형 변수encoding시에 무조건 train,test데이터셋 병합 - encoding - 분리 단계로 진행해도 상관없나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형3
예시문제 작업형3 번에서 ① 문제 자체가 이해가 안가는데요하나씩 이해좀 시켜주실수 있으실까요? 분산에 차이가 있는지를 알아보기 위해 F-검정을 수행할때 검정통계량의 값을 구하라. var() 함수로 분산을 구한거 이해가 갔어요.근데 F-검정을 수행 할때인데 F-검정을 수행한건가요 풀이에서?? 그리고... 검정통계량을 구하라인데 var2/var1 이 왜 검정통계량이 되는건가요?? 제가 공부하기로 가설검정=t검점분산분석=F검정 으로 알고있엇는데, 문제는 독립표본검정(가설검정) 인데 F검정을 한다고 하니.... 이해가 안가요ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
Label encoding 시 col 기준
2025 예제 관련해서 작업형 2 에서 label encoding 할 시에 cols 에 데이터를 집어 넣을때 데이터 구분 기준을 잘 모르겠습니다. col 에 다른 인자를 넣게 되면 분명 계산이 잘 안 이루어 지는데 이 계산 인자를 어떤 식으로 구분해서 시험환경에서 적을 수 있을지가 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
t1-37.purchase-py 소수점 절사
강사님 안녕하세요 새로운 올리신 t1-37.purchase-py 문제2에 관련해서 질문남깁니다.혹시 소수점 절사라고 해서 프리미엄 = df[(df['세그먼트'] =='프리미엄') & (df['카테고리'] =='생활용품')]['구매금액'].mean() 일반 = df[(df['세그먼트'] =='일반') & (df['카테고리'] =='생활용품')]['구매금액'].mean() print(int(프리미엄 - 일반))바로 int()로 했는데 7729가 나와서 혹시 소수점 절사라는 조건 나오면 강사님처럼 int(round())해야하는거죠? 감사합니다