1

package を使用Quantedaして dfm および dfm-tfidf オブジェクトを作成しました。まばらな機能を削除し、トリムされた dfm を作成する 2 つの方法に従いました。1 つは、関数sparsityに引数を直接適用することでした。dfm()2 つ目は、 を使用してスパース性を減らすことでしたdfm_trim()

アプローチ 1: まず、トレーニング トークンとテスト トークンから dfm オブジェクトと dfm_tfidf オブジェクトを作成しました。次に、次のように dfm_tfidf を適用しました。

dfmat_train <- dfm(traintokens)
dfmat_train_tfidf<- dfm_tfidf(dfmat_train)
dfmat_test <- dfm(traintokens)
dfmat_test_tfidf <- dfm(dfmat_test)

次に、dfm_trim疎な機能を削除するだけでした。

dfmat_train_trimmed <- dfm_trim(dfmat_train, sparsity=0.98)
dfmat_train_trimmed _tfidf <- dfm_trim(dfmat_train_tfidf, sparsity=0.98)
dfmat_test_trimmed <- dfm_trim(dfmat_test, sparsity=0.98)
dfmat_test_trimmed_tfidf <- dfm_trim(dfmat_test_tfidf, sparsity=0.98)

アプローチ 2 の方が短かった。tfdif の重み付けは、トリミング後に行われます。

dfmat_train <- dfm(traintokens, sparsity = 0.98)
dfmat_train_tfidf <- dfm_tfidf(dfmat_train)
dfmat_test <- dfm_tfidf(testtokens, sparsity = 0.98)
dfmat_test_tfidf <- dfm_tfidf(dfmat_test )

上記の両方のアプローチを使用してモデルをトレーニングし、テスト データ セットを予測した後、アプローチ 1 では、tfidf テスト データと非 tfidf テスト データの両方で同一の予測パフォーマンス メトリックが得られました。Cohen のカッパは 1 です。アプローチ 2 では、異なる (tfidf と非 tfidf) 予測が得られましたが、予測の精度は低くなりました。私は困惑しています。正しいアプローチはどれですか?

4

0 に答える 0