묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
다중 회귀 분석에서 유형[T.C]의 의미 (영상 37초)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요제목 그대로 다중선형 회귀 분석 시에 from statsmodels.formula.api import olsmodel=ols('종속~독립1+유형(범주형)',data=df).fit()하고 summary() 했을 때 유형[T.C] ,유형[T.B] 이것의 의미는 뭘까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
결측치 채우기 질문
안녕하세요 수치형 변수 결측치를 채울 때X_test 데이터에는 X_test의 age 평균값이 들어가야 한다고 생각했는데X_test['age'] 에 X_train['age']의 평균값을 넣는데 이유가 있을까요?주당 근무시간에 대해서도 test 데이터에 train 데이터의 중앙값을 넣어주던데 같은 질문입니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출유형(작업형2) 채점부분 질문
채점부분 코드 돌리려는데, 이렇게 오류가 뜨네요.제 풀이는import pandas as pdfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scorefrom sklearn.metrics import precision_scorefrom sklearn.metrics import recall_scorefrom sklearn.metrics import f1_scorefrom sklearn.metrics import confusion_matrixfrom sklearn.metrics import roc_auc_scoredf1 = pd.read_csv('/content/drive/MyDrive/bigdata(빅분기 놀이터)/기출문제/3회/train.csv')# print(df1.head())# print(df1.info())# print(df1.describe())df2 = pd.read_csv('/content/drive/MyDrive/bigdata(빅분기 놀이터)/기출문제/3회/test.csv')# print(df2.head())# print(df2.info())# print(df2.describe())df1['TravelInsurance'] = df1['TravelInsurance'].astype('category')x = df1.drop('TravelInsurance', axis=1)y = df1['TravelInsurance']x_encoded = pd.get_dummies(x)x_train, x_valid, y_train, y_valid = train_test_split(x_encoded.drop('Unnamed: 0', axis=1), y, test_size=0.25)md = RandomForestClassifier(n_estimators=300)md.fit(x_train, y_train)pred = md.predict(x_valid)cm = confusion_matrix(y_valid, pred, labels=[1,0])print(cm)print(accuracy_score(y_valid, pred))print(precision_score(y_valid, pred))print(recall_score(y_valid, pred))print(f1_score(y_valid, pred))print(roc_auc_score(y_valid, pred))x_test = df2x_test_encoded = pd.get_dummies(x_test)md = RandomForestClassifier(n_estimators=300)md.fit(x_encoded.drop('Unnamed: 0', axis=1), y)pred = md.predict_proba(x_test_encoded.drop('Unnamed: 0', axis=1))# print(pred)result = pd.DataFrame({'y_pred' : pred[:, 1]}).reset_index()print(result)result.to_csv('기출유형 3회 (작업형2) 답안.csv', index = False)입니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
7회 3형 질문
# 1) 학습 데이터와 테스트 데이터 분리 X_train = train[['weight']] y_train = train['gender'] X_test = test[['weight']] y_test = test['gender']x_train, x_test는 대괄호가 2개고, y_train, y_test는 대괄호가 1개인 이유가 무엇인가여....
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6:58 mannwhitneyu 검정 시 질문
p-value값이 0.4이므로 귀무가설을 채택한다는 것은 결국 대립가설을 기각한다는 뜻이므로 B점수가 더 높다는 것을 기각한다는 뜻인가요?혹시나 해서 A 와 B각각 평균을 내보았더니 A는 60점대고 B는 80점대였습니다.제가 잘못 이해했는지 모르겠는데, B의 평균이 더 높기 때문에 원래대로라면 p값이 0.05보다 작게 나왔어야 하는 것 같은데 왜 그런가요 ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
수치형 데이터 스케일링
수치형 데이터 스케일링 할때,범주형 데이터 라벨 인코딩 하듯이, 아래와 같은 방법으로 해도 되는지요? 에러가 나서, 방법이 자체가 잘 못 된건지.. 아니면 방법은 틀리지 않은데, 부분적인 코드 작성에 실수가 있는건지 .... 여쭤보고 싶습니다. ^^;;from sklearn.preprocessing import MinMaxScaler n_cols = ['Age', 'AnnualIncome', 'FamilyMembers', 'ChronicDiseases'] for n_col in n_cols : scaler = MinMaxScaler() X_train[n_col] = scaler.fit_transform(X_train[n_col]) test[n_col] = scaler.transform(test[n_col])
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 관련 질문
강의를 완강하고 캐글로 공부하려고 하는데 수업때 풀었던문제랑 겹치는 문제가 무엇인지 궁금합니다. 또는 우선순위랑 필수문제가 있는지, 수업이랑 겹쳐서 볼 필요 없는 문제는 무엇인지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2, 예측값(타겟)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요train = train.drop 할 때가 있고target = train.pop 할 때있는데 방법이 다른 이유가 무엇인지
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 2형 lightgbm질문
5회 2형 lightgbm으로 작성하면 아래와 같은 문구가 나타납니다. 혹시 어떤 부분이 잘못되었을까여??< 코드 >x_train = pd.get_dummies(x_train) x_test = pd.get_dummies(x_test)from sklearn.model_selection import train_test_split xx_train, xx_test, yy_train, yy_test = train_test_split(x_train, y_train, test_size = 0.2, random_state = 42)import lightgbm as lgb model_g = lgb.LGBMRegressor(n_estimators = 150, max_depth = 4, random_state = 42) model_g.fit(xx_train, yy_train) pred_t_g = model_g.predict(xx_test) < 에러 메세지 >[LightGBM] [Warning] Found whitespace in feature_names, replace with underlines[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000399 seconds.You can set force_row_wise=true to remove the overhead.And if memory is not enough, you can set force_col_wise=true.[LightGBM] [Info] Total Bins 395[LightGBM] [Info] Number of data points in the train set: 3007, number of used features: 23[LightGBM] [Info] Start training from score 12318.722980[LightGBM] [Warning] No further splits with positive gain, best gain: -inf[LightGBM] [Warning] No further splits with positive gain, best gain: -inf
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
선형회귀, 분산분석 등 질문
종자가 문자형이라 C()를 하는 것인데, ols에서 자체적으로 원핫 인코딩을 진행한다고 들었던 것 같은데, 그럼 C를 안붙여도 되지 않을까 해서 진행해봤는데, 값이 똑같이 나옵니다. 그냥 C()붙이는걸 생각 안해도 괜찮을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 T1 -12 하위, 상위 10개차이
안녕하세요! # 주어진 데이터에서 상위 10개 국가의 접종률 평균과 하위 10개 국가의 접종률 평균을 구하고, 그 차이를 구해보세요 # (단, 100%가 넘는 접종률 제거, 소수 첫째자리까지 출력)이 문제에서 df2 = df.groupby('country').max() 왜 이 코드가 나오는지 이해를 못하겠습니다 ㅜ국가별로 접종률의 최대값이 나오는건가요?? 상, 하위국가를 구해야하니 국가별로 groupby를 해야하는 것은 알겠는데 max를 하는 이유는 무엇일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3 로지스틱 회귀
https://www.kaggle.com/code/agileteam/t3-2-example-py/캐글에 올려주신 문제를 보고 있는데 위랑 아래 각각 결과가 다른데 이유를 모르겠어서 문의남깁니다.로지스틱 회귀 문제의 계수문제는 logit으로 푸는게 맞는걸까요?import pandas as pd from sklearn.linear_model import LogisticRegression # 데이터 로드 df = pd.read_csv('/kaggle/input/bigdatacertificationkr/Titanic.csv') # 데이터 전처리 df['Gender'] = df['Gender'].map({'male': 0, 'female': 1}) # 로지스틱 회귀 모형 생성 및 학습 X = df[['Pclass', 'Gender', 'SibSp', 'Parch']] y = df['Survived'] model = LogisticRegression() model.fit(X, y) # parch 변수의 계수값 출력 print("Parch 변수의 계수값:", model.coef_[0][3])import pandas as pd from statsmodels.formula.api import logit df = pd.read_csv("/kaggle/input/bigdatacertificationkr/Titanic.csv") formula = "Survived ~ C(Pclass) + Gender + SibSp + Parch" model = logit(formula, data=df).fit() model.params['Parch']
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원핫인코딩 문의
범주형 변수만 선택하여 아래와 같이 원핫인코딩했는데 타입이 모두 bool 바꼈습니다. 왜 int로 안바뀌는지궁금합니다. 또 bool 상태로 계속 진행해도 괜찮은가요? c_cols = ['Gender', 'Ever_Married', 'Graduated', 'Profession', 'Spending_Score', 'Var_1'] train = pd.get_dummies(train,c_cols) test = pd.get_dummies(test,c_cols)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
카이제곱검정 기대빈도
안녕하세요 6회 작업형 3에 질문이생겨서 문의드립니다. 카이제곱 적합성검정의 경우 모든 기대빈도가 5이상일때 사용한다고 알고있었는데요배포해주신 문제의 데이터는 보면 무증상 70% 그외 30%로 전체데이터수를 곱해 빈도로 변환해주면 [2.0, 1.0, 3.0, 14.0]입니다.문제가 [감기약의 예상 부작용 비율과 항암약의 부작용 관찰값이 통계적으로 유의미하게 차이가 있는지 확인하려 한다. 카이 제곱 검정을 사용하여 검정 통계량을 구하시오.] 이경우 기대값에서 빈도가 5이하인 아픔: 10% 조금 아픔 5% 속 쓰림 15% 의 범주를 합쳐주고 검정을 해야하는것 아닌가요?그냥 검정을해도 값이 나오긴하지만 이 값이 신뢰할만한 값이라고 할수있는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회 기출 유형 작업형2
안녕하세요, 6회 기출 유형 작업형2에서오브젝트형은 제외하고 분석하니f1_score값이 0.96이 나왔고, 선생님은 get_dummies 하니 0.9 이상으로 높은점수가 나오더라구요Q1) 오브젝트형 제외해서 높은점수 나오면 제외해도 될까요 ? Q2) 제외를 안하고 모델에 포함시킨다면 get_dummies 말고 LabelEncoder()를 사용해도 될까요 ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
roc_auc에서 DataConversionWarning 발생
체험환경 2유형 학습중에 DataConversionWarning가 발생해서 문의드립니다. 아래와 같이 코드 작성 후에 roc_auc로 성능평가하는 과정에서 워닝이 발생했는데 이유가 무엇인가요?? # print(train.shape, test.shape) # (3500, 11) (2482, 10)# print(train.isnull().sum())# print(test.isnull().sum())train = train.fillna({'환불금액' : train['환불금액'].median()})test = test.fillna({'환불금액' : test['환불금액'].median()})# print(train.isnull().sum().sum())# print(test.isnull().sum().sum())# print(train.info())# print(test.info())# print(train.describe(include='O'))# print(test.describe(include='O'))# print(train.head())target = train.pop('성별')train = train.drop(['회원ID'], axis=1)test_id = test.pop('회원ID')# print(train.shape, test.shape) c_train = train.select_dtypes(exclude='number')n_train = train.select_dtypes(include='number')c_test = test.select_dtypes(exclude='number')n_test = test.select_dtypes(include='number')from sklearn.preprocessing import LabelEncoderfor i in c_train.columns: le = LabelEncoder() c_train[i] = le.fit_transform(c_train[[i]]) c_test[i] = le.transform(c_test[[i]])train = pd.concat([c_train, n_train], axis=1)test = pd.concat([c_test, n_test], axis=1)# print(train.head())# print(train.shape, test.shape)from sklearn.model_selection import train_test_splitx_tr, x_val, y_tr, y_val = train_test_split(train, target, random_state=2024, test_size=0.2, stratify=target)print(x_tr.shape, x_val.shape, y_tr.shape, y_val.shape)from sklearn.ensemble import RandomForestClassifierrfc = RandomForestClassifier(random_state=2024)rfc.fit(x_tr, y_tr)pred1 = rfc.predict_proba(x_val)print(pred1[:,1].shape)print(y_val.shape)from sklearn.metrics import roc_auc_scoreprint(roc_auc_score(y_val, pred1[:,1])) >>프로세스가 시작되었습니다.(입력값을 직접 입력해 주세요)> (2800, 9) (700, 9) (2800,) (700,)(700,)(700,)0.6341283030687979/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). return f(*args, **kwargs)/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). return f(*args, **kwargs)/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). return f(*args, **kwargs)/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel(). return f(*args, **kwargs)프로세스가 종료되었습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출4-작업형1 sum, len 관련 질문
기출문제4-작업형1 에서 데이터의 갯수를 구하는 부분에서 강의 답안에는 len 을 사용하셨는데아래와 같이 sum 사용시에는 에러가 나는 이유가 궁금합니다. print(len(df[cond1 & cond2 & cond3])) #6 데이터프레임의 행의 개수print(len(cond1 & cond2 & cond3)) #8807, true/false 경우 모두 포함print(sum(cond1 & cond2 & cond3)) #6 true만 계산print(sum(df[cond1 & cond2 & cond3])) #오류나는 이유???
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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 입니다!