묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀 분석 (범주형 변수)
강의 복습하면서 한번 더 정리하면서 외워가는 중입니다. 섹션 8 강의에서 범주형 변수는 판다스의 pd.get_dummies(drop_first=True)로 원핫인코딩 처리한다고 강의하셨습니다. 해당 강의 복습하다 보니, 섹션 10 작업형 3번 문제풀이 하면서 범주형 변수에 C( ) 씌워서 summary 하신게 생각났고 섹션 8 강의의 범주형 변수 부분에다 한번 시도해봤습니다import pandas as pd df = pd.DataFrame({ '매출액': [300, 320, 250, 360, 315, 328, 310, 335, 326, 280, 290, 300, 315, 328, 310, 335, 300, 400, 500, 600], '광고비': [70, 75, 30, 80, 72, 77, 70, 82, 70, 80, 68, 90, 72, 77, 70, 82, 40, 20, 75, 80], '플랫폼': [15, 16, 14, 20, 19, 17, 16, 19, 15, 20, 14, 5, 16, 17, 16, 14, 30, 40, 10, 50], '투자':[100, 0, 200, 0, 10, 0, 5, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], '유형':['B','B','C','A','B','B','B','B','B','B' ,'C','B','B','B','B','B','B','A','A','A'] }) from statsmodels.formula.api import ols model = ols("매출액 ~ 광고비 + C(유형)", data=df).fit() print(model.summary())그러고 둘다 확인해보니 OLS Regression Results 결과 수치별로 비교해봤는데 같더라고요. 그럼 범주형 변수에 그냥 C( ) 씌워서 하는게 코딩이 더 간편할 거 같은데 pd.get_dummies(drop_first=True)를 사용해야 하는 뭔가 다른 이유, 혹은 C( )로 커버할 수 없는 게 있어서 그런건지 궁금합니다. 답변 부탁드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
scipy 관련 질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요from scipy import stats랑 from scipy.stats import chi2_contingency 두가지의 차이점이 궁금합니다어떤건 scipy고 어떤건 scipy.stats인지 모르겟어요ㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
스케일은 대부분 df 알고 있으나 train을 넣는 건 컬럼이 아니라 train 데이터 전체를 넣는 게 아닌가요?
아 ! 사이킷런에서 제공하는 스케일은 대부분 데이프프레임을 입력인 줄은 알고 있으나, train은 컬럼명 지정이 아닌 train 데이터 전체를 사용하신 게 아녔었나용?? (이전 질문)이상치에 민감하지 않도록 Rubust scaler 사용하실 때는scaler = Rubustscaler()하시고, scaler.fit_trasnform(train)scaler.transform(test) 하셨던 걸로 기억하는데왜 여기서는 scaler.fit_transform(df[['socre']])로 진행하신 걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
target = test.pop()
작업형 2에서는 target = train.pop('')으로 train데이터에서 target을 추출했는데 작업형 3의 오류율 구하는 문제에서는 target = test.pop('gender')으로 test데이터에서 target을 추출한 것 같습니다.(train에서 추출하면 오류가 발생하긴 하더라구요) 작업형 3에서는 왜 target을 test에서 추출하는 건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
roc_auc_score 오류 해결방법
multi_class must be in ('ovo', 'ovr') 라고 오류뜨는데 해결 방안이 있을까요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 제출시 질문있습니다
roc-auc가 평가지표일경우 predict_proba를 사용해 제출 하는것이 좋다고 하셨는데 이 경우에 제출해야하는 것은 항상 1일확률인지 궁금합니다 혹시 0일 확률을 제출해야하는 경우도 있나요? 감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 vs 기출 복습
안녕하세요 선생님완강은 했는데요캐글에서 새로운 문제 풀기 vs기출 문제 빈칸으로 다시 풀면서 복습하기 중에 하나만 해 볼 수 있는 시간적 여유가 남은거 같아서요 둘중에는 무엇을 추천하시나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
제출 변수
선생님 유형 2번 제출할때 컬럼은 문제에 적힌대로(ex)id, 확률~)이렇게 적고, 행은 test데이터와 똑같은 행으로 나오면 되는게 맞는거죵??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 3유형
작업형 3유형에 대해 문제를 많이 풀어보고 싶은데 혹시 기출문제 말고도 출제 예상문제 같이 풀어볼 수 있는 문제가 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
섹션 17 인코딩할 때 에러가 난다면? 을 듣고 궁금한 점이 생겼습니다.
train = pd.DataFrame({ '과일': ['사과', '배', '포도'], '색상': ['빨강', '노랑', '보라'], '가격': [5000, 7000, 10000] }) test = pd.DataFrame({ '과일': ['딸기', '배', '포도'], '색상': ['빨강', '노랑', '보라'], '가격': [15000, 7000, 10000] })이 상태에서, Label Encoding을 진행할 경우ValueError: y contains previously unseen labels: '딸기'라는 오류 문구가 뜹니다.선생님께서는 이렇게, train과 test의 카테고리가 다를 경우, train과 test의 데이터를 합친 이후, Label Encoding을 진행하고, 그 후 분리하라고 강의에서 설명하셨습니다.하지만 해당 방법을 시험에서 적용하지 못할 경우, 그 대안으로, 차라리 train과 test의 과일 컬럼을 아이에 삭제하고 수행해도, 문제 풀이에는 큰 지장이 없을까요? roc_auc_score, accuracy, 등의 평가지표가 조금 낮게 나오고, 정상적으로 제출에는 이상이 없는지, 아니면 제출 자체에도 이상이 생기는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
if문
강의 17:50에서#age가 1이상인 데이터만 살림이 부분을 if문으로 풀이하는 방법이 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
TypeError: SimpleTable object is not callable
이 에러는 어느 부분에서 잘못 작성하여 나오는 걸까요?모든 프린트 문에서 다 이렇게 떠요ㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
sum과 len의 차이점이 궁금합니다.
문제에서 데이터수를 구하라고 할 때, sum이나 len을 사용하곤 하는데요.어떨때 보면 sum으로 구할때와 len으로 구할때의 값이 다릅니다. 실례를 들어보면 [캐글 , 작업형1, 26번에서]menu컬럼에 "라떼" 키워드가 있는 데이터의 수는?df['menu'].str.contains('라떼').sum()len(df['menu'].str.contains('라떼'))이렇게 sum과 len으로 구할 때 답이 다르게 나옵니다.혹시 어떨 때 sum과 len을 써야할까요? 둘다 같은 의미로 알고 있는데.. 제가 잘못 이해하고 있는걸까요.?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
오류가 뜹니다
#1.문제정의#평가:ROC-AUC#target:'성별' 1#최종파일:"result.csv"(컬럼 1개 pred, 1확률값) #2.라이브러리 및 데이터 불러오기 import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv") #3.탐색적 데이터분석(EDA). shape head info isnull.sum. value_counts. describe targetpd.set_option('display.max_columns', None) print(train.shape, test.shape) print(train.head(2))print(test.head(2)) print(train.info()) print(test.info()) print(train.isnull().sum()) print(test.isnull().sum()) print(train['성별'].value_counts()) #결측치채우기 train = train.fillna(0) test = test.fillna(0) print(train.isnull().sum()) print(test.isnull().sum()) # 4.데이터전처리 - object데이터를 인코딩 df = pd.concat([train,test]) df = pd.get_dummies(df) train = df[:len(train)].copy() test = df[len(train):].copy() print(train.shape, test.shape) #5. 검증 데이터 분할 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('성별', axis=1), train['성별'], test_size=0.2, random_state=10) print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) #6. 머신러닝 학습 및 평가 from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score model = RandomForestClassifier(random_state=0) model.fit(X_tr, y_tr) pred = model.predict_proba(X_val) score = roc_auc_score(y_val, pred[:,1]) print(score) # 7. 예측 및 평가 파일 생성 pred = model.predict_proba(test) submit = pd.DataFrame({'pred':pred[:,1]}) submit.to_csv("result.csv")print(pd.read_csv("result.csv")) 이렇게 했는데요. pred = model.predict_proba(test)만 작성하면 오류가 나는 이유가 뭘까요??Makefile:6: recipe for target 'py3_run' failedmake: *** [py3_run] Error 1Traceback (most recent call last): File "/goorm/Main.out", line 64, in <module> pred = model.predict_proba(test) File "/usr/local/lib/python3.9/dist-packages/sklearn/ensemble/_forest.py", line 674, in predict_proba X = self._validate_X_predict(X) File "/usr/local/lib/python3.9/dist-packages/sklearn/ensemble/_forest.py", line 422, in validateX_predict return self.estimators_[0]._validate_X_predict(X, check_input=True) File "/usr/local/lib/python3.9/dist-packages/sklearn/tree/_classes.py", line 407, in validateX_predict X = self._validate_data(X, dtype=DTYPE, accept_sparse="csr", File "/usr/local/lib/python3.9/dist-packages/sklearn/base.py", line 421, in validatedata X = check_array(X, **check_params) File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 63, in inner_f return f(*args, **kwargs) File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 720, in check_array assertall_finite(array, File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 103, in assertall_finite raise ValueError(ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
ols logit glm 이 차이가 뭐고, data=데이터에 df가 아니라 train 넣는 이유는 뭘까요?
ols logit glm 이 차이가 뭐고, data=데이터에 df가 아니라 train 넣는 이유는 뭘까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
target(label)별 개수 확인
강의 11:55 부분의 #target(label)별 개수 확인y_train.value_counts() 위 코드를 작성하는 이유(중요성)가 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
7회 작업형 1 과목점수 스탠다드 스케일 할 때
이상치에 민감하지 않도록 Rubust scaler 사용하실 때는 scaler = Rubustscaler()하시고, scaler.fit_trasnform(train)scaler.transform(test) 하셨던 걸로 기억하는데 왜 여기서는 scaler.fit_transform(df[['socre']])로 진행하신 걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3 범주형 변수 인코딩
안녕하세요 선생님,작업형3 범주형 변수 인코딩 질문드립니다. [예시문제 작업형3(신버전)]의 6:37 부분을 보면 Gender는 인코딩이 되지않아서 C로 감싸주시더라구요. 근데 [시험응시전략] 강의에서는 '회귀, 로지스틱 회귀에서 숫자이지만, 범주형 변수로 명시된 것이 있다면 C()로 감싸서 처리할 것, 범주형 변수 object 값이 문자로 있다면 알아서 바꿔준다'라고 말씀하셨어요. 이부분이 헷갈립니다.1) [시험응시전략]에서 말씀대로라면 [예시문제 작업형3]의 Gender는 C 처리할 필요없이, 알아서 바뀌는게 아닌가요? 2) 캐글에 T3-2-example-py 을 보면, 여기서는 gender를 C로 감싸서 인코딩 해주지 않으셨더라구요. 기준이 헷갈립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 2회 문제 3번
'age'컬럼의 이상치를 모두 더하시오! print(sum(df['age']<lower) + sum(df['age']>upper))컬럼의 이상치를 다 더한다는 의미를 이렇게 해석했는데,, # 이상치 age합 print(df[cond1|cond2]['age'].sum())왜 선생님은 '또는'이라는 조건을 사용하셨나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회기출 작업형 1 하드코딩
안녕하세요.섹션12 3회 기출유형 작업형 1 강의 9:54 경에서'하드코딩 하지말라' 라는 메시지가 나오는데,정답이 있는 작업형 1, 3은 정답만 맞으면 만점처리 되는거 아닌가요? 하드코딩을 하거나 눈으로 세거나 혹시 채점하면서코드문(풀이과정)까지 봐서, 답은 맞아도 풀이가 정답이 아니라면 틀릴수도 있나요...?아래 비슷한 질문이 있는거같은데, 응시자 유의사항 보면 정답만 맞추라는 뉘앙스인데,이번 8회 실기는 어떻게 해야하나요?