묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3 범주형 변수 관련 질문
선생님 안녕하세요!작업형3 로지스틱 회귀모형을 진행할 때범주형 데이터는 C()로 묶어서 하라고 말씀해주셨는데, 강의에서 만약 범주형 데이터인지 헷갈린다면 모두 C()로 묶어서 하라고 하셨던 것으로 기억하는데그렇게하면 에러가 뜨는데 왜일까요??# 2. # 로지스틱 회귀모형 from statsmodels.formula.api import logit # model = logit('Survived ~ C(Gender) + C(SibSp) + C(Parch) + C(Fare)', data=df).fit() --> error # print(df.head()) model = logit('Survived ~ C(Gender) + SibSp + Parch + Fare', data=df).fit() print(model.summary()) # print(model.params['Parch']) # 답 : -0.201Warning: Maximum number of iterations has been exceeded. Current function value: inf Iterations: 35 Makefile:6: recipe for target 'py3_run' failed make: *** [py3_run] Error 1 /usr/local/lib/python3.9/dist-packages/statsmodels/discrete/discrete_model.py:1819: RuntimeWarning: overflow encountered in exp return 1/(1+np.exp(-X)) /usr/local/lib/python3.9/dist-packages/statsmodels/discrete/discrete_model.py:1872: RuntimeWarning: divide by zero encountered in log return np.sum(np.log(self.cdf(q*np.dot(X,params)))) Traceback (most recent call last): File "/goorm/Main.out", line 26, in <module> model = logit('Survived ~ C(Gender) + C(SibSp) + C(Parch) + C(Fare)', data=df).fit() File "/usr/local/lib/python3.9/dist-packages/statsmodels/discrete/discrete_model.py", line 1983, in fit bnryfit = super().fit(start_params=start_params, File "/usr/local/lib/python3.9/dist-packages/statsmodels/discrete/discrete_model.py", line 230, in fit mlefit = super().fit(start_params=start_params, File "/usr/local/lib/python3.9/dist-packages/statsmodels/base/model.py", line 579, in fit Hinv = np.linalg.inv(-retvals['Hessian']) / nobs File "<__array_function__ internals>", line 5, in inv File "/usr/local/lib/python3.9/dist-packages/numpy/linalg/linalg.py", line 545, in inv ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj) File "/usr/local/lib/python3.9/dist-packages/numpy/linalg/linalg.py", line 88, in _raise_linalgerror_singular raise LinAlgError("Singular matrix") numpy.linalg.LinAlgError: Singular matrix
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
random_state 값에 따라서 값이 큰 차이가 나는 경우가 있나여 ?
안녕하세요 2유형을 공부하는 중에 train_test_split의 random_state 값에 따라서 값의 편차가 크게 차이 나는 것을 발견했습니다. # random_state = 1 : 0.8643817947300534 # random_state = 2023 : 0.7804496038326884이 정도로 차이가 나는데 테스트 값에는 크게 영항이 없는 것인가요 ? 다른 코드들은 모두 동일했습니다 ! import pandas as pd import warnings warnings.filterwarnings('ignore') train= pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/main/stroke_/train.csv') test= pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/main/stroke_/test.csv') train = train.drop('id',axis=1) test_id = test.pop('id') y_train = train.pop('stroke') # 결측치 채우기 train['bmi'] = train['bmi'].fillna(train['bmi'].mean()) test['bmi'] = test['bmi'].fillna(train['bmi'].mean()) train['age'] = train['age'].str.replace('*','').astype('int') # StandarScaler # print(train.info()) # train.nunique() cols = ['age','avg_glucose_level', 'bmi'] from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() train[cols] = scaler.fit_transform(train[cols]) test[cols] = scaler.transform(test[cols]) # LabelEncoder from sklearn.preprocessing import LabelEncoder le = LabelEncoder() train['gender'] = le.fit_transform(train[['gender']]) test['gender'] = le.fit_transform(test[['gender']]) # get_dummies train = pd.get_dummies(train) test = pd.get_dummies(test) cols = ['ever_married_No','work_type_Govt_job','Residence_type_Rural','smoking_status_Unknown'] train = train.drop(cols,axis=1) test = test.drop(cols,axis=1) from sklearn.model_selection import train_test_split X_tr,X_val,y_tr,y_val = train_test_split(train,y_train,test_size=0.2,random_state=2023,stratify = y_train) from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier(random_state=2023,n_estimators = 200) model.fit(X_tr,y_tr) pred_val = model.predict_proba(X_val) from sklearn.metrics import roc_auc_score roc_auc_score(y_val,pred_val[:,1]) # random_state = 1 : 0.8643817947300534 # random_state = 2023 : 0.7804496038326884
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1, 작업형3 답안제출 문의드립니다
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 실기 답안 제출 방식이 6회->7회 변경된 것 같습니다.작업형1, 작업형3 답안 제출 방식이 혼동스러워서, 문의드립니다. 제6회 빅데이터분석기사 실기 자격검정 안내제7회 빅데이터분석기사 실기 자격검정 안내 6회에서는 별도의 (답안제출)공간이 없었기 때문에 코드 작성 구간에 print()문으로 답안을 기입했던 것으로 유추가 됩니다. 그렇다면 7회에서는 (풀이용)에 작성하는 코드는 채점에 미반영되며, 오로지 (답안제출)로만 채점반영 한다고 판단하면 될까요? 작업형1, 작업형3 코드 작성 화면에도 <제출> 버튼이 있기에, (풀이용)에 별도로 print()문 작성 및 제출해야 하는 것인지 의문이 들었습니다. 사소하지만, 정확하게 알고 넘어가지 않으면 0점 받을 수도 있는 사안이기에 질문 드립니다. 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출6회 작업형3 1번문제 질문
선생님 안녕하세요! 기출6회 작업형3에서 질문드립니다.선생님 강의 풀이에서는 ob = df['항암약'].value_counts().sort_index().to_list() ex = [0.1 * 20, 0.05 * 20, 0.15 * 20, 0.7 * 20]from scipy import stats stats.chisquare(ob, ex)이렇게 사용하셨을때 정상적으로 답안이 제출되더라고요. ob값을 제일 쉽게 구하기 위해서, df['항암약'].value_counts().sort_index() 한 뒤,나온 수를 ob값에 넣어두고 풀면 위와 같은 오류가 나오는데 어떻게 풀 수 있을까요? ㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
넘파이 std,var 와 판다스 var(), std() 문의
강의에 따르면 아래와 같이case1은 서로 같고, case2도 서로 같아야 하는데 다르게 나옵니다. 뭐가 문제일까요..?df를 np.array로 받아서 판다스로 std를 구하는데 변화가 있는건가요..? a = [1,3,5,7,8,9,10,14]df = np.array(a)case1: df.std() = np.std(df,ddof=1)case2: df.std(ddof=0) = np.std(df) df.std() #3.8548np.std(df,ddof=1) #4.1209df.std(ddof=0) #3.8548np.std(df) #3.8548
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 분리할때 stratify=y 옵션을 적용하는 방법과 효과 등에 대해
분류 문제에서 학습 데이터와 검증 데이터를 분리할 때 stratify=y 옵션을 사용하는 것을 강조하는 글을 본 적이 있습니다.반드시 사용하는 것이 좋은가요?특히 실기시험에서 효용성이 있는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 분리할때 stratify=y 옵션
데이터 분리할때 stratify=y 옵션을 강조하는 글을 본적 있습니다. 이렇게 설정하여야 하는 이유가 있나요?빅분기 실기 시험에서 어떤 효용이 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 풀이 시에 데이터 전처리
모의고사2 와 같은 작업형2 문항을 풀이할 때시험 문제에서 특별히 데이터 전처리에 대한 언급이 없다면데이터 전처리를 하지 않고 바로 데이터 분리와 학습으로 넘어가도 되는 건가요...?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3유형 logit 이랑 ols
3유형 logit 이랑 ols 가 서로 다른건가요?로지스틱, 다중 회귀분석때동일하게 데이터를 뽑아서요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(구버전)의 X_train, X_test 주구매상품의 unique가 다른 문제
해당 데이터에서 X_train '주구매상품'의 unique는 42,X_test '주구매상품'의 unique는 41인데이렇게 unique가 다른 상태에서 데이터를 합치는 등의별도 처리 없이 바로 LabelEncoder를 써도 되는 걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
영상이랑 링크에 나오는 내용이 달라요 ㅠㅠ
영상에서 선생님이 보여주시는 예시와 링크를 타고 들어갔을때 완전히 달라서 학습하기가 너무 혼란스럽습니다..특히 작업형 2번 같은 경우에는 완전히 다른데 어떻게 해야하나요,,
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
선형회귀(ols) 사용 SSR/SST 구하기
안녕하세요, 선생님 3유형 선형회귀 문제에서 model 출력시 결정계수값은 나오는데, 혹시 결정계수를 구성하는 값인 SSR/SST, SSE의 값은 별도 model에서 호출할수 있는 값인지 문의드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출유형(작업형)
안녕하세요. 작업형2문제 시험준비를 범주형데이터는 모두 label로 인코딩하고, 모형은 randomforest를 활용하려고 합니다.강의해주신 내용은 수치형을 분리해서 작업을 하는데 만약, 제가 한 것처럼 하면 문제는 없는지 궁금합니다.(그냥 무턱대고 외워서 진행한거라서... 오류가 안난다 뿐인지, 코딩이 맞는지 확신이 없습니다.) 추가적으로, 원래는 index 이름이 없는 첫번째 열을 삭제 하고싶엇는데... 삭제를 못하겠더라구요 이럴경우 함수를 어떻게 적어야하는지 궁금합니다.import pandas as pdtrain = pd.read_csv("train.csv")test = pd.read_csv("test.csv") # print(train.shape, test.shape) # (1490, 10) (497, 9)# print(train.info(), test.info()) # object 4개# print(train.select_dtypes(include='object').columns) # 'Employment Type', 'GraduateOrNot', 'FrequentFlyer', 'EverTravelledAbroad'# print(test.select_dtypes(include='object').columns)# print(train.isnull().sum()) # 결측치x# print(test.isnull().sum()) # 결측치x # print(train['TravelInsurance'].value_counts()) # target 변수 값 확인from sklearn.preprocessing import LabelEncodercols=train.select_dtypes(include='object').columns# print(cols)for col in cols : 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.drop('TravelInsurance',axis=1), train['TravelInsurance'], test_size=0.2, random_state=2023)# print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) # (1192, 9) (298, 9) (1192,) (298,)from sklearn.ensemble import RandomForestClassifiermodel=RandomForestClassifier()model.fit(X_tr, y_tr)pred=model.predict_proba(X_val)# print(pred[:,1])from sklearn.metrics import roc_auc_scoreroc_auc_score(y_val, pred[:,1]) # 0.7817398927392739 검증용y_pred=model.predict_proba(test)submit=pd.DataFrame({ 'index' : test.index, 'y_pred': y_pred[:,1]})# print(submit)submit.to_csv('result.csv',index=False)print(pd.read_csv('result.csv'))
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
lightgbm 관련 질문
안녕하세요 선생님!! 🙂 lightbgm을 쓰는 것도 추천해주신 글을 보고 이것도 적용해보았는데 자주 아래와 같은 워닝이 떠서 여쭤봅니다.우선 보여드리는 부분은 기출5 작업형2 문제입니다!# 평가지표 from sklearn.metrics import mean_squared_error import numpy as np def rmse(y_test, pred): return np.sqrt(mean_squared_error(y_test, pred)) # lightgbm import lightgbm as lgb model = lgb.LGBMRegressor(random_state=0, max_depth=3) model.fit(X_tr, y_tr) pred = model.predict(X_val) print(rmse(y_val, pred))그리고 다음은 워닝 코드 내용입니다. (아래보다 훨씬 길게 워닝이 뜰때도 있습니다..!)[LightGBM] [Info] Auto-choosing row-wise multi-threading, the overhead of testing was 0.000191 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 384[LightGBM] [Info] Number of data points in the train set: 3195, number of used features: 8[LightGBM] [Info] Start training from score 12419.8469481119.6871943178526 워닝 아래로 출력은 잘 되긴 하나 워닝이 계속 떠서 왜그러는지 여쭤봅니다!!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 작업형 2 문의 사항
캐글 작업형 2 (T2-6. Bike-Regressor)파일까지 생성 후, 다운로드 후 submit을 누르면 아래와 같은메세지가 납니다. 이유 확인 부탁드립니다.캐글 작업형 (T 2-3 Adult census ~) 1) 라벨 인코딩 오류object 컬럼을 라벨 인코딩 진행 시 위와 같은 에러가 발생합니다. 인터넷을 찾아보니 문자열과 숫자가 혼합되어 있는지 확인하라고 하는데, Object 컬럼 ('workclass') 1개만 선택해서 해도 변환이 안되는데.. 확인 부탁드립니다.2) 원핫 인코딩 시 train, test 열 차이원핫 인코딩을 진행 후, 열 갯수가 1개 차이가 났다가,민맥스 스케일링 후 다시 52개로 맞춰졌습니다.test로 학습 후 결과 제출 시에는 52, 51 개로 결국 1개 차이가 나서 오류가 나는데요.. 이유를 알 수 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경에서 xgboost 불러올 때 에러 발생
> /usr/local/lib/python3.9/dist-packages/xgboost/compat.py:31: FutureWarning: pandas.Int64Index is deprecated and will be removed from pandas in a future version. Use pandas.Index with the appropriate dtype instead. from pandas import MultiIndex, Int64Index https://dataq.goorm.io/exam/3/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EC%B2%B4%ED%97%98/quiz/4 시험환경에서 xgboost 를 불러올 때 위와 같은 에러가 납니다.찾아보니 'int64index'를 사용하고 있어서 발생하는 문제고, pandas와 xgboost를 업데이트 하거나 dtype을 직접 int로 변경해서 해결하도록 안내해주네요. xgboost는 제외하고 대비해도 괜찮을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원핫인코딩 관련
원핫인코딩 관련하여 질문이 있습니다. cols = [ object형 컬럼들, , , ] 으로 지정한 후 어떤 문제에서는 pd.get_dummies(df[cols]) 로 되어있는 곳도 있고,pd.get_dummies(df, columns=cols)로 되어있는 곳도 있는데, 둘다 마찬가지 결과가 나오는걸까요? 추가적으로, 다중분류 부분에서 보면 숫자로되어 있는 object형 변수는 자동으로 원핫인코딩이 되지 않으므로 pd.get_dummies(df[0])으로 코딩해야 한다고 하셨는데요, 그렇다면 위의 예시에서 df, columns=cols로 했을 경우에는 숫자로 되어있는 변수는 dtype이 object형이어도 자동으로 원핫인코딩이 되지않는걸까요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
성능이 많이 떨어지는데...?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 작업형 2 유형 f1_score로 랜포 돌렸을때 값이 0.4961.. 이 낮게 나오는데 시험에서 이렇게 나와도 괜찮나요? 스케일링 라벨인코딩 작업만 했습니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀모델 검증방법 rmse질문입니다
위에 코드가 모의 문제에 나온 코드이고 아래 코드가 검증방법 종합편에 나온 코드입니다.같은 rmse인데 위에는 np.sqrt을 사용했고 아래는 mse **0.5를 사용했는데 차이가 무엇일까요? 둘 중 아무거나 편한거 하나를 시험때 사용하면 되는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3 질문
' 선생님 안녕하세요! 현재 기출 5,6회 제외하고 대부분의 강의를 다 복습한 상태인데, 위의 지지도/신뢰도/향상도, 포아송분포 등의 부분은 안다룬 것으로 알고 있는데 혹시 개념으로 따로 빼지 않으시고 기출에서 알려주시는 것 대로만 공부하면 될까요??