250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- subdag
- API
- TensorFlow
- integrated gradient
- requests
- chatGPT
- 상관관계
- gather_nd
- correlation
- top_k
- Airflow
- grad-cam
- 공분산
- airflow subdag
- hadoop
- XAI
- flask
- GenericGBQException
- tensorflow text
- spark udf
- Retry
- 유튜브 API
- BigQuery
- GCP
- UDF
- API Gateway
- login crawling
- youtube data
- session 유지
- Counterfactual Explanations
Archives
- Today
- Total
데이터과학 삼학년
LIME for Text 본문
반응형
여기서 model은 layer에 text vectorization layer가 들어있어
input 으로 raw 데이터인 text를 그대로 집어 넣어도 결과가 나온다.
text를 따로 vector변환하여 모델에 넣는 것을 구성하였다면,
파이프라인을 만들어 전처리과정을 태우는 모델을 넣던지
아니면 input data를 직접 벡터화하여 넣는 방안도 있다.
두번째 안은 직접벡터화하면 plot에 벡터화된 숫자가 나올 것이므로 추천하지 않는다.
In [ ]:
!pip3 install lime
In [ ]:
!gsutil cp -r gs://exaple/model/20200729/KOR/text_classification_train_20200729_1596178422_KOR/keras_export/keyed_model/* ./
In [1]:
from lime.lime_text import LimeTextExplainer
import os
import numpy as np
import tensorflow as tf
from tensorflow.keras.layers.experimental.preprocessing import TextVectorization
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import font_manager
In [2]:
class_names=['부정','긍정']
In [3]:
explainer = LimeTextExplainer(class_names=class_names)
In [4]:
KEYED_EXPORT_PATH = './'
In [5]:
loaded_model = tf.keras.models.load_model(KEYED_EXPORT_PATH, custom_objects={"TextVectorization":TextVectorization})
In [6]:
sample_data=['별 흥미 를 못 끌 더니 시청 률 도 결국 참패','The movie is very nice. Actor is so handsome']
In [7]:
loaded_model.predict(sample_data)[0]
Out[7]:
In [8]:
exp1 = explainer.explain_instance(sample_data[0],loaded_model.predict, num_features=48)
In [9]:
font_dirs = ['./']
font_files = font_manager.findSystemFonts(fontpaths=font_dirs)
font_list = font_manager.createFontList(font_files)
font_manager.fontManager.ttflist.extend(font_list)
font_list
Out[9]:
In [10]:
plt.rcParams["font.family"] = "NanumBarunGothic"
fig = exp1.as_pyplot_figure()
exp1.show_in_notebook(text=False)
In [11]:
exp2 = explainer.explain_instance(sample_data[1],loaded_model.predict, num_features=48)
In [12]:
fig = exp2.as_pyplot_figure()
exp2.show_in_notebook(text=False)
728x90
반응형
LIST
'Explainable AI' 카테고리의 다른 글
LIME 결과 소수점 자리 핸들링 (0) | 2022.07.21 |
---|---|
ICE (Individual conditional expectation) (0) | 2022.06.01 |
PDP (Partial Dependence Plot) (0) | 2022.05.28 |
SHAP (SHapley Additive exPlanations) (0) | 2020.08.19 |
LIME (Local Interpretable Model-agnostic Explanation) (0) | 2020.08.03 |
Comments