묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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회 실기는 어떻게 해야하나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
단일표본검정 강의 질문
만약 대립 가설이 반대로 120g보다 크다고 하면,아래 코드처럼 작성하면 되나요? stats.wilcoxon(df['무게'] - 120, alternative='grater')
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 랜덤포레스트
선생님! 작업형 2 문제 푸는 방식을 정해서 시험장에서 그 방식대로만 풀려고 하는데 혹시 회귀나 분류 모두 randomforest 하나만 사용해서 학습시켜 예측값을 도출해도 2유형에서 고득점 받는데 무리 없을까요? 다른 모델 식까지 외우기에는 너무 시간이 많이 걸릴거 같아서요 ㅎㅎ 혹시 랜포말고 더 추천하시는 모델이 따로 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
결측치가 만약 생기면
랜덤포레스트 모델을 쓴다는 가정하에 가장 무난한 방법은 뭔가요...? 랜덤포레스트 결측치 계산하는 기능있어서 냅두는게 나을 지아니면 0으로 채우는게 나을지 (둘다 확인해보는게 좋지만, 만약 확인하는 코드 잊었다고 생각하면 가장 무난한게 어떤 방법인지!) 알고싶습니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4회 작업형 2 문제
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 강사님 수업 잘 듣고 있습니다!다름이 아니라 제가 분류/회귀 문제에서 랜덤포레스트와 xgboost 두 가지 코딩을 이용하려 하는데이번 문제의 경우 랜덤포레스트는 돌아가지만 xgboost 같은 경우는 오류가 발생하더라구요모든 데이터에 사용 가능한 줄 알았는데 데이터마다 사용할 수 있는 모델이 한정적인가요?? from xgboost import XGBClassifier model = XGBClassifier() model.fit(X_tr, y_tr) pred = moedl.predict(X_val)위와 같이 실행했고, 아래는 에러코드입니다!ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1 2 3], got [1 2 3 4]
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 모의문제 2번
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요안녕하세요 선생님! 항상 좋은 강의 제공해주셔서 감사합니다! '작업형2 한가지 방법으로만 푸는 방법' 강의해주신 걸 기반으로 작업형 2 모의문제 2번 코드를 작성해 봤는데요 잘 실행되지가 않습니다.import pandas as pd train = pd.read_csv('train.csv') test = pd.read_csv('test.csv') y_test= pd.read_csv('y_test.csv') print(train.shape, test.shape) print(train.head()) print(test.head()) print(train.isnull().sum()) print(test.isnull().sum()) train['price'].describe()#분류는 밸류카운트로 타겟확인 train['reviews_per_month'].sample(10) train.info() # 월간리뷰는 mean으로, 라스트리뷰는 0으로 print(train.head(2)) train.nunique() #name, hostname lastreview 삭제 cols = ['name','host_name','last_review','host_id'] # print('삭제전',train.shape) train = train.drop(cols, axis =1) test = test.drop(cols, axis =1) print('\n삭제한 후', train.shape) train['reviews_per_month'] = train['reviews_per_month'].fillna(0) test['reviews_per_month'] = test['reviews_per_month'].fillna(0) train.isnull().sum() train = train.drop('id',axis = 1) testid = test.pop('id') #테스트아이디는 나중에 쓰니까 # test.head() print(train.isnull().sum()) #test.info() # print(train.shape) # print(test.shape) print(test.info()) print(train.info()) train = pd.get_dummies(train) test = pd.get_dummies(test) set1 = set(train.columns) set2 = set(test.columns) print('------------차이가없어야하는데',set1 - set2,'-----------------') df = pd.concat([train, test], axis=0) train = df.iloc[:len(train), :] test = df.iloc[len(train):, :] print('------------아직도 차이가 있나',set1 - set2,'-----------------') # print(train.shape) # print(test.shape) # print(train.shape, test.shape) # from sklearn.model_selection import train_test_split # print(train.head(2)) # target = train['price'] # target.sample(3) # xtr,xval,ytr,yval = train_test_split(train,target,test_size = 0.2, random_state=2) # print('\n분할 데이터 크기', xtr.shape,xval.shape,ytr.shape,yval.shape) # from sklearn.ensemble import RandomForestRegressor # rf=RandomForestRegressor(random_state=0) # rf.fit(xtr,ytr) # pred = rf.predict(xval) # from sklearn.metrics import mean_squared_error # rmse = mean_squared_error(yval,pred) # rmse = rmse ** 0.5 # rmse # test.head() #from sklearn.metrics import r2_score #y_test = pd.read_csv("y_test.csv") #print('r2도 좋다면',r2_score(y_test, pred)) pred = rf.predict(test) submit = pd.DataFrame({'id':test_id,'output' :pred }).to_csv('왜안만들어지지;;.csv',index=False) submit.to_csv("result.csv", index=False) 이렇게 코드를 작성해봤는데, r2 score로 평가가 안되고, pred = rf.predict(test)에서 train, test의 컬럼수가 차이난다는 오류가 떠서 인코딩 후 concat 활용후 다시 분리하는 작업도 했는데 계속 안돌아갑니다...
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 학습모델에 따른 성능차이
안녕하세요 강사님. 작업형2 관련해서 문의 드릴게 있습니다. 작업형2에서는 하나의 학습 모델을 잡고, 여러가지 퓨처엔지니어링, 하이퍼파라미터등을 통해 성능을 끌어 올리는게 더 높은 점수를 받는 것인지, 아니면 여러 학습 모델 ex)랜덤포레스트, lightgbm, linear_model 등을 통해 가장 높은 성능을 보이는 학습 모델을 제출하는 것이 더 높은 점수를 받는 것인지 궁금합니다.각각의 학습 모델마다 성능이 다르게 나와서, 그냥 높은 성능을 보이는 모델을 제출하면 되는걸까요?어디에 중점을 둬야 할 지 모르겠어서 문의 남깁니다.~!! 감사합니다