4

最近、Bag-of-Words 分類子を使用して、96% の用語を含むドキュメント マトリックスを作成しました。次に、ディシジョン ツリーを使用して、バッグの単語入力をモデル別にトレーニングし、文が重要かどうかを予測しました。モデルはテスト データセットで非常にうまく機能しましたが、サンプル データセットを使用した場合、予測できませんでした。代わりに、エラーが発生します。

これが私がRで作ったモデルです

library('caTools')
library('tm')
library('rpart')
library(rpart.plot)
library(ROCR)

data= read.csv('comments.csv', stringsAsFactors = FALSE)
corpus = Corpus(VectorSource(data$Word))

# Pre-process data
corpus <- tm_map(corpus, tolower)
corpus <- tm_map(corpus, stemDocument)

# Create matrix
dtm = DocumentTermMatrix(corpus)

# Remove sparse terms
#dtm = removeSparseTerms(dtm, 0.96)
# Create data frame
labeledTerms = as.data.frame(as.matrix(dtm))

# Add in the outcome variable
labeledTerms$IsImp = data$IsImp 

#Splitting into train and test data using caTools

set.seed(144)

spl = sample.split(labeledTerms$IsImp , 0.60)

train = subset(labeledTerms, spl == TRUE)
test = subset(labeledTerms, spl == FALSE)

#Build CART Model
CART = rpart(IsImp ~., data=train, method="class")

これは、約 83% の精度であるテスト データセットで完全に正常に動作します。ただし、このカート モデルを使用してサンプル データセットを予測すると、エラーが発生します。

head(train)
terms A B C D E F..............(n terms)
Freqs 0 1 2 1 3 0..............(n terms)

head(test)
terms A B C D E F..............(n terms)
Freqs 0 0 1 1 1 0..............(n terms)


data_random = read.csv('comments_random.csv', stringsAsFactors = FALSE)

head(data_random)
terms A B D E F H..............(n terms)
Freqs 0 0 1 1 1 0..............(n terms)

私が受け取るエラーは、data_random で「C が見つかりません」です。これを機能させるために何をすべきかわかりません。ここでラプラス平滑化は可能ですか??

4

2 に答える 2