묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4회 기출 유형 (작업형2) 관련 질문
안녕하세요 선생님!xgboost를 사용해 예측을 진행하려고 하니, ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3], got [1 2 3 4]위와 같은 에러코드가 나와, chat gpt에 물어보니, XGBoost가 클래스 레이블을 0부터 시작하는 정수 값으로 기대하기 때문입니다. 즉, XGBoost는 클래스 레이블이 [0, 1, 2, 3]과 같은 형식을 갖추기를 기대하는데, 현재 데이터는 [1, 2, 3, 4]로 되어 있습니다.이 문제를 해결하려면 클래스 레이블을 0부터 시작하도록 변경해야 합니다. 라고 답변을 주었는데, 코드를 수정해준 것을 보니, y 변수에 train['Segmentation']을 할당하여 LabelEncoding 을 진행하여 0부터 시작하는 데이터로 변환시켜주는 코드를 줬는데, 이 코드를 사용하여 예측하고 제출 csv 파일까지 만들어 확인해보니, Segmentation 예측을 1,2,3,4 로 한 것이 아닌 0,1,2,3 으로 예측하였는데...xgboost를 사용하기 위해서는 어느 부분을 수정하여야 할까요? 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출4회 유형2 문의드립니다.
기출4회 유형2 문의드립니다.Macro f1-core는 #*****평가(=교차검증)from sklearn.model_selection import cross_val_scorescore = cross_val_score(model, train, train['Segmentation'], scoring='f1_macro', cv=5)print(score)print(score.mean())이렇게 구하면 되는건가요? 그리고 아래와 같이 풀이해봤는데강사님께서 풀이하신 segmentation과 다른데 괜찮나요? 풀이과정에 문제는 없는지 확인 부탁드립니다. # 라이브러리 불러오기import pandas as pd# 데이터 불러오기train = pd.read_csv("train.csv")test = pd.read_csv("test.csv")#*****데이터확인train.shape, test.shapetrain.head(2)test.head(2)#문자형 6개# train.info()#결측치 없음train.isnull().sum()test.isnull().sum()#*****전처리#결측값 없음#train합치기 없음#인코딩from sklearn.preprocessing import LabelEncodercols= train.select_dtypes(include='object')colsfor col in cols : le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col])#id삭제train = train.drop('ID',axis=1)test_ = test.pop('ID')#*****분리from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split( train.drop('Segmentation',axis=1), train['Segmentation'], test_size=0.2, random_state=2022)#*****모델 max_depth=5~7 / n_estimators= 100~1000from sklearn.ensemble import RandomForestClassifiermodel = RandomForestClassifier(random_state=0, max_depth=7, n_estimators=500)model.fit(X_tr, y_tr)pred = model.predict(X_val)#*****평가(=교차검증)from sklearn.model_selection import cross_val_scorescore = cross_val_score(model, train, train['Segmentation'], scoring='f1_macro', cv=5)print(score)print(score.mean())#*****예측pred = model.predict(test)predsubmit = pd.DataFrame({ 'ID': test_ID, 'Segmentation': pred})submit#*****저장submit.to_csv('submission_csv', index=False)pd.read_csv('submission_csv')
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3-4 MinMaxScaling
안녕하세요. 범주형/수치형을 구분하지 않고 시험에서 진행하는 것이 좋다고 이전 유사질문에 답변주신 내용은 확인하였으나, 단순 궁금함으로 질문드립니다. 3-4 예시에서 이미 수치형과 범주형 데이터를 구분하여n_train에는 수치형 데이터 타입의 컬럼만 남아있는 것으로 이해했는데 아래와 같이 별도로 cols라는 수치형 컬럼만 모은 리스트를 따로 만들어 코드 작성을 진행하는 이유가 있을까요? n_train[cols] = scaler.fit_transform(n_train[cols]) 여기서 [cols]를 지웠더니 numpy 관련 오류가 나는 것으로 확인하였는데 자세한 내용이 궁금합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
7회기출 유형(작업형1)의 첫번째 문제의 해설 이해 안됩니다.
7회 기출 유형의 작업형 1번문제에서 가장 많이 수강한 과목을 찾기 위해서 id_assessment가 높은 과목으로 선정합니다.그런데, id_assessment 숫자가 제일 높은 것이 133인데 설명에서는 value_counts()를 사용해서 33이 제일 높고 이의 id가 12라고 설명하고 있습니다. 원본 data를 봐도 133인데 제가 문제를 잘못 이해하고 있는건지…도움 부탁드립니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 정리 강의
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요. 좋은 강의 항상 감사드립니다.작업형2 강의를 다시 듣고 있는데, 풀이가 다르고 방법이 여러가지이다보니 정리가 어려운 상황입니다. 강사님께서 비슷한 질문글에 작업형2 정리 강의를 조만간 준비하시겠다고 답변하신 것을 보게 되었는데, 혹시 계획이 있으신가요? 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
7회 기출유형(작업형3) 질문이요!
17:20 쯤에요 from statsmodels.formula.api imprt ols 에서 ols 대신에 logit을 써도 가능할까요?? 문제마다 ols 나 logit 이나 등등 어떤거를 써야하는지 이해가 어려워서 logit 하나만 사용하려고 생각중이어서요 ㅠㅠ..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출2회 작업형2유형 강의에서
17:17 화면에 보시면 random_state=2021 도 있고random_state=2022 도 있는데임의의 아무 정수를 설정하는건 알겠는데두개의 수가 같아야 하는것 아닌가요?한번 2021로 정했으면 2021로 쭉 해야하는것 아닌가요~?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
이원분산분석
이원분산분석에 대한 차이점이 명확하게 정리가 되지 않습니다.독립변수가 2개이면 포뮬러를 로 연결해주면 되는걸로 알고있는데, 무조건 *로 독립변수들을 연결해주어도 되는걸까요? 언제 종속~독립1+독립2+독립3로 해야할지 종속~독립1*독립2 로 해야할지 구분이 안가는데 이건 문제를 통해 확인해야하는걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
일원분산분석 관련 질문입니다.
안녕하세요 선생님. 먼저 훌륭한 강의와 자료를 제공해주셔서 정말 감사합니다. 덕분에 시험준비가 한층 수월하게 이루어지고 있는 것 같습니다.다름이 아니고 작업형3번 일원분산분석 부분에서 질문이 생겨 문의드립니다.정규성 가정과 등분산 가정을 모두 만족하면 일원분산분석을 진행하고, 만약 정규성 가정을 만족하지 못하면 kruskal wallis 검정을 진행하는 것까지는 이해하였습니다.그런데 만약 문제에서 정규성 가정은 만족하나 levene검정 결과 등분산 가정을 만족하지 못하는 경우에는 어떻게 검정을 진행해야 하는지 궁금합니다. 가설검정의 경우에는 equal_var = False 매개변수를 설정하도록 방법이 안내되어 있으나 일원분산분석에는 관련 설명이 없기에 문의드립니다.감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
독립성 검정 코드
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요강의에서는from scipy.stats import chi2_contingencyprint(chi2_contingency(교차테이블명))이렇게 하셨는데from scipy import statsprint(stats.chi2_contingency(교차테이블명))이렇게 적어도 상관없나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
[색션 16, 작업형2] 어디가 틀렸는지 모르겠습니다.
계속 실행되다가.마지막에 model.fit(X_tr, y_tr)을 코딩하면 자꾸 에러가 납니다 ㅠ 어디가 문제인걸까요..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
반복측정 분산분석
어떤 수험교재 문제에서는 반복측정 분산분석을 구하라는 문제도 나오는데, 반복측정 분석분석 대해서도 예제로 풀이 설명해 주실 수 있는지요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 4회 (작업형 2)
랜덤포레스트로 모델을 학습하고 train_test_split으로 데이터를 나누지 않은 이유는 교차검증이 그 역할을 대신해서 그런건가요?? 교차검증을 스스로 생각해내기는 어려울거 같은데 그러면 평소처럼 train_test_split으로 데이터를 나누고 잘 모르는 macro f1_score 대신에 다른 평가지표를 사용해서 제출해도 되는걸까요??선생님 항상 친절한 답변 감사합니다 🥹🥹
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
오류
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")pd.set_option('display.max_columns',None) train['환불금액'] = train['환불금액'].fillna(0)test['환불금액'] = test['환불금액'].fillna(0) cols = train.select_dtypes(exclude='object').columnstarget = train.pop('성별') from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier()rf.fit(train[cols], target)pred = rf.predict_proba(test[cols])print(pred) 오류Makefile:6: recipe for target 'py3_run' failedmake: *** [py3_run] Error 1Traceback (most recent call last): File "/goorm/Main.out", line 29, in <module> model.fit(train[cols], target) File "/usr/local/lib/python3.9/dist-packages/pandas/core/frame.py", line 3511, in getitem indexer = self.columns._get_indexer_strict(key, "columns")[1] File "/usr/local/lib/python3.9/dist-packages/pandas/core/indexes/base.py", line 5782, in getindexer_strict self._raise_if_missing(keyarr, indexer, axis_name) File "/usr/local/lib/python3.9/dist-packages/pandas/core/indexes/base.py", line 5845, in raiseif_missing raise KeyError(f"{not_found} not in index")KeyError: "['성별'] not in index"도와주세요 왜 select_dtypes로 쓰니까 안되나요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 1 모의문제 4번 행단위로 합한 값이 3000보다 큰 값 데이터 수 구하
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요이렇게 작성해도 답은 같게 나오는데 이렇게 풀어도 될까요?import pandas as pd pd.read_csv('members.csv') df=pd.read_csv('members.csv') cut = df.select_dtypes(include='object').columns #exclude도 있다 df= df.drop(cut,axis=1) df = df.fillna(0) df.head() df = df.sum(axis = 1) sum(df > 3000)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3번 2018-01 과 dt.year/month 차이점
df['date_added']=pd.to_datetime(df['date_added'])a=df['date_added']=='2018-01'b=df['country']=='United Kingdom'df[a&b] 이렇게 하면 3이 나오는데 이유가 무엇일까요? 2018-01로 필터는 되는거같은데 차이점이 있는지 궁금합니다. dt.year/month 각각 나눠줘야만 정답출력되는건지도요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
수치형, 범주형 데이터 분리 기준
선생님 어떤 문제풀이에서는 데이터에 수치, 범주형 데이터가 섞여 있어도 분리하지 않고 어떤 문제에서는 따로 분리해서 전처리 하시는데 혹시 기준이 있을까요?그리고 만약에 범주형 데이터를 레이블인코딩으로 cols = train.select_dtypes(include = 'object') ,, for col in cols 이런식으로 셀렉트 디타입으로 반복문을 사용할 거라면굳이 수치형, 범주형을 나눌 필요가 없는건가요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 T2-5. Insurance Forecast (Regression) 질문
y= y_train['charges'] # X_train.info() object : sex, smoker,region # X_train.isnull().sum() --> 결측값 없음 X_train.head(2) drop_col = ['id'] train_drop = X_train.drop(columns=drop_col) test_drop = X_test.drop(columns=drop_col) #원핫인코딩 X_train_dummies = pd.get_dummies(train_drop) X_test_dummies = pd.get_dummies(test_drop) #train_test_split from sklearn.model_selection import train_test_split x_tr,x_val,y_tr,y_val = train_test_split(X_train_dummies,y,test_size=0.33, random_state = 42) #랜포 from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit(x_tr,y_tr) pred = model.predict(x_val) #평가 from sklearn.metrics import mean_squared_error,r2_score,mean_absolute_error import numpy as np print("rmse", np.sqrt(mean_squared_error(y_val,pred))) print("r2_score",r2_score(y_val,pred)) print("mae", mean_absolute_error(y_val,pred)) #저장 answer = model.predict(X_test_dummies) result = pd.DataFrame({'id': X_test.id, 'charges' : answer}) result.to_csv('00000.csv', index = False) output = pd.read_csv("00000.csv") print(output.head(2)) 선생님 안녕하세요. 지금 코드 틀 외워서 하나하나 문제 풀어보고 있습니다.. 작년에 회귀문제에서 된통 당한 이후로 꼼꼼히 보고 있는데 아직 확신이 서지 않습니다 ㅠㅠ 혹시 여기서 코드 오류가 있을까요..?더불어 T2-5의 경우 결측치도 없고, object도 별로 없어서 get_dummies로 해결했는데T2-4처럼 결측치도 많은데다가 object도 많이 있으면 어떻게 해야할지도 잘 모르겠습니다..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
shapiro 검정을 하는 경우, 반드시 정규성을 따르지 않는 것 아닌가요?
현재 독립표본검정 - 단일표본검정, 대응표본검정까지들었습니다. 문제에 '정규분포에 따른다'는 말이 없으면shapiro 검정을 통해 정규분포를 따르는지, 아닌지부터 따져야 하는데 현재 강의의 예는 정규분포를 따르지 않는 것만 있는 것 같아서 확인 차 여쭙습니다. shapiro 검정 결과 정규분포를 따를 때에는문제에 정규분포를 따른다고 할 때와 같이 wilcoxon이 아닌 ttest로 검정하는것 맞을까요 ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 T1-35번 (2)문제 질문드립니다.
선생님 안녕하세요. T1-35 2번문제 풀다가 질문있습니다.이렇게 풀때, 정답이 아무리해도 10580.0이 나오는데 어디 부분이 잘못되었을까요? new = df[df['Feedback'].str.contains('제품')] new.groupby('Category')['Feedback'].size() #서비스 df['OrderDate'] = pd.to_datetime(df['OrderDate']) df['ArrivalDate'] = pd.to_datetime(df['ArrivalDate']) df['배송시간(분)'] = (df['ArrivalDate'] - df['OrderDate']).dt.total_seconds()/60 answer = new[new['Category'] == "서비스"]['배송시간(분)'].mean() answer