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)