묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출문제 3회 작업형1-2 질문드립니다
선생님 코드는 이렇게 했을 때 정답 51이 나오는데요.df.isnull().sum() df = df.dropna() df.isnull().sum() df.iloc[:int(len(df)*0.6)] Q1 = df['f1'].quantile(0.25) print(Q1)제가 이렇게 했을 때는, 답이 55로 나오더라고요.import pandas as pd df = pd.read_csv("../input/big-data-analytics-certification/t1-data1.csv") df = df.dropna().reset_index(drop = True) df.iloc[:int(df.shape[0]*0.6)]['f1'].quantile(0.25) 행 개수를 뽑을때, df.shape[0]으로 할 수 있는 걸로 알고 있는데, 어디가 잘못된걸까요? ㅜdf.shape[0]으로 행개수 뽑고, 0.6곱한뒤 36.6->36으로 하라고 하셔서 round처리 안하고 int했는데 무슨 차이가 나는지 모르겠습니다... 그리고 reset_index를 하고 안하고 답 차이도 나는데, 어느게 좀 더 안전한 방식일까요? ㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
분산분석
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요일원분산 분석에서 독립변수에 문자열 처리와 상관없이 동일한 결과값을 얻었고 이에 ols가 회귀분석에서 말씀해주셨듯이 문자형 변수를 알아서 변환해주는 것으로 이해했습니다. 이원분산분석에서는 문자열 처리에 따라 결과값의 차이가 났는데 그 이유로 문자열로 되어있는 종자 변수는 ols가 알아서 변환을 해주지만 여기서는 특이하게 수치형 자료로 나와있는 비료 변수가 사실은 범주형이기 때문에 ols가 알아서 변환을 하지 못해 문자열 처리를 꼭 처리를 해줘야 하는것으로 이해하면 정확할까요? 거기에 분산분석이 연속형 변수~범주형 변수이기에 분산 분석의 경우 의도적으로 다 C() 처리를 해주는게 깔끔하다고 수업중에 말씀하신것으로 이해하면 될까요?? 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모의고사 3 - 작업형 2번 문제
모델 학습 및 예측에서 roc_auc_score 가 1이 나와버려서 뭔가 이상하게 학습을 시킨 것 같은데 괜찮은건가요? 그리고 X_test 를 이용해서 predict 할 때는 타겟값인 TravelInsurance 가 없어야하는 것 아닌가요? 왜 오류가 나는지 모르겠습니다... 아래는 어떤 식으로 전처리되었는지 X_tr과 X_test 입니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
문자열 처리에 관한 질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 강의 내용 6분 40초와 관련이 있습니다. 제가 2번 문제를 풀다가 Gender 부분을 C(Gender) 처리를 하지 않고 풀었는데 강의를 다시 보다 보니 문자열 처리를 해주는 것을 알았습니다. 근데 문자열 처리 유무와 상관없이 값이 전부 동일한 것을 보고 이렇게 질문을 드립니다. 회귀분석에서 ols가 범주형 변수가 있어도 C() 처리를 안해줘도 된다고 하셨는데 로지스틱 회귀 분석에서도 동일한지 여쭤보고 싶습니다. 왜 결과값이 문자열 처리에 상관없이 동일하게 나오는 건가요? 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 모의고사 1문제_drop
이 부분은 왜 해주나요??왜 해야하나요?pop이 의미하는 바가 뭔지 설명해주세요,
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 모의고사 1문제_삭제
cols을 train데이터 안에 object만 모은 데이테인데, test데이터는 cols로 모은적이 없는데,, 저렇게 cols 로 작성해서 삭제해도 되는 건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
섹션 5 - 작업형2 모의문제 3 질문
안녕하세요, 학습 중 질문이 있어 글 작성합니다.코드를 정확하게 이해하고자 자세하게 여쭤보겠습니다.1. 강의 9:20 경 코드from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('output', axis=1), train['output'], test_size=0.15, random_state=2022) # 랜덤 포레스트 from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier() rf.fit(X_tr, y_tr) pred = rf.predict(X_val)rf.fit에는 당연히 X, y의 train 데이터가 들어가야 하겠는데.pred에 X_val이 들어가야 하는 이유는 무엇인가요? 2. 강의 22:10 경 코드pred_proba = xgb.predict_proba(test)pd.DataFrame({ 'id' : test_id, 'output' : pred_proba[:, 1]}).to_csv('0000.csv', index=False)roc_auc_score에서 pred가 아닌 pred_proba를 사용함은 이해를 했으며(output이 확률이니까),pred_proba[:, 1] 에서 :1의 의미를 알고싶습니다.답변주심에 미리감사드립니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2유형 질문있습니다!
일단 공부방법을 결과물 도출로 중심을 잡고 코딩하느라 전처리나 기본 인코딩, 스케일링만 진행해서 수행하는데 분류 문제시 정확도를 출력해보면 50퍼 근처로 출력되는데 감점요인이나 점수 획득에 문제가 있을까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 작업형 1-6 결측치 제거
f1 컬럼의 결측치 제거 부분에서 df = df[~df['f1'].isnull()]을 사용하셨는데 이 부분이 잘 이해가 안됩니다 ㅜ 간단하게 설명해주실 수 있을까요?혹시 dropna를 사용해서 결측치만 제거를 할 수 있는 방법도 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
7회 기출유형(작업형2) 강의 질문
RMSE 구할 때,mean_squared_error(y_valid, pred, squared=False) squared=False 작성하면 출력되던데 시험장에서 이렇게 작성해도 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5-2 type2
5-2 type2의 문제를 수치형 데이터만 선택해서 랜덤포레스트로 학습시키고 MSE로 평가했습니다.이렇게 코드를 작성해도 될까요?MSE 값이 좀 큰 것 같은데 이 방법이 아닌 다른 방법으로 풀어야 하는 걸까요? train['reviews_per_month'] = train['reviews_per_month'].fillna(0)test['reviews_per_month'] = test['reviews_per_month'].fillna(0)cols = ['id', 'host_id', 'latitude', 'longitude', 'minimum_nights', 'number_of_reviews', 'reviews_per_month', 'calculated_host_listings_count', 'availability_365']test_id = test['id']target = train.pop('price')train = train[cols]test = test[cols]from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size = 0.2, random_state=0)import numpy as npfrom sklearn.metrics import mean_squared_errorfrom sklearn.ensemble import RandomForestRegressorrf = RandomForestRegressor()rf.fit(X_tr, y_tr)pred = rf.predict(X_val)print(mean_squared_error(y_val, pred))#60931.44110148261pred = rf.predict(test)submit = pd.DataFrame({ 'id' : test_id, 'price' : pred})submit.to_csv("submit.csv", index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
(섹션5) train_test_split 관련 질문
안녕하세요. 섹션5 [작업형2] 모의문제 및 캐글 - 2번쨰 강의 관련 질문입니다.검증데이터 분리 시 아래와 같이 코드를 적었는데, from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train.drop('price', axis=1), train['price'], test_size = 0.15, random_state=2022)윗 행에서 train.drop('price') 후, train['price']을 하는 이유가 뭔가요?'price'값이 타겟이기 떄문에X_tr 은 'price'가 없어야 하고,반면, X_val은 'price'만 있어야 하니까 위 코드가 나온게 맞는것인지요?감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4회 기출 유형(작업형2)
안녕하세요!! 4회 기출 아래 사진처럼 풀어도 무방한지 궁금합니다. 추가로 xgboost 쓰고 싶었는데 오류가 뜨더라구요!!분류 1,2,3,4는 랜덤 포레스트만 사용해서 풀어야하나요??f1평가점수가 0.49인데 잘했는지 모르겠네요 ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[캐글, 작업형3 로지스틱회귀] 이해가 되지 않습니다.!
[문제]import pandas as pdfrom statsmodels.formula.api import logitdf = pd.read_csv("/kaggle/input/bigdatacertificationkr/Titanic.csv")formula = "Survived ~ C(Pclass) + Gender + SibSp + Parch"model = logit(formula, data=df).fit()model.params 다름아니라 여기서 Pclass에 왜 앞에 C()를 하셨는지 이해가 안갑니다.! 참고로 데이터 info는 다음 아래와 같았습니다.Pclass : 'int'Gender : 'object'SibSp : 'int'Parch : 'int'
-
해결됨빅분기 실기 1Day Class(R)
작업형 제1유형 문제 1번 정답 문의
선생님께안녕하세요 선생님? 알찬 강의에 늘 감사드립니다 : ) 다름이 아니라 작업형 제1유형 문제 1번의 평일 오후 1시 casual 평균대비 registered의 평균 비율 정답 확인 부탁드립니다!> df_01 = read.csv("D:/데이터_기출예제_01/set_01_data_01.csv") > head(df_01) datetime casual registered count 1 2011-01-01 00:00:00 3 13 16 2 2011-01-01 01:00:00 8 32 40 3 2011-01-01 02:00:00 5 27 32 4 2011-01-01 03:00:00 3 10 13 5 2011-01-01 04:00:00 0 1 1 6 2011-01-01 05:00:00 0 1 1 > > library("lubridate") > df_01[,"hour"] = hour(df_01$datetime) > df_01[,"wday"] = wday(df_01$datetime,week_start=1) #week_start 기본값 0 = 월 > head(df_01) datetime casual registered count hour wday 1 2011-01-01 00:00:00 3 13 16 0 6 2 2011-01-01 01:00:00 8 32 40 1 6 3 2011-01-01 02:00:00 5 27 32 2 6 4 2011-01-01 03:00:00 3 10 13 3 6 5 2011-01-01 04:00:00 0 1 1 4 6 6 2011-01-01 05:00:00 0 1 1 5 6 > > df_01$wday = as.factor(df_01[,"wday"]) > head(df_01) datetime casual registered count hour wday 1 2011-01-01 00:00:00 3 13 16 0 6 2 2011-01-01 01:00:00 8 32 40 1 6 3 2011-01-01 02:00:00 5 27 32 2 6 4 2011-01-01 03:00:00 3 10 13 3 6 5 2011-01-01 04:00:00 0 1 1 4 6 6 2011-01-01 05:00:00 0 1 1 5 6 > > df_01_wed = filter(df_01, hour == 13, !(wday %in% c(6, 7))) > tail(df_01_wed) datetime casual registered count hour wday 319 2012-12-12 13:00:00 18 220 238 13 3 320 2012-12-13 13:00:00 41 230 271 13 4 321 2012-12-14 13:00:00 39 274 313 13 5 322 2012-12-17 13:00:00 16 194 210 13 1 323 2012-12-18 13:00:00 51 235 286 13 2 324 2012-12-19 13:00:00 30 183 213 13 3 > > cnt_casual = mean(df_01_wed$casual) > cnt_registered = mean(df_01_wed$registered) > > print(round(cnt_registered/cnt_casual,2)) [1] 3.52
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
T1-19. 시계열 데이터3에 대한 질문입니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요해당 문제에서 "Events컬럼이 '1'인경우 80%의 Salse값만 반영함" 이라는 조건을 실행하기 위해서 아래와 같은 함수를 만들었는데 'Events' Key error 가 나네요.어느 부분을 수정하면 될까요? def calc(df) : if df['Events'] == 1 : return df['Sales']*0.8 else : return df['Sales'] df['events80'] = df.apply(calc)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
적합도 vs 독립성
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요범주형 데이터라 카이제곱검정인것은 이해했습니다다만, 카이제곱문제에서 적합도와 독립성은 어떻게 구분하나요?제가 생각한바로는카이제곱 검정인것은 동일하고문제에서 독립인지 아닌지를 물어보는 제시문이 있으면 독립성 검정그 외에는 다 적합도 검정으로 보면될까요어떻게 제시문을 보고 구분 하는지 알려주시면 감사하겠습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 전처리 작업시 조건에 따른 특정값 채우는 방법?
해당 문제 연습하는 도중에 train과 test 데이터셋에 총구매액이 0원보다 작은 데이터가 있습니다. 해당 데이터를 0원으로 채우는(변환) 방법을 알고 싶습니다.결측치의 경우 fillna()로 쉽게 채울 수 있는데 결측치가 아닌 데이터의 조건에 따른 특정값으로 채우는 방법이 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
ㅎㅇ
저번에 질문한 거 코드 수정 및 정리했습니다. 선생님 ※ 피쳐엔지니어링에서 train, test 셋을 분리( .copy() )해서 수치형은 스케일링하고 범주형은 인코딩 한 다음, 합치기 ( .concat() ) 하는 방식이 아니라수치형 부분 칼럼을 변수(cols_n)로 받고, 범주형 부분을 변수(cols_c) 으로 받아서, 데이터셋을 수치와 범주형으로 분리하지 않은 상태에서 각각 스케일링, 인코딩을 적용하고 검증데이터셋 분리-> 모델 & 평가지표 불러오기 -> 예측(테스트셋 적용) -> df 생성 -> 제출 하는 방법에서 아래에 피쳐 엔지니어링 부분 코드 정리한거 확인 부탁드립니다. 경우 1. [train, test // 2개 데이터셋 제공시]# train셋엔 있고 test셋엔 없는 "target"에 해당하는 칼럼 분리 # "target" 데이터는 범주형이든 수치형이든 스케일링이나 인코딩을 하면 안되므로 제외시킴 target = train.pop(["target"]) cols_n = train.select_dtypes(exclude="O").columns cols_c = train.select_dtypes(include="O").columns## 수치형 민맥스 스케일링 작업 from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() train[cols_n] = scaler.fit_transform(train[cols_n]) test[cols_n] = scaler.transform(test[cols_n]) ## 범주형 라벨 인코딩 작업 from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols_c: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) ## or 범주형 원핫 인코딩 작업 시 # .get_dummies() 원핫 인코딩은 자동으로 범주형만 찾아서 인코딩 함 # 방법 1 train = pd.get_dummies(train) test = pd.get_dummies(test) ## 라벨 인코딩과 통일성을 원한다면 (방법 2) train = pd.get_dummies(train[cols_c]) test = pd.get_dummies(test[col_c]) # 다만 어차피 자동으로 찾아주니 이렇게 하지 말고 간편한 위의 방법 1 방식으로 하자그 다음 검증데이터셋 분리 등 과정 이후 ~~~~~~~~~~~ 제출 경우 2. [X_train, y_train, X_test // 3개 데이터셋 제공시]cols_n = X_train.select_dtypes(exclude="O").columns cols_c = X_train.select_dtypes(include="O").columns## 수치형(스케일링) 작업 ##민맥스 스케일링 from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_train[cols_n] = scaler.fit_transform(train[cols_n]) X_test[cols_n] = scaler.transform(test[cols_n]) ## 범주형(인코딩) 작업 ## 라벨 인코딩 from sklearn.preprocessing import LabelEncoder le = LabelEncoder() for col in cols_c: le = LabelEncoder() X_train[col] = le.fit_transform(X_train[col]) X_test[col] = le.transform(X_test[col]) ## or 원핫 인코딩 시 # .get_dummies() 원핫 인코딩은 자동으로 범주형만 찾아서 인코딩 함 # 방법 1 X_train = pd.get_dummies(X_train) X_test = pd.get_dummies(X_test) ## 라벨 인코딩과 통일성을 원한다면 (방법 2) X_train = pd.get_dummies(X_train[cols_c]) X_test = pd.get_dummies(X_test[col_c]) # 다만 어차피 자동으로 찾아주니 이렇게 하지 말고 간편한 위의 방법 1 방식으로 하자이후 검증데이터셋 분리 등 과정 이후 ~~~~~~~~~~~ 제출 이번 코딩엔 틀린게 없어야 할텐데.....이거 제대로 한거 맞는지 확인 부탁드립니다. 선생님여러 차례의 질문에 답변 해주셔서 감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightBGM에서 분류, 회귀 둘 다에서 random_state, max_depth, n_estimator 쓰는 것는 동일한가요??
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 lightBGM에서 분류, 회귀 둘 다에서 random_state, max_depth, n_estimator 쓰는 것는 동일한가요??