최근 인공지능(AI)과 머신러닝(ML)의 발전으로 다양한 데이터 예측 모델이 개발되고 있습니다. 이러한 모델들은 각기 다른 데이터 셋에 적용되며, 그 해석 가능성 또한 중요한 이슈로 부각되고 있습니다. LIME(Local Interpretable Model-agnostic Explanations)은 이러한 모델의 예측 결과를 이해하는 데 도움을 주는 훌륭한 도구입니다. 이번 글에서는 LIME의 기본 코드와 그 해석을 통해 캘리포니아 주택 가격 예측과 유방암 예측의 사례를 살펴보겠습니다.
캘리포니아 주택 가격 예측(회귀)에서의 LIME 활용
캘리포니아의 주택 가격 예측은 머신러닝 회귀 분석의 대표적인 예시입니다. 이 모델은 집의 위치, 크기, 방 개수 등 다양한 입력 변수를 바탕으로 집값을 예측합니다.
LIME 코드 예시
아래는 간단한 LIME 코드의 예시입니다.
python
import lime
import lime.lime_tabular
import pandas as pd
import numpy as np

from sklearn.ensemble import RandomForestRegressor
데이터 로드
data = pd.read_csv(‘california_housing_train.csv’)
X = data.drop(‘median_house_value’, axis=1)
y = data[‘median_house_value’]
모델 훈련
model = RandomForestRegressor()
model.fit(X, y)
LIME explainer 준비
explainer = lime.lime_tabular.LimeTabularExplainer(X.values, feature_names=X.columns.tolist(), mode=’regression’)
예측할 인스턴스 선택
idx = 1
exp = explainer.explain_instance(X.values[idx], model.predict)
결과 시각화
exp.show_in_notebook(show_table=True)
위 코드에서는 랜덤 포레스트 회귀 모델을 사용하여 주택 가격을 예측하고, LIME을 통해 특정 인스턴스의 예측 결과를 설명합니다. show_in_notebook 함수를 사용하여 결과를 시각화하면, 해당 인스턴스에 대해 어떤 피처가 얼마나 영향을 미쳤는지 직관적으로 확인할 수 있습니다.
유방암 예측(분류)에서의 LIME 활용
유방암 예측은 생명과 직결되는 중요한 분야로, 머신러닝 모델이 환자의 데이터를 바탕으로 병의 진행 상태를 분류하는 데 사용됩니다. 이 경우 LIME은 모델의 판단 근거를 설명하는 데 큰 역할을 합니다.
LIME 코드 예시
아래는 유방암 데이터에서 LIME을 활용하는 방법의 예시입니다.
python
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
import lime
import lime.lime_tabular
데이터 로드 및 분할
data = load_breast_cancer()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
모델 훈련
model = RandomForestClassifier()
model.fit(X_train, y_train)
LIME explainer 준비

explainer = lime.lime_tabular.LimeTabularExplainer(X_train.values, feature_names=X_train.columns.tolist(), mode=’classification’)
예측할 인스턴스 선택
idx = 10
exp = explainer.explain_instance(X_test.values[idx], model.predict)
결과 시각화
exp.show_in_notebook(show_table=True)
이 코드에서는 랜덤 포레스트 분류 모델을 통해 유방암을 예측하고, LIME을 사용하여 특정 환자의 예측 결과를 설명합니다. 각 피처가 모델 예측에 미치는 영향을 쉽게 파악할 수 있습니다.
결과 해석의 중요성
LIME은 단순히 예측 결과를 제공하는 것뿐만 아니라, 각 피처가 예측에 미치는 영향을 명확히 드러내 줍니다. 이는 특히 의료 분야와 같은 중요한 결정이 필요한 영역에서 더욱 큰 의미를 가집니다. 예를 들어, 유방암의 경우 예측 결과와 함께 특정 피처가 어떤 식으로 영향을 미쳤는지를 분석하면, 의사들은 더욱 신뢰할 수 있는 판단을 내릴 수 있습니다.
이러한 LIME의 활용은 해석 가능성을 높여 모델의 신뢰성을 증대시키며, 다양한 분야에서 적용될 수 있는 중요한 도구로 자리 잡고 있습니다.