Model Drift Check Library, Evidently AI

Model Drift Check Library, Evidently AI
Photo by Karol Smoczynski / Unsplash

Evidently AI

Evidently AI는 머신러닝 모델의 성능과 데이터 분포의 변화를 시각적으로 분석하고 모니터링할 수 있는 Python 라이브러리입니다. 이 라이브러리는 모델의 드리프트를 탐지하고, 이를 기반으로 모델의 성능 저하를 사전에 예방하는 데 유용합니다.

주요 기능

  • 데이터 드리프트 감지: 현재 데이터와 과거 데이터 간의 분포 차이를 분석합니다.
    • 대규모 데이터 처리: 대규모 데이터에 대해 성능이 다소 떨어질 수 있으며, 리소스 사용이 증가할 수 있습니다.
  • 모델 성능 모니터링: 예측된 결과와 실제 결과 간의 차이를 모니터링하여 모델의 성능을 분석합니다.
  • 시각화 보고서 생성: 다양한 시각화 도구를 통해 모델의 성능 변화를 쉽게 이해할 수 있는 보고서를 생성합니다.
    • 커스터마이징 제한: 제공되는 지표와 시각화 도구가 기본적으로 설정되어 있어, 특정 상황에 맞춘 커스터마이징이 어려울 수 있습니다.

Sample

import numpy as np  
import pandas as pd  
  
# 데이터 생성 파라미터  
n_samples = 1000  
np.random.seed(42)  
  
# 시간대에 따른 배달 시간 설정  
def generate_delivery_time(hour, rider_acceptance_rate, num_riders):  
    base_time = 25  # 전체 배달 시간 평균 25분  
    # 점심, 저녁 시간대 배달 시간 증가  
    if 11 <= hour <= 13 or 18 <= hour <= 20:    
        variance = np.random.normal(loc=10, scale=2)  # 배달시간이 늘어짐  
    else:    
        variance = np.random.normal(loc=5, scale=1)  # 기본 배달시간  
    # 라이더 배차 수락율과 규모에 따른 배달시간 조정  
    rider_effect = 1 / (rider_acceptance_rate * num_riders + 1)  
      
    return base_time + variance * rider_effect  
  
# 가상의 데이터 생성  
hours = np.random.randint(0, 24, n_samples)  
rider_acceptance_rates = np.random.uniform(0.5, 1.0, n_samples)  
num_riders = np.random.randint(10, 50, n_samples)  
  
delivery_times = [generate_delivery_time(hour, rate, riders)   
                  for hour, rate, riders in zip(hours, rider_acceptance_rates, num_riders)]  
  
# 데이터프레임으로 정리  
df = pd.DataFrame({  
    'hour': hours,  
    'rider_acceptance_rate': rider_acceptance_rates,  
    'num_riders': num_riders,  
    'delivery_time': delivery_times  
})

from evidently.report import Report  
from evidently.metric_preset import DataDriftPreset  
  
# 데이터 프레임을 두 개의 기간으로 나누어 모델 드리프트 확인  
reference_data = df[:500]  # 첫 번째 시점의 데이터  
current_data = df[500:]    # 두 번째 시점의 데이터  
  
# Evidently 리포트 생성  
report = Report(metrics=[DataDriftPreset()])  
report.run(reference_data=reference_data, current_data=current_data)  
  
# 리포트 출력  
report

Read more

Chi-Square Test와 T-Test는 데이터 특성에 따라 선택하여 사용합니다.

Chi-Square Test와 T-Test는 데이터 특성에 따라 선택하여 사용합니다.

Chi-Square Test가 A/B/C Test에서 사용되는 구체적인 경우 * 범주형 데이터 분석: 각 그룹에서 클릭하거나 전환된 사람의 수를 비교할 때, 이 데이터를 범주형 변수로 간주하고 Chi-Square Test를 적용할 수 있습니다. * 다중 그룹 비교: A/B/C 테스트에서 세 개 이상의 그룹을 비교해야 할 때, Chi-Square Test는 모든 그룹 간의 독립성을

OLS 기반 인과추론 시 오차항 관련 체크 필요 가정

OLS 기반 인과추론 시 오차항 관련 체크 필요 가정

배경 * 아래 글을 DANBI에서 보다가 더 알아보게 되었습니다. OLS를 떠받치는 몇 개의 기둥이 있는데 그중 실용적으로 가장 중요한 것이 일치성(consistency)다. 쉽게 말해서 OLS를 통해 도출된 추정량이 있을 때 샘플사이즈가 커지면서 이 값이 참 값으로 접근한다는 것이다. 일치성이 충족되면 우리는 적당하게 큰 표본에 대해서 추정치가 좋은 속성을 지니고 있다고

인공지능이 문제가 아니라 결국 사람이 문제가 될 것입니다.

인공지능이 문제가 아니라 결국 사람이 문제가 될 것입니다.

사람들이 AI가 필요하다고 생각하는 시점 저 판사를 얼른 AI로 교체해야 한다. 유튜브에서 뉴스를 보다 보면 정말 많이 보이는 덧글입니다. 이러한 내용의 덧글이 달릴 때마다, 정말 많은 사람들이 공감을 표하곤 합니다. 왜 이렇게 사람들은 이러한 주장에 공감을 표하는 것일까? AI는 시킨대로 하기 때문에 공정하다는 인식 여러 이유가 있겠지만, 사람들은 아마 AI가

BG/NBD 모델은 고객 생애가치를 추정하는데 사용되는 확률 모델입니다.

BG/NBD 모델은 고객 생애가치를 추정하는데 사용되는 확률 모델입니다.

1. BG/NBD 모델이란? * BG/NBD(Beta-Geometric/Negative Binomial Distribution) 모델은 **고객의 생애 가치(Customer Lifetime Value, CLV)**를 추정하는 데 사용되는 확률적 모델입니다. * 특히 고객이 반복 구매를 할지, 아니면 더 이상 활동하지 않을지를 추정하는 데 유용합니다. 이 모델은 고객의 구매 행태를 두 가지 중요한 개념으로 나눕니다: * 고객은 활성(active)