소개
게시글
질문&답변
2021.04.24
PCA 관련 질문
import pandas as pd from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import cross_val_score df=pd.read_excel('/content/drive/MyDrive/credit_card.xls',sheet_name='Data',header=1) df.rename(columns={'PAY_0':'PAY_1','default payment next month':'default'},inplace=True) X_features=df.drop(['ID', 'default'],axis=1) y_target=df['default'] bill_cols=['BILL_AMT'+str(i) for i in range(1,7)] scaler=StandardScaler() df_cols_scaled=scaler.fit_transform(X_features[bill_cols]) pca=PCA(n_components=2) col_pca=pca.fit_transform(df_cols_scaled) bill=pd.DataFrame(data=col_pca, columns=['bill_pca_1','bill_pca_2']) df0=df.copy() pca_df=pd.concat([df0,bill],axis=1) pca_df.drop(bill_cols,axis=1,inplace=True) X_features1=pca_df.drop('default',axis=1) y_target=pca_df['default'] rf=RandomForestClassifier(n_estimators=300, random_state=156) scores=cross_val_score(rf, X_features1, y_target,scoring='accuracy', cv=3) print('평균 정확도:', np.round(np.mean(scores),4)) 이런 식으로 코드를 짜봤는데 0.61정도로 예측 성능이 많이 떨어지는 것 같습니다
- 0
- 3
- 167
질문&답변
2021.03.23
이상치 제거 관련 질문
TARGET이 0인 데이터 중에서 각 열의 1.5*IQR 바깥에 있는 인덱스와 TARGET이 1인 데이터 중에서 각 열의 1.5*IQR 바깥에 있는 인덱스를 모아서 중복되는 부분은 합집합 형태로 제거했더니 그렇게 많은 데이터가 사라진 것 같습니다..! 모든 열이 중요한 건 아니기에 이런 방식은 지양해야 할까요? 이상치 제거보단 최빈값으로 대체해주는 방법이 더 나을지, 1.5보다 큰 수*IQR로 이상치를 제거해봐야 할지 모르겠습니다.. 생각해보니 18000 데이터 중, train_test_split으로 약 15000개를 학습으로 쓰고 3000개 정도를 테스트 데이터로 쓰다보니 워낙 적은 데이터라 평가지표가 높게 나온 듯 합니다!
- 0
- 3
- 578
질문&답변
2021.02.15
임계값 변화에 따른 정밀도의 변화
아 제가 잘못 적은 것 같습니다. 제가 의도한 질문은 아래와 같습니다! 책에서는 분류 임계값이 감소함에 따라 재현율은 증가하고 정밀도는 감소한다고 나와있습니다. 임계값이 감소한다는 것은 그만큼 FP, TP가 증가한다는 것을 의미하는데 임계값이 감소함에 따라 FN이 줄어들고 TP가 증가하는 재현율과는 다르게 정밀도는 확실히 감소한다고 볼 수 없지 않나요? 예를 들어, 임계값 변동 전의 정밀도가 80/100(=0.8)이고, 양성예측이 증가하여 맞는 예측이 10건, 틀린 예측이 1건일 경우, 정밀도가 90/111(= 약 0.82)가 되어 분류임계값이 증가하더라도 정밀도는 높아질 수 있지 않나요? 임계값이 감소하면 정밀도가 감소하는 것이 대체적으로 더 빈번하다고 알아두면 될까요?
- 0
- 3
- 281
질문&답변
2021.02.11
교차 검증
강사님, 혹시 데이터를 학습, 검증, 테스트 데이터로 나누는 즉, 별도의 테스트 데이터를 분리하는 과정은 cross_val_score()에 포함되어 있는건가요? 아니라면 별도의 테스트 데이터셋의 분리는 코드로 나타냈을 때, 어떤식인지 알려주시면 감사하겠습니다! 학습/테스트 데이터셋으로 나누고 학습 데이터만 교차검증을 해보는 코드를 짜보려고 했는데 생각보다 잘안되네요ㅜㅜ
- 0
- 3
- 372
질문&답변
2020.12.18
best_score_값과 pred값이 다른 이유
아하 정말 감사합니다! 이해됐습니다ㅎㅎ
- 2
- 6
- 657