묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출3회 작업형2 - test.index
마지막에 데이터 프레임 만들때 test.index나 reset_index는 초반에 test_id 를 pop으로 저장시켰다면 필요없는 식인가요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출3회 작업형2
안녕하세요 😊작업형 2문제에서 수치형과 범주형 데이터를 각각 n_train, c_train 등으로 나누어서 로버스트 스케일링과 원핫인코딩을 하셨는데 데이터를 저렇게 나누지 않고도 원핫인코딩 이후에 cols로 수치형데이터였던 변수들만 뽑아내서 로버스트 스케일링해도 관계없나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 시계열 데이터
시계열 데이터가 있으면 파생변수로 만들어 주라고 하셨는데, 여기서 질문이 있습니다파생변수를 만들지 않고는 분석을 진행 못하나요?만약 진행이 가능하다면 그냥 원핫인코딩이나 라벨인코딩 해주면 되나요? 아니면 drop시켜야 되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 rmse 구하는 법
선생님께서 rmse 구할때 이런 함수를 사용해서 이렇게 하라고 하셨는데from sklearn.metrics import mean_squared_errordef rmse(y_true, y_pred):mse = mean_squared_error(y_true, y_pred)return mse ** 0.5result = rmse(y_val, pred)혹시 이렇게 함수식을 안쓰고from sklearn.metrics import mean_squared_errorrmse = mean_squared_error(y_val, pred) ** 0.5print(rmse)이런 방식으로 rmse를 구해도 되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(신버전) 예측컬럼
안녕하세요 선생님,질문드립니다~ 에시문제 작업형2(신버전)에서 보면1) roc_auc_score로 평가한다고 되어있지만,2) 제출 csv 파일 형식 예시를 보면 확률값이 아닌 0또는1로 적혀있습니다. 그러면 제출할때 predict_proba가 아닌 predict로 예측한 결과값을 제출해야하는 것 아닌가요? 선생님이 작성하신 결과값이 확률값으로 되어있어 질문드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
roc_auc 검증과 cross_val_score은 같이 쓸 필요가 없죠??
roc_auc 검증과 cross_val_score은 같이 쓸 필요가 없죠??둘다 성능 평가를 하는 것으로 이해가 돼서 둘 중에 한개를 진행하면 되겠죠? roc_auc는 데이터 분할 train_test_split이 필요하고, cross_val_scroe은 필요 없고, fit에 fit(x_tr, y_tr) 생략하고 바로 test 값을 rf.predict(test)로 예측해서 제출하면 되는 걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
cross_val_score 홀드아웃할 때 순서 부탁드려요
cross_val_score 홀드아웃 교차검증 사용할 때 순서 부탁드려요 get_dummies 다음 부터 model ex)randomforestclassifier -> cross val score -> fit and predict인가요?? 만약에 그렇다면 fit (x_tr, y_tr) / predict(x_val)이 들어가야 하지 않나요? 그러면 train_test_split을 이전에 했어야하는 게 아닌가 싶어서요 설명 부탁드립니다. 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 분리 질문
시험시 label 인코딩으로 문제를 풀려고 하는데요 데이터가 수치형, 범주형 나눠져있을때 , n_train = train.select_dtypes(exclude ='object').copy()n_test = test.select_dtypes(exclude ='object').copy()c_train = train.select_dtypes(include ='object').copy()c_test = test.select_dtypes(include ='object').copy() 이렇게 나눈후 n_ train과 n_test에는 scaling, c_train과 c_test에는 label 인코딩한 후 pd.concat으로 합치는것과 cols = ['수치형 데이터 컬럼 선택']수치형 데이터 스케일링, cols = ['범주형 데이터 컬럼 선택']for i in cols 범주형 데이터 라벨 인코딩 1번과 2번에 차이가 있을까요? 어떤경우에 어떤것을 사용해야 하나요? 또 , 2번 방법 사용시 cols 의 이름을 수치형,범주형 각각 다르게 사용하여 컬럼 지정후 추후에 합쳐야하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1, 작업형3 답안제출 메모장관련 문의
작업형1, 작업형3 답안제출 할 경우에 답을 외우고 다음페이지로 넘어가야하나요? 답안을 제출하기위해서는 답안용 화면이 띄어지는데 바로 이전에 풀이해놓은 사항에서 답을 복사해오고 붙여넣기 해야 착오가 없을것 같아서요. 보통 답을 암기하여 제출하나요? 필기구도 지참이 불가하다하여 어떤게 좋을지 문의드려봅니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
레이블인코딩 합쳐서 하는 기준 판단
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요!set 방법이 이제 생각나서 다시 돌아와서 보고 있습니다. set으로 확인하는 과정은 EDA에서 해주는게 맞죠?a = set(train['object컬럼명'].unique())b = set(test['object컬럼명'].unique())이렇게 정의 해주었을때test에 있는데 train에 없는 경우만 예외경우로 합쳐서 레이블 인코딩 해줘야하니 print(b-a) 만 해주면 되는거 맞죠? (굳이 a-b는 안해줘도되나 싶어서요)이 값이 어떤 값이 나오면 합쳐서 레이블 인코딩 해주고 분리해주는거구요!만약 합친 다음에 레이블 인코딩 해줘야한다면<전처리 단계>target = train.pop('타겟컬럼') from sklearn.preprocessing import LabelEncoder cols = train.select_dtypes(include='object').columns df = pd.concat([train,test]) for col in cols: le = LabelEncoder() df[col] = le.fit_transform(df[col]) train = df.iloc[:len(train)] test = df.iloc[len(train):]이 순서대로 진행하면될까요?마지막으로 합쳐서 레이블 인코딩 할때 object 컬럼이 여러개 있다면 (예를들어 6개가 object 컬럼이라면) 6개중 단 하나의 object 컬럼이라도 print(b-a) 했을때 값이 나온다면 합쳐서 레이블 인코딩 후 분리해주는거 맞죠?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
f1 score
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요f1_score에서숫자면 그대로문자면 f1_score(실제값, 예측값, pos_label='1인값')이라고 일전에 강의에서 설명해주셨는데요 여기서 말하는 문자, 숫자는 target 컬럼의 info를 보고 판단하는거 맞나요?1인값에는 1인 카테고리 명을 쓰면 되는지 여쭤봅니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
이진분류 기출3회
1) /n 'roc_auc:', roc_auc (roc_auc는 변수명)이렇게 입력하던데 저기 / 슬러시는 반대로 작성하는 거 어찌하는건가요? 키보드에 어떤값을 눌러서 작성하신걸까요? gpt 에서는 shift 와 / 를 누르면 된다는데 전 ? 가 출력되거든요ㅜ 1-1) roc_auc: 뒤에 ':' 표시는 붙은 이유가 모든 값을 포함한다는 건지두요,, 2) 그리고 또하나는 f1 score나 roc 와 같은 점수 표시할때는 저렇게 코드 작성을 하던데 어떤 의미인지 궁금합니다.pd.DataFrame({'pred':pred)} 처럼 /n roc_auc: 를지정한 roc_auc 변수명으로 대입한다는 뜻일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 t1-18
df['Date'] = pd.to_datetime(df['Date']) df['year'] = df['Date'].dt.year df['month'] = df['Date'].dt.month df['day'] = df['Date'].dt.day df['dayofweek'] = df['Date'].dt.dayofweek # print(df['dayofweek'].unique()) cond1 = df['year'] == 2022 cond2 = df['month'] == 5 cond3 = df['dayofweek'] <= 4 # 평일 cond4 = df['dayofweek'] >= 5 # 주말 # 0: 월 1 화 2 수 3 목 4 금 result1 = df[cond1 & cond2 & cond3]['Sales'].mean() # 5 토 6 일 result2 = df[cond1 & cond2 & cond4]['Sales'].mean() print(round(result1 - result2,2))제 코드인데요!여기서 절댓값 하라말이 없는데 왜 abs 해줘야값이 똑같이 나올까요?저는 답과 부호만 빼고 동일하게 나왔습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예측할 칼럼이 int말고 object 나오는 경우
예측할 칼럼이 int말고 object 나오는 경우가 있나요?만약 나오면 예측 돌리기전에 예측할 칼럼도 인코딩 해야하나요??? 나올 확률 있나요??해야하면 어떤식으로 진행해야하죠??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
x_test에 만약 결측치있으면
x_train에 있으면 결측치 넣는걸로 답변 받았었습니다! 근데, 마지막에 결과 제출을 위해 예측 돌리기 위한 x_test에 만약 결측치가 존재하면, 결측치에 0이나 뭐 평균값 등 다른걸 넣나요?? 아니면 그냥 냅두나요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경 질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요실제 시험 환경으로 실습 진행 중인데, 궁금한게 있어요실제 시험에서 복사/붙여넣기가 불가능한가요? 예를 들어서 제가 작성한 코드를 복사해서 다른 코드에 또 활용한다던가 print문으로 나온 숫자를 복사해서 붙여넣는다거나 연습중에는 복사/붙여넣기가 안되더라구요정답을 제출한 뒤 맞게 제출 했는지 확인을 위해 다시 풀이로 돌아갔는데 코드가 모두 지워져있었습니다. (풀이 > 정답제출 > 풀이) 실제 시험 중에도 이런 식으로 항목 이동을 하면 풀이 과정에서 진행했던 코드들이나 print문으로 추출한 숫자들이 삭제되는지 궁금합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
kaggle 작업형 2 자전거 수요 예측
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요선생님 작업형 2 유형 datetime 컬럼 관련해서 올려주신 글을 보고1. datetime: 라벨인코더 진행2. datetime: 드랍했을 때3. datetime: datetime 변환 해서 점수를 내보았는데요.label encoder의 성능이 제일 좋았습니다. 혹시 label encoder로 모델을 검증한 것은 너무 과적합 된 값일까요?과적합 되어있다면 datetime이 나올 경우 변환하는 것이 가장 좋은 방법일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 개 나이 예측 문항
안녕하세요!작업형 2번 관련해서 질문 드려도 괜찮을까요…?혹시 get dummies 하기 전에 데이터 합치고 나눠야만 하나요..?수치형 데이터로 구성되어있고, 컬럼 같을 경우에는 합치고 나누는 작업 없이 get dummies 진행했는데 다른 풀이하고 결과값이 조금 차이 나는 것 같아서요! Get dummies 전후로 데이터 합치고 나누는 이유를 알고 싶습니다!제 코드# print(train.shape, test.shape)train = pd.get_dummies(train)test = pd.get_dummies(test)# print(train.shape, test.shape)다른 분들 모범 코드입니다¡data = pd.concat([train,test])data = pd.get_dummies(data)train = data.iloc[:len(train)]test = data.iloc[len(train):]
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
(체험 제2유형)
안녕하세요 선생님..이 문제에서 import pandas as pdpd.set_option('display.max_column',None)pd.set_option('display.float_format',"{:.10f}".format)train = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")# print(train.shape, test.shape) # 3500,11 / 2482 ,10개# print(train.isnull().sum()) # 환불금액 결측치 있음 2295 train = train.fillna(0)test = train.fillna(0)# print(train.isnull().sum()) 결측치 제거완료# print(train.head())# print(train.info()) # 주 구매상품, 주 구매지점# print(train.describe(include='object')) # 유니크가 42개, 24개라서 라벨인코더 가야할듯# cols = train.select_dtypes(inclued='object').coulmns !!!!# print(train.head())cols = ['주구매상품', '주구매지점']# print(train['주구매상품'].nunique())# print(test['주구매상품'].nunique())# print(train.describe(include='O'))# print(test.describe(include='O'))from sklearn.preprocessing import LabelEncoderfor col in cols : le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col])# print(train.shape, test.shape)# print(train.head())target = train.pop('성별')# print(target)from sklearn.model_selection import train_test_splitX_tr,X_val,y_tr,y_val = train_test_split(train,target,test_size=0.2)# print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) # 2800from sklearn.metrics import roc_auc_scorefrom sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier()rf.fit(X_tr,y_tr)pred = rf.predict_proba(test) <---- 실행했는데 여기를 실행하면 ValueError: X has 11 features, but DecisionTreeClassifier is expecting 10 features as input.가 발생합니다.. 대체 왜 그럴까요 ㅠㅠ??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 T1-34 문제 질문 (꼬리문제 1번)
제가 쓴 코드와 답안으로 작성되어 있는 코드 답 차이가 1씩 나는데, 왜 차이가 나는지 잘 모르겠네요 ㅜㅜ제가 쓴 코드에서 잘못된 부분이 있는지 말씀해주시면 감사하겠습니다.import pandas as pd import numpy as np df = pd.read_csv('/kaggle/input/bigdatacertificationkr/website.csv') # print(df.info()) # print(df.head()) df['StartTime'] = pd.to_datetime(df['StartTime']) df['EndTime'] = pd.to_datetime(df['EndTime']) # print(df.info()) # print(df.head()) df['total_seconds'] = (df['EndTime'] - df['StartTime']).dt.total_seconds() // 60 // 60 df = df.groupby(['UserID', 'Page']).mean() # print(df) df1 = df.groupby('Page')['total_seconds'].idxmax() # print(df1) print(int(df.loc[df1, 'total_seconds'].sum()))