묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4회 기출유형 작업형1 2번문제
안녕하세요~ 데이터의 개수를 구할때 len과 sum의 차이가 궁금합니다 ㅠㅠ 예를들어 4회 기출유형 작업형1의 2번문제와 같은경우 문제 : (loves반응+wows반응)/(reactions반응) 비율이 0.4보다 크고 0.5보다 작으면서, type 컬럼이 'video'인 데이터의 갯수이고,최종 데이터 개수를 구할때 len 함수를 사용했습니다. 코드 : cond1 =(df['loves'] + df['wows'])/df['reactions'] > 0.4cond2 =(df['loves'] + df['wows'])/df['reactions'] < 0.5cond3 = df['type'] =="video"len(df[cond1 & cond2 & cond3])sum으로는 왜 안되는걸까요? ㅠㅠ 예시는 없지만 작업형1 유형에서 다른 문제는 데이터 개수를 구할때 sum을 사용한적도 있던것 같아서 문의드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
음수값 처리는 어떻게 하나요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 3000개 이상의 train 데이터에 대해 EDA할때 describe 함수를 통해 가격(음수가 있으면 안되는) 컬럼에서 - 값이 일부 있다는 것을 발견하면어떻게 이를 처리하는 것이 좋은지 그 방법, 함수를 알려주시면 감사하겠습니다!아예 그 행을 삭제하는 것, 음수값을 어떻게 대체할 수있는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모의고사 풀어보기2 관련 질문드립니다~!
안녕하세요! 모의고사 풀어보기2에서 시험환경 체험링크를 통해 하이퍼 파라미터 튜닝 했을때 하기와 같은 에러가 나와 문의드립니다. 그냥 n_estimators 만 썼을때는 나오지 않았던 에러라 뭔가 제가 잘못 코딩한 부분이 있는 것인지 아니면 시험환경에서도 learning_rate 에러가 뜰 수 있는지 문의드립니다. 항상 깔끔한 강의내용 정말 감사드립니다! 코딩내용 : from sklearn.ensemble import RandomForestClassifiermodel=RandomForestClassifier(random_state=2023,n_estimators=200,learning_rate=0.05)model.fit(X_tr,y_tr)pred_ex=model.predict(X_val)에러내용 : TypeError: init() got an unexpected keyword argument 'learning_rate'
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
roc_auc_score
이진 분류 문제가 아닐 때, roc_auc_score에 파라미터 multi_class = 'ovr'사용해도 되나용?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3 회귀모형 삭제 예정이라고 기재해주셨는데요,
작업형3 회귀모형 삭제 예정이라고 기재해주셨는데요,삭제 예정인 이유와, 해당 모형이 시험에 출제 확률이 적어서 삭제 예정이신걸까요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
cut함수 describe결과의 ( ] 질문드립니다
질문이 약간 핑프스러워서 죄송합니다 ㅠcut 함수 리턴값의 describe 결과에 구간 표시 질문드립니다 예를 들어 (5, 12] 라고 하면 5 <= 구간 < 12 의 의미인지 궁금합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터프레임과 시리즈 차이
파이썬 내장함수 사용 시타입이 데이터프레임이냐 시리즈내에 따라서 사용가능한 함수가 다른 건가요? ex) drop 함수는 데이터프레임만 가능하고, fillna함수는 시리즈만 가능한지?df = df.dropna(subset=['qsec'])df['qsec'] = df['qsec'].fillna(0)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모의문제3 질문있습니다!
안녕하세요. 작업형2 모의문제3(에어비엔비 가격)을 직접 풀었을 아래와 같이 입력했습니다.저는 minmax_scale을 사용했고, 선생님께서 입력하신 결과와 비교를 하는데 사용하지 않았다는 것을 알게되었고 결과값도 다르게 나왔습니다.작업형 2유형 문제를 풀때마다 스케일링을 적용하고 있는데, minmax스케일을 하는 경우와 사용하지 않는 경우가 따로 있나요? 있다면 어떻게 구분할 수 있는지 궁금합니다. 그리고 위 문제에서 적용 안하신 자세한 이유도 궁금합니다.감사합니다! import pandas as pd train = pd.read_csv('train.csv') test = pd.read_csv('test.csv') # print(train.head()) # print(test.head()) # print(train.info()) # print(test.info()) train = train.drop(columns = 'id') test_id = test.pop('id') train = train.drop(columns = 'name') test = test.drop(columns = 'name') train = train.drop(columns = 'host_id') test = test.drop(columns = 'host_id') train = train.drop(columns = 'host_name') test = test.drop(columns = 'host_name') train = train.drop(columns = 'neighbourhood') test = test.drop(columns = 'neighbourhood') train = train.drop(columns = 'neighbourhood_group') test = test.drop(columns = 'neighbourhood_group') train = train.drop(columns = 'last_review') test = test.drop(columns = 'last_review') # print(train.info()) # print(test.info()) # print(train.isnull().sum()) # print(test.isnull().sum()) #last_review, reviews_per_month train['reviews_per_month'] = train['reviews_per_month'].fillna(0) test['reviews_per_month'] = test['reviews_per_month'].fillna(0) # print(train.isnull().sum()) # print(test.isnull().sum()) # print(train.info()) room_type,last_review # print(test.info()) from sklearn.preprocessing import LabelEncoder cols = train.select_dtypes(include = 'object').columns for col in cols: encoder = LabelEncoder() train[col] = encoder.fit_transform(train[col]) test[col] = encoder.transform(test[col]) # print(train.describe()) # print(test.describe()) from sklearn.preprocessing import minmax_scale cols2 = train.select_dtypes(exclude = 'object').columns for col in cols2: train[col] = minmax_scale(train[col]) cols3 = test.select_dtypes(exclude = 'object').columns for col in cols3: test[col] = minmax_scale(test[col]) # print(train.describe()) # print(test.describe()) # print(train.info()) # print(test.info()) from sklearn.model_selection import train_test_split X_train, X_val, y_train, y_val = train_test_split(train.drop('price', axis = 1), train['price'], test_size=0.2, random_state = 20) from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor() rf.fit(X_train, y_train) pred_val = rf.predict(X_val) from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score # print(mean_squared_error(y_val, pred_val)) # print(mean_absolute_error(y_val, pred_val)) # print(r2_score(y_val, pred_val)) pred = rf.predict(test) pd.DataFrame({'id': test_id, 'price': pred}).to_csv('5959.csv', index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
수치형 변수 스케일링 하기
안녕하세요.강의 잘 듣고 있습니다. 작업형 2 문제에서 피처엔지니어링 할 때범주형 변수는 모두 원핫 / 라벨인코딩을 하면 되는데수치형 변수는 어떤 칼럼을 스케일링하면 되는지....표준편차가 튀는 칼럼만 민맥/스태다드 스캘링을 하면 되는지...강사님만의 구분법이 있나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
왜 오류가 나는지 모르겠습니다!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요MinMaxScaler에는 fit_transform 이 아닌가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험 시 최종 제출 형태에 관해 질문 있습니다!
시험 시 최종적으로 제출해야 하는 형태가 작업형 1 : print문을 통해 나온 출력 값작업형 2 : csv파일작업형 3 : 답 입력하는 칸에 따로 출력 값 입력이렇게 제출하는 것으로 알고 있습니다!이 때, 작업형 2의 경우 print문을 통해 평가 점수를 출력해보게 되는데, 따로 지우지는 않아도 문제가 되지 않는지 궁금합니다. (csv파일만 제대로 제출되면 그 외 다른 것들이 출력되어도 상관없는지, 또는 print문을 지워서 문제가 되지는 않는지 궁금합니다.)또 작업형 3도 마찬가지로 print문을 통해 검정통계량값이나 p값 등의 숫자를 출력하게 되는데, 답 입력란에만 제대로 입력하면 따로 print문을 지워서 문제가 되거나, 지우지 않아서 문제가 되는 것은 아닌지 궁금합니다.시험이 다가와 긴장되다 보니 사소한 것들도 괜히 질문하게 되는 것 같아요🥲 그래도 선생님 덕분에 많이 걱정되지는 않는 것 같습니다. 항상 감사합니다 :)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4회 기출 유형(작업형2) 문제 풀이 과정 중에 질문드립니다.
안녕하세요!4회 기출 유형(작업형2) 문제 풀이 과정 중에 에러가 발생하여 질문 드립니다.이전까지 하던 대로 train_test_split을 통해 데이터를 분리해서 진행을 하였는데요from sklearn.model_selection import train_test_split x_tr, x_val, y_tr, y_val = train_test_split(train.drop('Segmentation', axis = 1), train['Segmentation'], test_size = 0.1, random_state = 2023) x_tr.shape, x_val.shape, y_tr.shape, y_val.shapefrom sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(n_estimators = 400, max_depth = 9, random_state = 2023) rf.fit(x_tr, y_tr) pred = rf.predict_proba(x_val)from sklearn.metrics import roc_auc_score roc_auc_score(y_val, pred, multi_class = 'ovo')pred = rf.predict_proba(test)submit = pd.DataFrame( { 'ID' : test_id, 'Segmentation': pred }) ValueError: Per-column arrays must each be 1-dimensional위와 같은 에러 메시지가 뜹니다!이리 저리 만져봐도 잘 모르겠네요 ㅠㅠ 어떻게 하면 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터나누기/자체예측하기/출력 전 데이터프레임만들기
코드 필사하면서 연습중인데 2유형의 경우, 항상 동일한 부분에서 어려움을 느끼고 있습니다.(이론을 완벽하게 이해하지 못한상태에서 따라만하기에 나타나는 문제점 입니다)기출2회를 풀어보면서 어려움을 느끼는 부분을 표시해 드릴테니왜 그 컬럼이 그 부분에 들어가는지 문제와 매칭하여... 설명해주실 수 있으실까요?더불어서 기출 4회 기준으로도 왜 그 코드가 들어가는지 추가설명해주시면감사하겠습니다.[기출2회 기준]#데이터 나누기항상 "문제"가 바뀔때마다 1번과 2번위치에 뭘 넣어야할지 헷갈립니다.이것저것 넣어봣는데 다 에러가 떠서....아래의 기준이 맞는지요?1번위치: x_train data set에서 id를 제외한 데이터들?2번위치: 출력이미지 기준으로 예측할 컬럼?저는 LightGBM기준으로 돌려봤는데, EDA 후object형을 카테고리화 한후 x_train data set에서 id컬럼만을 pop하는 과정을, 데이터 나누기 전에 미리 해줘야하는지요?X_test_ID=X_test.pop('ID')from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(y_train.drop('Reached.on.Time_Y.N',axis=1), y_train['Reached.on.Time_Y.N'], test_size=0.2, random_state=2000, ) import lightgbm as lgb model=lgb.LGBMClassifier(random_state=2000, max_depth=7, n_estimator=100, learning_rate=0.01) model.fit(X_tr, y_tr) pred=model.predict_proba(X_val) pred# 자체예측하기아래 3번도 문제가 바뀔때마다 어떤것을 넣어야할지 잘 모르겠습니다.from sklearn.metrics import roc_auc_score roc_auc_score(y_val,pred[:,1]) # random_state=2000, max_depth=5, n_estimator=100, learning_rate=0.01 / 0.7278342882937344 #최종제출전 데이터프레임만들기위에와 자꾸연결되는 부분인거 같은데설정을 잘못해주니 4,5번도 어떤것을 넣어햐하는지 헷갈립니다.데이터프레임 제목은 문제에 주어진 "출력할이미지"를 보고 가지고오지만4번의 경우는 id별로 도착하지 않을 확률을 구하는게 문제이니까X_train의 아이디를 가지고오는것같고5는 문제에서 주어진 예측값인 도착하지 않는 확률이 있는 열을 넣어주는거 같은데이게 위 코드에서 설정했던 값과 어떻게 이어지는건지 잘 이해되지 않습니다.4번의 경우, x_train data set에서 id컬럼만을 pop하는 과정?에서 X_test_ID가져옴..좀 더 일찍 물어봐야 할 질문인거 같은데 죄송합니다....답변해주시면 주어진 문제에 따라 어떤로직으로 해당 코드를 설정했는지 이해해보겠습니다. 2유형 기출 4회(데이터 2종)일 경우도 함께 설명해주시면어떤 문제에 따라 어떤 원리로 구하고자 하는 예측값 대비해서 해당 코드(1번위치~5번위치까지)들을 설정했는지 이해할수 있을 것 같습니다!감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실기 시험 관련 질문있습니다.
안녕하세요. 이번주 토요일에 시험을 곧 치루는 직장인입니다.실기 시험 관련해서 두가지 질문이 있습니다.시험 시작하면 유형1, 2, 3 순서 상관없이 유형3부터 풀고 제출하고 유형2 넘어가서 제출하고, 마지막으로 유형1 넘어가서 제출해도 되나요? 제한시간 안에만 풀고 나오면 되는지 궁금합니다.시험 중에 메모장 기능 사용해도 되나요? 시험을 하면서 중간중간 저장해놓고 싶은 코딩이나 답안을 메모장에 잠깐 입력해두었다가 활용할 수 있는지 궁금합니다.감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightGBM 질문입니다.
안녕하세요 강사님lightGBM 모델을 쓸 때, 분류뿐만 아니라 회귀에서도 사용가능한 모델인가요?만약 회귀에서 가능하다면import lightgbm as lgbmodel = lgb.LGBMRegressor(random_state=0)으로 작성하는 것이 맞나요?lightGBM 모델을 쓸 때, 기존 방식대로 전처리와 피처 엔지니어링을 한 상태에서 적용해도 큰 문제가 없을까요?회귀모델에서 하이퍼파리미터 적용 시, 분류와 동일하게 max_depth, n_estimators, learning_rate를 사용해도 괜찮나요? 항상 정성스러운 답변을 해주셔서 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
train_test_split에서 적절한 test_size는?
train_test_split에서 적절한 test_size는 무엇일까요? 보통 0.2인데, 종종 달라질 때가 있어서요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
y_test
# 데이터 및 라이브러리 로드하기 import pandas as pd train = pd.read_csv('/content/train.csv') test = pd.read_csv('/content/test.csv') Train = train.copy() X_train = Train.drop(['Attrition_Flag','CLIENTNUM'],axis=1) y_train = Train['Attrition_Flag'] X_test = test.copy() X_test_CL = X_test.pop('CLIENTNUM') # print(X_train.head()) # print(y_train.head()) # print(X_test.head()) # EDA # print(X_train.shape, X_test.shape, y_train.shape) # print(X_train.isnull().sum()) # print(X_test.isnull().sum()) # print(X_train.describe()) # print(X_test.describe()) # print(X_train.describe(include = object)) # print(X_test.describe(include = object)) # print(y_train.value_counts()) # 데이터 전처리 - 결측치 없음, 이상치 없음 # 피처 엔지니어링 cols1 = list(X_train.columns[X_train.dtypes == object]) # 범주형 cols2 = list(X_train.columns[X_train.dtypes != object]) # 수치형 # print(cols2, X_train.info()) Xc_train = X_train[cols1] # 범주형 Xc_test = X_test[cols1] Xn_train = X_train[cols2] # 수치형 Xn_test = X_test[cols2] Xc_train = pd.get_dummies(X_train[cols1]) # 범주형 데이터 원핫인코딩 Xc_test = pd.get_dummies(X_test[cols1]) from sklearn.preprocessing import RobustScaler Ro = RobustScaler() X_train[cols2] = Ro.fit_transform(X_train[cols2]) X_test[cols2] = Ro.transform(X_test[cols2]) Xn_train = X_train[cols2] # 수치형 Xn_test = X_test[cols2] X_train = pd.concat([Xc_train, Xn_train], axis = 1) X_test= pd.concat([Xc_test, Xn_test], axis = 1) # print(X_train.head()) # print(X_test.head()) # 데이터 분리 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(X_train, y_train, test_size = 0.15, random_state=2023) # print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) # 모델링 import lightgbm as lgb lg = lgb.LGBMClassifier(random_state=2023) lg.fit(X_tr, y_tr) predict = lg.predict(X_val) predictproba = lg.predict_proba(X_val) # 평가 및 제출 # ROC-AUC, 정확도(Accuracy), F1, 정밀도(Precision), 재현율(Recall) from sklearn.metrics import roc_auc_score, accuracy_score, f1_score, precision_score, recall_score # print(roc_auc_score(y_val, predictproba[:,1])) # print(accuracy_score(y_val, predict)) # print(f1_score(y_val, predict)) # print(precision_score(y_val, predict)) # print(recall_score(y_val, predict)) predictproba_final = lg.predict_proba(X_test) submit = pd.DataFrame( { 'CLIENTNUM':X_test_CL, 'Attrition_Flag':predictproba_final[:,1] } ) # submit.head() submit.to_csv('1.csv', index = False) # 제출 제대로 했나 확인 pd.read_csv('1.csv') # y_test = pd.read_csv('/content/y_test.csv') print(roc_auc_score(y_test, predictproba_final[:,1]))print(roc_auc_score(y_test, predictproba_final[:,1]))만 되고 print(roc_auc_score(y_test, predictproba[:,1]))는 안되는게 정상인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회기출 작업형2유형을 lightgbm을 활용하여 풀이할 때 질문드립니다
강사님 안녕하세요!시험 전 ligthgbm에 대해서도 말씀해주셔서 감사합니다 다름이 아니라 해당 알고리즘을 활용해보고자 5회기출 작업형 2문제에 풀어보았는데rmse값이 너무 큰 값이 나와.. 문제가 무엇인지 알고싶습니다 ㅠㅠ 제가 어디부분을 잘못 코드 작성하였는지 알 수 있을까요?자동차가격 예측문제로lgb 회귀로 작성하였습니다. 확인 부탁드립니다 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3 풀이 관련
안녕하세요. 늘 좋은 강의 감사합니다.작업형3과 관련해 문의가 있습니다.우선 이번에 예시로 나온 문제 풀이의 경우 "μ d = 치료 후 혈압 - 치료 전 혈압"이기 때문에귀무가설(H0): μ d >=0 대립가설(H1): μ d < 0stats.ttest_rel(df["bp_after"],df["bp_before"],alternative="less")와 같이 코딩을 해야 한다고 알려주셨습니다. (bp_after와 bp_before 순서 헷깔리지 말기!) 그런데 작업형2 예시 중 독립표본 예시의 경우 아래의 가설 검증 시 풀이가 다음과 같았습니다.귀무가설(H0): μ 1 = μ 2, A집단과 B집단 시험 평균 점수는 같다대립가설(H1): μ 1 < μ 2, A집단이 B집단 보다 평균 점수가 작다stats.ttest_ind(df["Agroup"],df["Bgroup"],alternative="less")위의 코딩에서는 Bgroup, Agroup 순서가 아니고 반대인데, 조금 헷깔리더라구요. 설명해주시면 감사하겠습니다~
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주형, 수치형 데이터 분리해서 전처리
범주형, 수치형 컬럼을 각각 train, test 나눠서 수치형은 MinMaxscaler범주형은 LabelEncoder 이런식으로 진행을하고나중에 pd.concat으로 합쳐주는 과정을 거치다보면특히 합치는 과정에서 오류를 많이 내고 있는 상황인데요 type2-ex처럼범주형 '주구매상품', '주구매지점' 컬럼을 각각 라벨 인코딩해주고나머지 cols에 수치형 모아서 인코딩하는 방식으로 따로 데이터 분리했다가 결합하는 과정 없이 진행해도 무방한가요?