lime 실습 :: 머신 러닝 모형 해석 - mindscale
Skip to content

lime 실습

설치

!pip install lime

준비

전처리된 데이터를 불러온다.

import joblib
data = joblib.load('tmi.pkl')
locals().update(data)

학습된 모형을 불러온다.

import tensorflow as tf
model = tf.keras.models.load_model('simple-text-model.krs')

설명

from lime.lime_text import LimeTextExplainer
exp = LimeTextExplainer()

텍스트를 입력했을 때 예측을 하는 함수를 만든다. 입력된 텍스트를 단어 문서 행렬로 변환하고 모형에 입력하여 예측을 하게 한다.

def predict_fn(text):
    mat = cv.transform(text)
    return model.predict(mat)

5번 텍스트를 설명하기로 한다.

idx = 5
text = review_test.iloc[idx]
text
'This is an excellent film.'

텍스트에 대해 예측을 출력해본다.

predict_fn([text])
array([[0.5467562]], dtype=float32)

설명을 생성한다.

e = exp.explain_instance(text, predict_fn, labels=[0])

단어별 가중치를 확인한다.

e.as_list(label=0)
[('film', 0.03546393891372167),
 ('excellent', 0.019471152705283924),
 ('is', -9.483417715670829e-06),
 ('This', -9.012917062862318e-06),
 ('an', -7.203394966148092e-06)]

좀 더 예쁘게 표현해본다.

e.show_in_notebook(labels=[0], text=True)