일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- top_k
- UDF
- subdag
- TensorFlow
- GenericGBQException
- integrated gradient
- requests
- API Gateway
- gather_nd
- Counterfactual Explanations
- chatGPT
- GCP
- login crawling
- 공분산
- tensorflow text
- Retry
- 상관관계
- Airflow
- 유튜브 API
- BigQuery
- youtube data
- flask
- session 유지
- XAI
- spark udf
- API
- grad-cam
- hadoop
- airflow subdag
- correlation
- Today
- Total
데이터과학 삼학년
Counterfactual Explanations 본문
Counterfactual Explanations은 XAI에서 중요한 개념 중 하나로, 머신러닝 모델의 예측 결과를 해석하는 데 사용됩니다. 이번 글에서는 Counterfactual Explanations의 개념과 예시, 그리고 샘플 코드를 다룰 것입니다.
Counterfactual Explanations란?
Counterfactual Explanations은 한국어로 "대조적 설명"이라고도 불리며, 머신러닝 모델이 내놓은 결과를 해석하는 방법 중 하나입니다. 머신러닝 모델이 입력 데이터를 기반으로 한 예측을 내놓았을 때, Counterfactual Explanations은 이 예측 결과를 해석하기 위해, 어떤 입력 데이터를 조작하면 예측 결과가 바뀔지 예측하는 방법을 사용합니다.
간단한 예시로, 예측 모델이 주어진 사진이 개인지 고양이인지 판별하는 모델이라고 가정해봅시다. 만약 이 모델이 주어진 사진이 개라고 예측했다면, Counterfactual Explanations은 이 사진에서 개의 특징을 제거하거나, 고양이의 특징을 추가하는 등의 입력 데이터 조작을 통해, 이 모델이 고양이로 예측하게 만들 수 있는 조건을 찾아냅니다.
Counterfactual Explanations의 활용
Counterfactual Explanations은 주로 머신러닝 모델의 예측 결과를 해석하는 데 사용됩니다. 예를 들어, 의료 분야에서 환자의 질병을 예측하는 머신러닝 모델을 만든 경우, 이 모델이 어떤 특징을 고려해서 환자를 질병이 있는 그룹에 속한 것으로 판단했는지 알아내기 위해 Counterfactual Explanations을 사용할 수 있습니다. 이를 통해 의료 전문가가 환자의 상태를 더욱 정확하게 파악하고, 진단과 치료를 더욱 효과적으로 수행할 수 있습니다.
샘플 코드
import tensorflow as tf
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from alibi.explainers import CounterfactualProto
# 학습된 모델 불러오기
model = tf.keras.models.load_model('my_model.h5')
# 입력 데이터 정규화 함수
def normalize(x):
scaler = MinMaxScaler()
return scaler.fit_transform(x)
# Counterfactual 객체 생성
cf = CounterfactualProto(model, shape=(1, 28, 28, 1), target_class=7,
distance_fn='l2', target_proba=0.9, max_iterations=1000,
early_stop=0.1, lam_init=1e-1, max_lam_steps=10, tol=0.01)
# 입력 데이터 준비
x = np.random.rand(1, 28, 28, 1)
x_normalized = normalize(x)
# Counterfactual 생성
explanation = cf.explain(x_normalized)
'Explainable AI' 카테고리의 다른 글
SHAP 그래프 해석 (0) | 2024.01.12 |
---|---|
Grad-CAM (0) | 2023.03.24 |
Feature Interaction (0) | 2022.12.21 |
Accumulated Local Effects (ALE) Plot (0) | 2022.12.03 |
LIME 결과 소수점 자리 핸들링 (0) | 2022.07.21 |