묻고 답해요
149만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀/분류 문제 구분
회귀문제인지 분류문제인지 구분하는 팁이 궁금합니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
현시점에서 작업형1 노답
안녕하세요 강의 잘 보고있습니다.작업형1 캐글에 올려주신 연습문제들 계속 막혀서 풀지를 못하는데, 현 시점에서 작업형1 어떻게 하는게 좋을까요? 작업형 2랑 3은 어느 정도 이해해서 외우면 될 것 같은데 작업형1은 도무지 괄호안에 어떤 값을 넣어야 하고, 어떤 괄호를 써야하는지 헷갈립니다. 현시점에서 작업형1을 어떻게 해야 최대한 점수를 끌어올릴 수 있을지 조언 부탁드립니다🥲 감사합니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
코랩사용시 코드가 미리 예상으로 나와있는데
이거 안나오게 하는 설정방법이 있을까요??저는 안보고 치고 싶은데 ㅠㅠㅠ자꾸 미리 예측하고 내용이 떠서요
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
predict 시
model.predict(data) 와 model.get_prediction(data)의 차이가 무엇인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
RMSLE 함수 질문
회귀모델의 평가방법 중 RMSLE 함수를 외우려고 했는데요. 쉽지가 않습니다. 좀 더 간단한 방법 없을까요..?def rmsle(y_test, y_pred): #RMSLE return np.sqrt(np.mean(np.power(np.log1p(y_test) - np.log1p(y_pred), 2)))
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 모델링 및 평가 순서
안녕하세요, 강사님작업형2 회귀 모델 모델링 및 평가를 해보면서 궁금한 점이 있어 질문드립니다.작업형2에서 머신러닝 학습 및 평가를 할 때 학습, 평가 순으로 해야 할 것만 같은데 ,,,혹시 평가 먼저 진행 후 학습을 하는 이유가 있을까요 ..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
test에 없는 컬럼을 추가할때 이 방법을 써도 될까요?
# missing_cols = set(train.columns) - set(test.columns) # for col in missing_cols: # test[col]=0 # test = test[train.columns] # train.head()질문1) train의 컬럼이 test에 없을 때 train의 컬럼을 test 컬럼과 동일하게 삭제하거나test를 위의 코드를 통해 컬럼을 만들고 '0' 값으로 채운다. 그리고 train 컬럼의 순서대로 맞춘다.여쭤보는 이유는 반대로 test에 있는 컬럼이 train에 없다면 위의 코드를 사용해도 되지 않을까 싶어서요...제가 이해하는게 맞는지 모르겠네요.. 질문2) train과, test의 범주형 컬럼이 다를 때 concat하라고 말씀하셨는데요. 좀 어려워서 원핫인코딩 한적이 있는데 잘 되더라구요... concat을 해야 하나요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
오즈비 구하는 문제일때는
오즈비 값을 구해야 하는 문제일 경우에는, import numpy as np 식만 사용하면 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
스케일링 문제
해당 예시 문제를 밑의 식으로 풀이를 해보았는데,import pandas as pd df = pd.read_csv('mtcars.csv') from sklearn.preprocessing import minmax_scale print('변환 전 :',df['qsec'].head()) df['qsec'] = minmax_scale(df['qsec']) print('변환 후 :', df['qsec'].head()) cond = df['qsec'] >0.5 sum(cond)제가 알기로 스케일링 할 수 있는게 min-max, standard,robust 이렇게 3가지가 있는데, 만약 minmax가 아닌 standard,robust를 이용하게 된다면 코드를 어떻게 작성을 해야할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
rmsle 평가할 때, 음수값 포함
print('rmsle: ', mean_squared_log_error(y_val, pred)) 이 코드를 실행할 때, 해당 오류가 나옵니다. Mean Squared Logarithmic Error cannot be used when targets contain negative values.궁금한 것이, 회귀모델을 사용할 때 pred에서 음수값이 나오면 어떻게 처리하면 되는지 궁금합니다. 사실 y_tr 통계값에서 min값이 0이기 때문에 예측 모델에서 음수값이 나오면 안된다고 생각하는데 혹시나 나오게 되면 어떤식으로 전처리를 해야하는지 궁금합니다. 또한 선생님이 실행하신 랜덤포레스트 모델에서 r2_score가 0.77정도 나오는데 저는 같은 과정으로 해도 0.24정도 나와 차이가 큽니다.. 완전히 같을 순 없지만 비슷해야한다고 생각하는데 너무 차이가 나서 저의 코드가 잘못되어 그런것일지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
코드 작성을 이렇게 해도 될까요?
import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")pd.set_option('display.max_columns', None)# print(train.shape, test.shape)# print(train.head())# print(test.head())# print(train.info())# print(train.isnull().sum())# print(test.isnull().sum())train['환불금액'] = train['환불금액'].fillna(0)test['환불금액'] = test['환불금액'].fillna(0)cols = ['회원ID', '총구매액', '최대구매액','환불금액','방문일수','방문당구매건수','주말방문비율','구매주기']# print(train.isnull().sum())# print(test.isnull().sum())target = train.pop('성별')# print(train.shape, test.shape)train = pd.get_dummies(train)test = pd.get_dummies(test)# print(train.shape, test.shape)from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train[cols],target, test_size = 0.2, random_state = 2022)print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier(random_state = 2022)rf.fit(X_tr[cols], y_tr)pred = rf.predict_proba(X_val[cols])# print(pred)from sklearn.metrics import roc_auc_scoreprint(roc_auc_score(y_val,pred[:,1]))pred = rf.predict_proba(test[cols])submit = pd.DataFrame({'pred' : pred[:,1]})submit.to_csv('result.csv', index=False)print(pd.read_csv('result.csv')) 그리고 코랩에서 연습할 때는 submit.to_csv('result.csv', index=False) 해당 코드를 작성하면, 파일 칸에 생기는 것을 확인했었는데, 여기서는 따로 생성이 안되고 그냥 제출하기만 하면 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회차 기출 part1문제 2번 질문드립니다.
주어진 데이터셋(members.csv)의 앞에서부터 순서대로 80% 데이터만 활용해 'f1'컬럼 결측치를 중앙값으로 채우기 전 후의 표준편차를 구하고, 두 표준편차 차이 계산하기 (단, 표본표준편차 기준, 두 표준편차 차이는 절대값으로 계산)여기서 제가 이해한 바로는 80퍼센트 데이터만을 활용하여 중앙값을 도출하고 그것을 통하여 f1컬럼을 채워넣고 전체 f1컬럼의 전후 표준오차를 계산하라고 이해하였습니다.문장을 여러번 읽어보아도 80퍼센트 데이터 활용의 정의가 모호한거 같은데요(80퍼센트 데이터를 활용해 중앙값으로 채우기 / 전후 표준오차 구하기 인지 80퍼센트 데이터를 활용해 중앙값 채우고 전후 표준오차 까지 구하기인지)이런 경우 감독관에게 그 범위를 질문을 할수 있나요?자의적으로 시험장에서 판단하기 힘든것 같아 질문드립니다.
-
미해결파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
quota 할당량 요청이 안됩니다.
트러블 슈팅 강의 내용대로 해도 안되서 일단 서포트 접수했는데 생각보다 대응이 오래걸리는것 같습니다.혹시나 해서 aws로 12개월 무료체험 하는쪽으로 만들어서 접속해봤는데 생각보다 느리더라구요 비슷한 문제를 겪는 수강생 중 해결된 케이스가 있다면 공유 부탁드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pred 예측이후 반올림이나 버림을 어떻게하나요?
from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor(random_state=10, max_depth=10, n_estimators=400) model.fit(X_tr, y_tr) pred = model.predict(X_val) pred = round(pred) 모델예측이후에 반올림이나 버림을 하고싶은데 int나 round를 써도 에러가뜹니다 어떻게 해결하나요? 아래는 에러메세지입니다. TypeError: type numpy.ndarray doesn't define __round__ method
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
part2 답안 제출 관련문의입니다
사진과 같이 제출하라고 했는데 보통이제모델을 통해 예측을 한 결과는 test내의 id가 뒤죽박죽 이 된상태가 일반적입니다.아래는 저의 결과물입니다.그런데 제출할떄 index가 정렬되지 않아도 상관없는지,혹은 반드시 정렬해야하는지,또는 문제에서 요구할떄만 정렬하는지에 대해 문의드립니다.감사합니다. +추가로 문의드립니다문제 분석결과 인덱스를 고유번호인 Unnamed 0 가 아닌 test.index를 사용하여 submit을 구성하였는데요 이러면 어떤 컬럼이(고유번호)가 학습되었는지 정보가 없는 문제가 발생하지않나요? 혹은 인덱스는 전혀상관없나요?(단순히 채첨할떄 pred값의 순서를 통해서 채점하는 형식임을 질문)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀/분류 구분
회귀/분류 문제 구분할때 평가지표를 보고 구분을 하는건가요?예를 들어 f1_score로 평가하시오. -> 분류구나!MAE로 평가하시오. -> 회귀구나!이렇게 구분하면 될까요??3회차 기출문제 풀고있는데 평가지표 얘기가 없어서 이게 회귀인지 분류인지 구분을 못하겠어서 여쭤봅니다.(결과가 proba사용한 확률값인거 같아서 roc_auc_score밖에 못 사용하겠구나 -> 분류라고 생각했습니다.) 아 그리고 proba 사용해서 결과에는 양의 값(1)의 확률을 넣으시라고 했는데 이때 print(rf.classes_) 이거를 사용해서 1의 위치가 왼쪽인지 오른쪽인지 확인해야 되나요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
로버스트 스케일러 질문!
from sklearn.preprocessing import RobustScaler for col in col_num: rs = RobustScaler() train[col] = rs.fit_transform(train[[col]]) test[col] = rs.transform(test[[col]]) rs = RobustScaler() train[col_num] = rs.fit_transform(train[col_num]) test[col_num] = rs.transform(test[col_num]) 쌤! 커뮤니티 찾아보다가 이렇게 반복문을 쓰지 않고도 한꺼번에 스케일러를 할 수 있다는 답변을 보았는데 궁금한 점이 있어서요. 저렇게 한꺼번에 진행하면 다른 컬럼들의 영향을 받지 않나요?? 반복문을 사용하면 해당 컬럼만 고려해서 스케일러를 적용해주는데 한꺼번에 사용하면 모든 컬럼을 고려해서 스케일러가 적용되기때문에 더 성능이 안 좋아지지 않나요?? 아! 그리고 인코딩은 필수, 스케일러는 선택이란 말을 봤는데 스케일러를 해도 안 해도 성능차이는 별로 없을까요?? 그냥 인코딩만 해도 40점 받을 수 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 랜덤포레스트 n_estimators 설정
수업 때 RandomForest의 n_estimators 설정을 100~1000 범위로 말씀해주셨는데, 테스트를 해볼 때 50 (혹은 50이상 100미만)에서 높은 score가 나오는 경우가 많았습니다. 그래도 100 이상으로 설정하는게 합리적인 설정일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
train_test_split에서 test_size = 설정
train_test_split에서 test_size = 설정 보통 0.2로 하는데025으로 해서 더 잘 나오거나 혹은 0.15로 해서 더 잘나오면 test_size를 바꾸는게 의미가 있을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1, 작업형3 답안 수기작성 문의
안녕하세요~ 작업형1, 작업형3에서 문제를 푼 후 답안을 제출할 때, 최종코드를 적는 것인지, 아니면 print해서 나온 최종 값을 적는 것인지 문의드립니다.