묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
문제3 셀 실행시 문구
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 문제3번에 셀 실행하면 답도 나오고, 다른것도 나오는데, 무슨뜻이야? 133 <ipython-input-41-735169098>:16: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)` df['f3'] = df['f3'].replace('vip',3)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
dropna 문의
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요df= df.dropna 말고 df['f3'] = df['f3'].dropna() 로 하면안되나요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 결과 질문
이렇게 결과가 나와야 하는데 이렇게 price가 소숫점으로 나옵니다 상관 없는 건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
인코딩
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 원핫 인코딩이나 레이블 인코딩 할 때, 강의를 보면 object인 컬럼에서 카테고리(or nunique)가 같은지 비교하고 그에 따라 다르게 작업을 하는데요.그냥 비교할 필요없이 항상 concat을 한 후에 원핫인코딩이든 레이블인코딩을 진행하면 불리한 점이 있을까요? 떄에 따라 다르게 대응하는 것보다는 기본적으로 concat을 하고 인코딩을 하는게 가장 안 헷갈리고 편한 방법 같아서 문의드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출문제 7회 문제 1-2
문제1-2. gender를 종속변수로 하고 나머지 변수들(age, length, diameter, height, weight)을 독립변수로 사용하는 로지스틱 회귀 모델을 적합시킨 후, 잔차 이탈도(Residual Deviance)를 계산하시오. (반올림하여 소수 둘째자리까지 계산) 인강에서는 glm으로 풀고 문제집에서는 logit으로 푸는데 그냥 glm 말고 logit으로 풀면 안되나요?그리고 import statsmodels.api as sm을 꼭 넣어야 하나요? 넣지 않아도 답이 나오더라구요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
이상치 처리 안해도 되는건가요
강사님 안녕하세요 데이터셋을 다루는 중에 이상치가 보여서 train 데이터는 전처리했는데,혹시 test 데이터도 이상치가 있더라도 따로 처리하지 않고 그대로 두는 게 더 나은 걸까요?그리고 현재 데이터셋으로 모델 평가했을 때 RMSE가 778 정도 나오는데, 이 정도면 성능이 괜찮은 걸까요?train.loc[1659,'총구매액'] = 0train.loc[3174,'총구매액'] = 0train.loc[3488,'총구매액']= 0train.loc[1659,'최대구매액'] = 0# print(train[(train['총구매액']<0) | (train['최대구매액']<0)])print(test[test['최대구매액']<0]) #2test.loc[579,'최대구매액'] = 0test.loc[1177,'최대구매액'] = 0print(test[test['최대구매액']<0]) 감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
인코딩 관련
여태까지 인코딩 할 때 train에만 있는 컬럼, test에만 있는 컬럼 고려하지 않고 사진처럼 바로 라벨인코딩을 했습니다. 최근에 업데이트된 영상을 보니 카테고리가 다를 때 혹은 포함할 때 등 이런 경우를 고려해서 적용하던데 원래 제 방식대로 해도 문제 없나요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
질문있습니다!
# 출력을 원하실 경우 print() 함수 활용# 예시) print(df.head())# getcwd(), chdir() 등 작업 폴더 설정 불필요# 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")#총 구매금액 , rmse target = train.pop("총구매액")#수치형 변수 스케일링cols = train.select_dtypes(exclude = 'object').columnsfrom sklearn.preprocessing import MinMaxScalermx = MinMaxScaler()train[cols] = mx.fit_transform(train[cols])test[cols] = mx.transform(test[cols])ob = train.select_dtypes(include = 'object').columnsfrom sklearn.preprocessing import LabelEncoderfor col in ob: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col])#데이터 나누기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 lightgbm as lgmodel = lg.LGBMRegressor(random_state = 0)model.fit(x_tr,y_tr)pred = model.predict(x_val)from sklearn.metrics import root_mean_squared_errorr = root_mean_squared_error(y_val,pred)pred = model.predict(test)s = pd.DataFrame({"pred" : pred})s.to_csv("result.csv", index= False)df = pd.read_csv("result.csv")#758.1836860967057800정도가 나온다고 하던데 758이 나온거면 모델 성능이 더 좋다고 하는건데 이게 이상일수도 있을까요? 750점 대가 나오니까 불안하네요 ,, 추가로 이렇게 pd.read_csv로 확인했을때 제대로 나오면 그냥 제출하면 되는거죠??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
코드질문드립니다!
import pandas as pd train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/ceredit%20card/train.csv") test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/ceredit%20card/test.csv") # train = pd.read_csv("train.csv") # test = pd.read_csv("test.csv") train.info() train.isnull().sum() #원핫 인코딩 y_train = train.pop('Attrition_Flag') train_oh = pd.get_dummies(train) test_oh = pd.get_dummies(test) data = pd.concat([train,test],axis =0) data_oh=pd.get_dummies(data) train_oh= data_oh.iloc[:len(train)].copy() test_oh= data_oh.iloc[len(train):].copy() #인코딩 다음에 해야할일은? 검증 데이터 분할 train.shape, test.shape, y_train.shape from sklearn.model_selection import train_test_split X_tr,X_val,y_tr,y_val = train_test_split(train_oh,y_train,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=0) rf.fit(X_tr,y_tr) pred=rf.predict(X_val) pred_proba=rf.predict_proba(X_val) #평가 from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score # 정확도 print(accuracy_score(y_val, pred)) # 정밀도 print(precision_score(y_val, pred)) # 재현율 (민감도) print(recall_score(y_val, pred)) # F1 print(f1_score(y_val , pred)) pred=rf.predict_proba(test_oh) submit = pd.DataFrame({ 'CLIENTNUM':test['CLIENTNUM'], 'Attrition_Flag':pred[:,1] }) submit.to_csv("435706131.csv",index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
7회 작업형 3 질문입니다
ols를 이용해서 종속변수를 예측할때는 바로 model.predict(train) 이런식으로 바로 진행했잖아요,근데 여기서 test데이터에서 종속변수로 주어진 값을 pop하고, model.predict(test) > 0.5 이런식으로 진행하는 이유가 궁금합니다.. 복습을하다보니 헷갈려서요.. ols와 logit의 특성 차이일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 모의문제 1
스케일링 단계를 왜 생략한것인지 궁금합니다!실제 시험에서는 어느 문제는 스케일링을 필수로 하는지 생략해도 되는지 알려주시면 감사하겠습니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
인코딩 관해 문의
밑에 원핫인코더에 관해 질문을 드렸는데요. object형식 컬럼을 지정한 cols 리스트로 지정하여 인코딩을 진행하면 수치형 데이터를 버리게 되어서 위험하다고 하셨는데요. 그럼 label인코더로 사용하게 되면 이부분도 수치형 데이터를 버리게 되는거 아닌가요?for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col])그럼 label인코더를 선택할 시에는 수치형데이터에 별도로 스케일링 작업을 해줘야되는건지... 헷갈리네요^^;;
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원핫인코더 관해 질문 합니다.
안녕하세요. 두가지 궁금한 점이 있습니다. 데이터 전처리 단계에서 ID나 nunique 함수로 조회시 너무 많은 갯수를 가지거나 예측값과 별 상관 없어보이는 컬럼은 처음부터 drop시키고 진행해도 무방한건가요?? 처음 baseline으로 object형식 컬럼만 단순 제거, 원핫인코더, label인코더 3가지로 진행하여 가장 평가지표가 좋은 전처리를 체택하여서 제출을 하는데요. 원핫인코더 시에 train = pd.get_dummies(train) test = pd.get_dummies(test) train.head(2)이렇게 작성하는 것과 train = pd.get_dummies(train[cols]) test = pd.get_dummies(test[cols]) train.head(2)object 형식의 컬럼을 담은 리스트인 cols를 지정하는게 나은건지 잘모르겠습니다. ^^ 두가지 답변 부탁드립니다 ^^
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
인코딩 후 질문
인코딩 과정을 통해 문자형 데이터를 숫자형으로 변경하는데 그 이후에 스케일링을 진행할때 수치형 컬럼을 골라내던데 이미 다 수치형 컬럼들로 변환되어있는것이 아닌가요? 궁금합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
평가지표 관련 질문
강의를 보다 머신러닝까지 해서 제출하면 그 결과를 바탕으로 평가지표에 의해서 평가가 되는건지 아니면 제시된 평가지표를 제출전에 꼭 사용해야하는지가 헷갈립니다! 강의에서 볼때는 평가지표를 사용해서 출력해보고 더 나은 모델을 사용하는 정도 인거 같아 보였는데요! 지금 시간이 없어서 랜덤포레스트 모델만 사용하고 외우려고 하는데도 평가지표 코드를 사용해야 할까요?!
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 질문입니다.
저는 EDA단계 때부터 저렇게 pop을 하는데요!그 후에 원핫을 햇거든요근데 마지막에 제출할때 보니이렇게 달라서 안되더라고요..원핫이나 라벨링 한 다음에 pop을 해야하나요??기출4 2유형 문제 풀고있습니다..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
value_counts 문의
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요타겟변수 value_counts로 어떤정보를 보려고 하는것이며 정보에따라 전처리시 달라지는게 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 데이터 전처리
데이터 전처리 부분에서 원핫 인코딩을 진행하는데, 저는 object형 컬럼들을 따로 설정해서 원핫인코딩을 진행하였습니다. 하지만 강의에서는 따로 이런 것 없이 바로 원핫을 진행하였습니다.그런데 f1_score가 약 30%정도 점수가 차이나서 혹시 컬럼을 안지정하고 원핫을 하는게 맞는지 헷갈리네요! 항상 [작업형2]전처리 부분을 어떻게 해야할지 잘 모르겠습니다..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
이원분산분석에서 정규성, 등분산
from scipy.stats import shapiro cond_tree_A = df['종자'] == 'A' cond_tree_B = df['종자'] == 'B' cond_tree_C = df['종자'] == 'C' cond_tree_D = df['종자'] == 'D' cond_fert_1 = df['비료'] == 11 cond_fert_2 = df['비료'] == 12 cond_fert_3 = df['비료'] == 13 print(shapiro(df[cond_tree_A & cond_fert_1]['토마토수'])) print(shapiro(df[cond_tree_A & cond_fert_2]['토마토수'])) print(shapiro(df[cond_tree_A & cond_fert_3]['토마토수'])) print(shapiro(df[cond_tree_B & cond_fert_1]['토마토수'])) print(shapiro(df[cond_tree_B & cond_fert_2]['토마토수'])) print(shapiro(df[cond_tree_B & cond_fert_3]['토마토수'])) print(shapiro(df[cond_tree_C & cond_fert_1]['토마토수'])) print(shapiro(df[cond_tree_C & cond_fert_2]['토마토수'])) print(shapiro(df[cond_tree_C & cond_fert_3]['토마토수'])) print(shapiro(df[cond_tree_D & cond_fert_1]['토마토수'])) print(shapiro(df[cond_tree_D & cond_fert_2]['토마토수'])) print(shapiro(df[cond_tree_D & cond_fert_3]['토마토수'])) 단일표본검정, 대응표본검정, 독립표본검정, 일원분산분석에선 stats.shapiro() 괄호 안에 준비된 데이터에서 하나의 열만 들어갔는데,이원분산분석에서는 shapiro() 괄호 안에 df[cond_tree_A & cond_fert_1]['토마토수'] 이런식으로 들어가더라고요..제가 나름대로 이해해보려 했는데 이게 맞는지 궁금합니다. 종자, 비료 컬럼은 범주형 독립변수이기 때문에 정규성 검정을 할 수 없다.따라서 4개의 종자와 3개의 비료로부터 나올 수 있는 경우의 수(12가지) 모두에 해당하는 토마토수에 대해 정규성 검정을 한다. df[cond_tree_A & cond_fert_1]['토마토수'] 는 df에서 종자가 A이고 비료가 11에 해당하는 토마토수만 모아놓은 것이다.데이터 프레임에서 조건에 해당하는 특정 열의 데이터만 뽑아내려고 할때 df[조건]['열 이름'] 이런식으로 쓰면 된다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
stratify 설정 질문
1.분류모델에서 검증데이터 분할시 stratify 옵션은 타겟변수명 넣으면 될까요?예)train_test_split(train,target,test_size =0.2 , random_state =2022, stratify =target) 2.분류모델에서 는 평가모델에 상관없이 무조건 사용해도되는지요?제약사항이 있는지 궁금합니다.