묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원핫 인코딩 concat
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")# print(train.shape,test.shape) #2482# print(train.info(),test.info())# print(train.isnull().sum()) # 결측값 존재함# print(test.isnull().sum()) # 결측값 존재함# 전처리train = train.fillna(0)test =test.fillna(0)# print(train.isnull().sum())# print(test.isnull().sum())target = train.pop('성별')df= pd.concat([train,test])df = pd.get_dummies(df)train = df.iloc[:len(train)]test = df.iloc[len(train):]print(train.shape,test.shape)# 모델 분리 및 검증 from sklearn.model_selection import train_test_splitX_tr,X_val,y_tr,y_val = train_test_split(train,target,test_size=0.2,random_state=22)# print(X_tr.shape,X_val.shape,y_tr.shape,y_val.shape)# 모델 학습 from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier(random_state=22)rf.fit(X_tr,y_tr)pred = rf.predict_proba(X_val)# 결과 pred = rf.predict_proba(test)submit = pd.DataFrame({'pred':pred[:,1]})submit.to_csv('result.csv',index=False)print(pd.read_csv('result.csv').head())print(pd.read_csv('result.csv').shape) #2482 이 식으로 풀어도 될까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
스케일링 관련
안녕하세요 선생님작업형 2유형에서 스케일링, 로그변환 등을 꼭 해야하는걸까요?말씀하신 기본 베이스라인으로만 머신러닝 진행하고 제출 시에 문제 되는 부분이있을까해서요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원핫 인코딩
pd.get_dummies(train, columns = cols) pd.get_dummies(train[cols]) 이 둘의 차이는 단순하게 원핫 인코딩 한것만 보여주는지 전부 다 보여주는지의 차이 같은데요, 아래 걸로 해도 상관 없나요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pred_proba[:,1] 오류
from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier(random_state = 0, max_depth = 3, n_estimators = 200) model.fit(X_tr, y_tr) pred_proba = model.predict_proba(X_val) from sklearn.metrics import roc_auc_score print(pred_proba) print(roc_auc_score(y_val, pred_proba[:, 1]))안녕하세요,모델학습 후 검증하려고 하니 print(roc_auc_score(y_val, pred_proba[:, 1]))에서 아래와 같은 오류가 발생합니다.list indices must be integers or slices, not tuple 혹시 pred_proba의 형태에 문제가 있어서 그러나 출력해봤더니 아래처럼 array가 2개가 뜨는데 원래 출력되던 값이랑 다른 것 같기도 한데 어떤 부분이 잘못된걸까요..?[array([[6.17771951e-04, 3.90720727e-04, 5.61044129e-04, ..., 1.88014875e-05, 2.71602426e-05, 9.26113606e-05], [4.72241735e-04, 7.55194719e-04, 3.70085375e-04, ..., 7.58005053e-06, 2.24283166e-05, 3.95537961e-05], [2.06135825e-05, 1.04454196e-05, 1.96540881e-06, ..., 2.93436306e-05, 1.84382330e-05, 6.98070487e-05], ..., [2.26718012e-05, 2.39307053e-05, 1.96540881e-06, ..., 3.02043842e-05, 1.54553261e-05, 6.62548451e-05], [1.51536674e-05, 2.15648698e-05, 2.06815630e-06, ..., 4.15875993e-05, 3.06270026e-05, 3.26545900e-05], [2.84102759e-05, 1.47138847e-05, 6.29396294e-06, ..., 3.17093190e-05, 1.71020727e-05, 4.92247989e-05]]), array([[0.05156594, 0.94843406], [0.0402204 , 0.9597796 ], [0.54197093, 0.45802907], ..., [0.53420482, 0.46579518], [0.5344612 , 0.4655388 ], [0.53436829, 0.46563171]])] @ 위 문제를 기존에는 y_train의 'ID' 값을 drop하지 않았다가, y_train의 'ID' 값을 drop하니해결되었는데 그것과 관련이 있는 것일까요?그리고, 'ID'값을 제거하려고 할 때에는 X_train, y_train, X_test 세 데이터 프레임 모두의 'ID'값을 반드시 제거해야 하는 것인가요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
검증 데이터 분리 시 문의
검증 데이터 분리 시,X_tr ~ = train_test_split( train.drop('output', axis=1) 에서전단계에서 데이터 전처리 할 때, 이미 train에서 output 드랍하고 train에 저장했는데 (train = train.drop('output')) 검증 데이터 분리 작성 시 다시 drop 해주는 이유가 있나요?X_tr ~ = train_test_split( train) 이렇게 바로 하면 안되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
라벨인코딩
안녕하세요!명목형 자료의 인코딩 시 Test 데이터에만 있는 Unique 값이 있을 수 있어 데이터를 합치고 인코딩 한 후에 다시 분리하는 것으로 이해하였습니다.예시에 사용된 원핫인코딩의 pd.get_dummies와 달리 라벨인코딩의 경우 사이킷런의 인코더를 이용하는데, 이에 따라 fit_transform, transform으로 나누어 진행하는 것 같습니다.질문은! 라벨인코딩의 경우에 Train, Test 데이터를 합쳐서 인코딩 할 때 fit_transform을 사용하면 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
결측치 처리에서 명목형, 수치형 자료의 처리 방식 차이
안녕하세요!결측치 처리 시에 아래와 같이 수치형 컬럼의 경우 Train 데이터의 평균, 중앙값을 Test 데이터 결측치 처리에 사용한 반면,명목형 컬럼의 경우 Test 데이터 결측치 처리 시에 Test 데이터의 최빈값을 이용한 이유가 궁금합니다!통상적으로 이렇게 진행되는 것인지, 아니면 해당 데이터셋의 경우 Train 데이터와 Test 데이터의 최빈값이 동일해서 단순히 이렇게 처리된 것인지 궁금합니다!# X_train데이터 X_train['workclass'] = X_train['workclass'].fillna(X_train['workclass'].mode()[0]) X_train['native.country'] = X_train['native.country'].fillna(X_train['native.country'].mode()[0]) X_train['occupation'] = X_train['occupation'].fillna("X") X_train['age'] = X_train['age'].fillna(int(X_train['age'].mean())) X_train['hours.per.week'] = X_train['hours.per.week'].fillna(X_train['hours.per.week'].median()) # X_test데이터 X_test['workclass'] = X_test['workclass'].fillna(X_test['workclass'].mode()[0]) X_test['native.country'] = X_test['native.country'].fillna(X_test['native.country'].mode()[0]) X_test['occupation'] = X_test['occupation'].fillna("X") X_test['age'] = X_test['age'].fillna(int(X_train['age'].mean())) X_test['hours.per.week'] = X_test['hours.per.week'].fillna(X_train['hours.per.week'].median())
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
8회 기출 작업형 1 1번문제 질문드립니다.
조건대륙('continent')별 맥주 소비량(‘beer_servings’)의 평균을 계산하고, 평균이 가장 큰 대륙을 찾으시오.1번에서 찾은 대륙에서 맥주 소비량이 5번째로 많은 국가(‘country’)의 맥주 소비량을 구하시오. 이 문제를 풀 때 정답과는 조금 다르게 풀었는데 단순히 답만 나오면 상관 없나요 ? 선생님이 풀이해주신 걸 보면, 별도의 변수를 만들어 대입 후 비교를 하셨는데, 저같은 경우는 데이터프레임에 바로 대입을 하고,1번 조건이 Europe인 것을 확인 후 주석처리를 했습니다. # df = df.groupby('continent').mean('beer_servings') # df = df.sort_values('beer_servings',ascending = 0) # 평균 가장 큰 대륙 : Europe cond = df['continent'] == 'Europe' df = df.sort_values('beer_servings', ascending = 0) print(df.iloc[4, 1])이후 조건 변수에 대입 후 313 답을 도출했는데, 이렇게 풀면 틀릴까요 ?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
모델 주석 처리
영상에서 다양하게 모델 평가 하셨는데, 제일 잘 나온 모델, 예를들어 LinearRegression 이라 하면,이것 제외한 나머지 평가 코딩들을 주석처리로 하고,csv 제출하면 되는건가요?영상에서는 별도 주석처리를 안해준 것 같아서요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
최종 예측결과 제출
안녕하세요 선생님, 강의 잘 듣고 잇습니다.머신러닝 분석 절차는..(1) train 데이터를 tr과 val로 분리(2) tr 데이터로 학습(3) val 데이터로 성능평가(4) 그리고 test 데이터로 예측결과 제출위 순서인 것으로 이해했는데, (4)번에서 train(tr+val) 데이터가 아닌 tr 데이터로 학습한 것을 바탕으로 예측한 결과를 제출하는건가요?train(tr+val) data로 다시 학습한 후에 예측하지 않아도 되는 것인지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
선생님~ 질문있습니다.
지금 데이터를 보면 Roof 데이터에 수치형과 범주형이 동시에 존재하는데저는 범주형 데이터를 라벨인코딩 진행 후 , 데이터분할, 랜포돌림, 그리고 마지막으로 예측하려고하니 다음과 같이 나왔습니다. 에러 내용을 보니... test데이터에 존재하는 object 때문에 이러한 문제가 발생하는 것 같은데...이처럼 하나의 열에 수치형, 범주형이 동시에 존재하면 이 경우에는 원-핫인코딩을 쓰는게 더 나을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
mape 문의
mape 결과값이 inf가 나오는데, 이것은 무엇인가요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
rmse
선생님 혹시... 저는 RMSE를 이렇게 작성했는데... 상관없을까요..?from sklearn.metrics import mean_squared_error rmse = (mean_squared_error(y_val, pred))**(1/2) rmse
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 8회 작업형 2번 질문입니다.
제가 작업형2를 학습중인데 모르는 부분이 생겨서 질문드립니다.작업형2에서 EDA를 진행할 때 기초통계값에서는 어떠한 부분을 확인하나요?RobustScaler나 MinMaxScaler같은 전처리 함수는 수치형데이터를 전처리할 때 사용하는 함수인가요?그렇다면 기출8회 작업형2에서는 왜 LabelEncoder만 진행을하고 수치형데이터에는 따로 전처리를 진행하지 않은건가요?기출8회 작업형2에서 customerID를 제거하던데 왜 ID값들은 제거해야하나요?질문 답변해주시면 감사하겠습니다!!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원핫인코딩 후 컬럼수 비교
원핫인코딩 후 train과 test의 컬럼수가 많이 차이 나는데.. 어떻게 맞춰야 하는지 모르겠습니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
라벨인코딩 후 범주형 데이터가 그대로 남아있는 오류
라벨인코딩을 진행하였는데 test의 'model' 컬럼이 그대로 범주형으로 변경되지 않네요...이 후 최종파일을 test로 예측할 때 이 문제로 오류가 발생하는것 같습니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
에러메세지와 마주하기 질문
안녕하세요. 섹션19에서 에러메세지와 마주하기 강의를 수강하는 중에 궁금한 점이 생겨 질문 남깁니다. 에러 3의 결측치로 인한 에러 부분 코드를 코랩, 시험환경에서 모두 실행해보았을 때 결측치를 채워넣지 않았음에도 에러 없이 잘 실행이 됩니다. 수정을 전혀 하지 않고 그대로 실행하였음에도 제대로 실행이 되어서 왜 그런지 알고싶습니다. 그리고 함수/조건문 에러 부분에서도 강의와 똑같이 들여쓰기를 했을 땐 에러가 나는데, 처음부터 함수 코드를 똑같이 작성했을 땐 에러가 나지 않습니다. 육안으로 보기에는 동일해보이는데 왜 들여쓰기만 한 코드로 실행했을 땐 에러가 나는건지 궁금합니다. (사진 상에서 빨간 색으로 표시해둔 부분이 원래 코드에서 들여쓰기만 한 부분이고, 주석처리된 노란색 표시 부분이 제가 똑같이 동일한 코드를 작성한 부분입니다.) 에러
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
제외값
어떤 값을 빼야하는 지 어떻게 정하시나요..?전 아직 감이 안잡힙니다 ㅜㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
numeric_only=True 관련 질문
시험 환경에서는 저 설정이 필요 없다고 하셨는데,체험 링크에서 설정 없이 그냥 corr, sum을 해보니까 valueerror가 뜨네요이번 시험부터 바뀐걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pred_proba 입력값의 차이
랜덤포레스트 모델 학습을 할 때.fit과, pred를 수행한 후 별도로 pred_proba를 수행하는데모델링의 pred_proba는 인자값으로 X_val이 주어지고, 예측할 때는 pred_proba의 인자값으로 test가 들어가게 되는데 왜 그런건가요 ?별도로 슬라이싱을 하지 않았는데, train_test_split 데이터 분리를 수행한 후 X_tr, X_val의 len 값은 test_size에 의해 결정되는 건가요? 예측할 때 pred_proba에 X_val 값을 넣었더니 길이가 서로 다르다고 실행이 되지 않는 것으로 확인했습니다.