홈>
블랙 박스 모델 예측을 설명하기 위해 텍스트 데이터 세트에서 R 라임을 사용하는 방법을 모색하고 있으며 https://cran.r-project.org/web/packages/lime/vignettes/Understanding_lime.html
레스토랑 리뷰 데이터 셋을 테스트했지만 plot_features가 모든 기능을 인쇄하지는 않는다는 것을 발견했습니다. 왜 이런 일이 발생하는지 또는 다른 패키지를 사용하도록 권유하는지에 대한 조언이나 통찰력을 누군가가 제공 할 수 있는지 궁금합니다. R 라임에 대한 많은 작업이 온라인에서 찾을 수 없기 때문에 여기에서 도움을 주시면 감사하겠습니다. 감사합니다!
데이터 세트 : https://drive.google.com/file/d/1-pzY7IQVyB_GmT5dT0yRx3hYzOFGrZSr/view? usp = sharing
# Importing the dataset
dataset_original = read.delim('Restaurant_Reviews.tsv', quote = '', stringsAsFactors = FALSE)
# Cleaning the texts
# install.packages('tm')
# install.packages('SnowballC')
library(tm)
library(SnowballC)
corpus = VCorpus(VectorSource(dataset_original$Review))
corpus = tm_map(corpus, content_transformer(tolower))
corpus = tm_map(corpus, removeNumbers)
corpus = tm_map(corpus, removePunctuation)
corpus = tm_map(corpus, removeWords, stopwords())
corpus = tm_map(corpus, stemDocument)
corpus = tm_map(corpus, stripWhitespace)
# Creating the Bag of Words model
dtm = DocumentTermMatrix(corpus)
dtm = removeSparseTerms(dtm, 0.999)
dataset = as.data.frame(as.matrix(dtm))
dataset$Liked = dataset_original$Liked
# Encoding the target feature as factor
dataset$Liked = factor(dataset$Liked, levels = c(0, 1))
# Splitting the dataset into the Training set and Test set
# install.packages('caTools')
library(caTools)
set.seed(123)
split = sample.split(dataset$Liked, SplitRatio = 0.8)
training_set = subset(dataset, split == TRUE)
test_set = subset(dataset, split == FALSE)
library(caret)
model <- train(Liked~., data=training_set, method="xgbTree")
######
#LIME#
######
library(lime)
explainer <- lime(training_set, model)
explanation <- explain(test_set[1:4,], explainer, n_labels = 1, n_features = 5)
plot_features(explanation)
원치 않는 결과 : https://www.dropbox.com /s/pf9dq0kba0d5flt/Udemy_NLP_Lime.jpeg?dl=0
내가 원하는 것 (다른 데이터 세트) : https : // www .dropbox.com/s/e1472i4yw1owmlc/DMT_A5_lime.jpeg? dl = 0
-
답변 # 1
관련 자료
- machine learning - 레이블이없는 데이터에 대한 텍스트 분류
- python - 텍스트 파일에서 데이터를 읽고 거래 목록으로 변환하고 싶습니다
- sql - 일주일 열 단위로 매일의 데이터 표시
- python - Google 검색 정보 표시 줄에서 텍스트 데이터를 얻는 방법
- java - 텍스트 마이닝 또는 챗 봇용 NLP
- java - RDD는 어떻게 데이터를 스스로 분리합니까?
- excel - 텍스트 파일로 데이터 저장
- dat 파일에서 int로 텍스트 데이터를 변환하는 Python
- xamarin - 항목에 대한 데이터를 목록보기로 전달하는 방법은 무엇입니까?
- c - 데이터 배열을위한 mmap 함수
- php - 5GB + 파일에서 텍스트를 검색 한 후 전체 줄을 가져옵니다
- postgresql - 상태에 대한 OSM 데이터가 주어지면 해당 영역을 찾으십시오
- python - 정규식으로 텍스트 파일에서 데이터 추출
- nuget - 부트 스트랩 4 SAS 패키지?
- model view controller - C # MVC의 텍스트 상자에서 데이터를 읽는 방법
- c++ - 텍스트 파일에서 int 배열의 배열로 데이터를 읽는 방법은 무엇입니까?
- regex - 모든 wav 파일 이름에 대한 PHP 검색 텍스트 파일
- android - 편집 텍스트 데이터를 얻지 못함
- python - 텍스트로 데이터를 바꾸는 방법?
- java - 객체 데이터 유형에 POST를 수행하는 방법은 무엇입니까?
데이터 세트 및 출력에 제공 한 링크를 열 수 없습니다. 그러나 https://cran.r-project.org/web/packages/lime/vignettes/Understanding_lime.html 제공 한 동일한 링크를 사용하고 있습니다. 링크에있는 것처럼 text2vec를 사용하고 분류를 위해 xgboost 패키지를 사용합니다. 그리고 그것은 나를 위해 작동합니다. 더 많은 기능을 표시하려면 Explain 기능에서 n_features 값을 늘려야 할 수 있습니다 (https://www.rdocumentation.org/packages/lime/versions/0.4.0/topics/explain 참조).
코드에서 NA는 train_sentences 데이터 세트에 적용 할 때 다음 줄에 생성됩니다. 다음에 대한 코드를 확인하십시오.
레벨을 제거하거나 레벨을 라벨로 변경하면 나에게 효과적입니다.
데이터 구조를 확인하고 해당 NA로 인해 데이터가 0 행렬이 아니거나 너무 희박하지 않은지 확인하십시오. 상위 n 기능을 찾을 수 없으므로 문제가 발생할 수도 있습니다.