묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형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 등을 통해 가장 높은 성능을 보이는 학습 모델을 제출하는 것이 더 높은 점수를 받는 것인지 궁금합니다.각각의 학습 모델마다 성능이 다르게 나와서, 그냥 높은 성능을 보이는 모델을 제출하면 되는걸까요?어디에 중점을 둬야 할 지 모르겠어서 문의 남깁니다.~!! 감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3회 기출 1과목 문제 2번
안녕하세요? 3회 기출 1과목 문제 2번에서 df = df.T df[2000].mean()이렇게 할때 ValueError: 2000 is not in range 에러가 나고 m = df[2000].mean() 이렇게 하면 에러가 안나는데 어떤 이유인지 궁금합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
유형2질문입니다.
좋은 영상 잘보며 열공 하고 있습니다. 질문1 . 유형2에서 결과 제출할때 pred 이란 변수를 사용하는데, 어떤 책에선 y_pred 이란 변수를 사용하기도 하더라구요. 문제를 읽었을때 변수명에 대한 설명은 없어보이는데, 정해진 변수명이 있나요? 질문2. 유형2는 성능 측정모형(mse, rmse 등)을 알려주고 있습니다. 제가 만약 분류도, 회귀도 무조건 랜덤포레스트만 사용하겠다고 하면 사실 저 성능 측명하는건 굳이 코드에 안짜도 되지요? 채점답변이 csv 파일만 적절하면 되는게 맞는지요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2번 풀이과정 질문입니다.
전처리, 피처엔지니어링 할 때, 언제 무엇을 해야할지 헷갈립니다.가령 데이터가 어떨 때, 어떤 것을 스케일링 해야하는지 헷갈립니다. 기출문제 풀이에서 스케일링을 한 경우도 있고, 안 한 경우도 있다보니 정리가 잘 안되는 느낌입니다.get_nc_data로 n과 c를 나눴다가 다시 concat으로 합친 경우가 있는가 하면, 어떤 회차에서는 그냥 스케일링도 없이 원핫인코딩만 해버리는 경우도 있어서, 언제 어떤 방식으로 전처리를 해야할지 감이 잘 안옵니다. 저런 기준을 잘 모르겠습니다.또, target열을 value_counts()하는 것은 알겠는데, 어떤 회차에서는 또 이것을 pop하기도 해서, 어떨때 pop을 하는 것인지도 분간이 잘 안갑니다ㅠ로그, 지수 수치 변환도, 수치형 데이터가 어떨 때 하고 어떨 때 안하는지 헷갈립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
1유형 6회 기출
sum(axis=1) 을 항상 꼭 써줘야 하나요?행 방향 열방향이라고 하셨는데지금 행 방향 1행으로 다 더하니까 axis=0 아닌가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
분산이 다르면 독립표본검정 사용
이제 levene검정을 통해서 분산이 다르면 독립표본검정을 실시하면 되는데,만약 같으면 무엇을 사용해야하나요???