모델 테스트

프로덕션을 위한 Machine Learning 모델 개발

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

개별 공정성 vs 집단 공정성

개별 공정성

유사한 개인을 동일하게 대합니다.

  • 예: 유사한 경력을 가진 개인에게 유사한 채용 기회를 제공합니다.

집단 공정성

서로 다른 집단을 동등하게 대합니다.

  • 예: 학교 입학 모델에서 특정 인종/민족 집단을 차별하지 않습니다.
프로덕션을 위한 Machine Learning 모델 개발

홀드아웃 테스트

  • 홀드아웃 테스트는 별도 데이터로 모델 신뢰성을 확인
  • 학습 시점처럼 비학습 데이터 성능을 평가
  • 과적합/과소적합 등 이슈를 탐지

데이터를 사용하는 로봇

프로덕션을 위한 Machine Learning 모델 개발

모델 드리프트 탐지

개념 드리프트

  • 특성과 목표 간 관계의 변화
    • 예: 감성 분석 알고리즘
      • 용어 의미가 바뀜(예: "sick"이 긍정 의미)

예측 드리프트

  • 모델 예측 분포의 변화
    • 예: 일시적 장애로 챗봇의 "outage" 의도 증가
    • 문제가 있는 것은 아니나, 응답 지연을 유발할 수 있음
프로덕션을 위한 Machine Learning 모델 개발

모델 드리프트 확인 예시

설정:

# Import necessary libraries and split data
X_train, X_test, y_train, y_test = ...

모델 학습:

# Train a classifier on the training data
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)

# Calculate the accuracy on test data
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

나중에 드리프트 테스트:

X_test_drift = X_test + 1.0  # Simulate data drift
# Calculate the accuracy on drifted data
y_pred_drift = clf.predict(X_test_drift)
accuracy_drift = accuracy_score(
    y_test, y_pred_drift)
print(f"Accuracy with drift: {accuracy_drift}")

# Drift detection threshold based on the accuracy
drift_threshold = accuracy * 0.9

# Check for drop in accuracy on the drifted data
if accuracy_drift < drift_threshold:
    print("Concept drift detected!")
else:
    print("No concept drift detected.")
프로덕션을 위한 Machine Learning 모델 개발

복잡한 모델 vs 기준 모델의 비용

  • 복잡한 모델은 비용이 크고 효율성에 영향
  • 지연 시간: 단일 입력 처리와 예측 생성에 걸리는 시간
  • 처리량: 일정 시간 내 생성 가능한 예측 수
  • 적정 복잡도 결정을 위해 지연 시간과 처리량 테스트
  • 목표: 정확도와 효율성의 균형
프로덕션을 위한 Machine Learning 모델 개발

Vamos praticar!

프로덕션을 위한 Machine Learning 모델 개발

Preparing Video For Download...