리샘플링 후에도 불균형 데이터 세트로 인한 낮은 F1 점수

불균형 데이터 세트에 대해 이진 분류를 수행하고 있습니다.
0: 16,263
1: 214

여러 오버샘플링, 언더샘플링 및 조합 기술을 사용하여 얻은 결과는 다음과 같습니다.
이 코드 덕분에 이 플롯을 얻었습니다.

def plot_resampling(X, y, sampler, ax, title=None):
    X_res, y_res = sampler.fit_resample(X, y)
    ax.scatter(X_res[:, 0], X_res[:, 1], c=y_res, alpha=0.8, edgecolor="k")
    if title is None:
        title = f"Resampling with {sampler.__class__.__name__}"
    ax.set_title(title)
    sns.despine(ax=ax, offset=10)

설명: X와 y는 X_train과 y_train이며 리샘플링 전후의 데이터 포인트 분포를 표시하는 데 사용했습니다.



RandomUnderSampler의 경우 첫 번째는 교체가 없고 두 번째는 교체가 True입니다.




또한 내 데이터 세트에 이상값이 여러 개 있으므로 여러 열이 왜곡되어 있으므로 다음과 같이 왜곡에 민감하지 않은 모델을 사용하기로 했습니다.
  • SVC
  • 나이브 베이즈 분류기
  • 앙상블 XGboost
  • KNN

  • 현재 내가 얻은 최고의 결과는 SVC(kernel = "rbf")와 SMOTE 기술을 사용하는 것입니다.

  • 테스트 정확도: 0.75
  • 훈련 정확도: 0.88

  • 그런데 분류 리포트가 좋지 않고, f1-score가 0.51이고, 리샘플링 후에도 1등급에 진짜 문제가 있습니다!! 아래에서 볼 수 있듯이

    다음은 Confusion Matrix입니다.

    f1 점수를 향상시키는 데 도움을 주시겠습니까? 상황에 대한 분석은 무엇이며 제안 사항은 무엇입니까?

    좋은 웹페이지 즐겨찾기