Chapter 5 DMR
予測そのものよりも、ようするに変数重要度を確認したいというのが主な目的の場合(いわゆる「架空の予測問題」を解く場合)、「DMR(distributed multinomial regression)」という手法が便利かもしれません。
5.1 DMR(distributed multinomial regression)
DMR(distributed multinomial regression)は、Taddy (2015) で提案された手法で、雑に言うと多項ロジスティック回帰を高次元のデータでも速くできるようにしたものです。distromというRパッケージから使えます。
DMRはたとえば次のようにして実行します。product_categoryについては順序がないので、ここではダミー変数化しています。
<- corp_train |>
mat ::corpus() %>%
quanteda::tokens(what = "fastestword") |>
quanteda::dfm() |>
quanteda::dfm_trim(min_termfreq = 100, max_termfreq = 1e4) |>
quanteda::dfm_tfidf() |>
quantedaas("dgCMatrix")
<- corp_train |>
covars ::select(product_category, star_rating) |>
dplyr::transmute(
dplyrpc_video_dvd = dplyr::if_else(product_category == "Video DVD", 1, 0),
pc_music = dplyr::if_else(product_category == "Music", 1, 0),
pc_other = dplyr::if_else(product_category == "Other", 1, 0),
star_rating = as.integer(star_rating)
|>
) as.matrix() |>
as("dgCMatrix")
<-
cl ::makeCluster(
parallelmax(1, parallel::detectCores() - 1, na.rm = TRUE)
)
<-
ret ::dmr(
distrom
cl,covars = covars,
counts = mat
)
::stopCluster(cl) parallel
coefficientsが大きい特徴量を確認します。
coef(ret)["pc_video_dvd",] |>
sort(decreasing = TRUE) |>
head(50)
## 声優 ターミネーター 上映 宮崎 吹き替え 監督
## 4.531380 3.853567 3.516524 3.371827 3.221108 3.103991
## キャスト 演技 役者 劇場 娯楽 cg
## 2.877815 2.752172 2.702536 2.689291 2.685808 2.653322
## ラストシーン 観る リアリティ シーズン アカデミー 俳優
## 2.629915 2.593171 2.582959 2.579233 2.567552 2.539110
## 脚本 特典 見所 シーン 役 公開
## 2.459971 2.459964 2.395294 2.330210 2.316472 2.265206
## 正義 スピルバーグ 放映 館 blu レイ
## 2.257692 2.247745 2.216671 2.216081 2.212462 2.203985
## ブルー 演じる 吹替 復讐 台詞 ヒーロー
## 2.180158 2.177377 2.159551 2.138070 2.126201 2.119079
## アニメ 戦い ヒロイン 刑事 戦闘 出演
## 2.116731 2.106475 2.102385 2.065506 2.058139 2.032843
## バットマン サスペンス ホームズ 女優 戦争 悪役
## 2.021464 1.966226 1.959172 1.956910 1.956398 1.918113
## 恐怖 リメイク
## 1.916225 1.911121
coef(ret)["pc_music",] |>
sort(decreasing = TRUE) |>
head(50)
## sacd ビート アコースティック アルバム リフ
## 5.564642 5.460718 4.694369 4.549915 4.387598
## lp ロックンロール 曲調 パンク ヴォーカル
## 4.347881 4.296106 4.274276 4.227198 4.200279
## 必聴 スラッシュ vo リスナー マイルス
## 4.173485 4.030557 4.028758 3.973202 3.972505
## バラード メタル ギター ソロ ストーンズ
## 3.840403 3.766170 3.761472 3.700822 3.517525
## 全曲 ボーカル レコーディング メロディ st
## 3.487658 3.474896 3.461134 3.441243 3.390878
## nd ポップ 曲 楽曲 プロデュース
## 3.386917 3.316588 3.303455 3.274317 3.252896
## 聴く ギタリスト 楽器 ドラム メロディー
## 3.252538 3.170178 3.167700 3.158917 3.147558
## シングル バンド キャッチー クラプトン モノラル
## 3.107950 3.105368 3.105220 3.091808 3.070800
## 脱退 rd カントリー ビートルズ ロック
## 3.049162 3.015861 3.001146 2.993426 2.980474
## 聴ける ジャケ rock ジャズ レコード
## 2.961248 2.952392 2.950065 2.934386 2.841200
coef(ret)["pc_other",] |>
sort(decreasing = TRUE) |>
head(50)
## kindle atilde ;&# アプリ 充電 純正 レンズ
## 6.335462 6.290259 6.001140 5.752085 5.309685 5.054201 5.015425
## usb バッテリー 接続 著者 ;& インストール book
## 4.917993 4.402027 4.238265 4.172025 4.164973 4.081835 3.943654
## 動作 本体 ケーブル パーツ 使える 冊 電源
## 3.942407 3.837859 3.825347 3.705331 3.689106 3.666314 3.598223
## 便利 ボタン 無料 機能 遊ぶ ページ サイズ
## 3.471980 3.182765 2.996116 2.937164 2.794061 2.704640 2.626639
## pc 文章 使用 操作 交換 製品 絵本
## 2.607167 2.590672 2.539638 2.538409 2.497666 2.463607 2.419834
## 付属 書 用 was 試す データ 読む
## 2.312074 2.310120 2.306234 2.281336 2.270339 2.258409 2.117860
## story 表示 貼る as 式 台 have
## 2.100581 2.070926 2.042347 2.039030 1.963620 1.926075 1.904731
## ヶ月
## 1.885448
coef(ret)["star_rating",] |>
sort(decreasing = TRUE) |>
head(50)
## 最低 駄作 酷い がっかり ひどい 中途半端
## 1.5704273 1.4536477 1.3218056 1.2388505 1.1423510 1.1070474
## 最悪 つまらない ゴジラ インストール 退屈 _
## 0.9933692 0.9549500 0.9522552 0.9316276 0.8597217 0.8538243
## ダメ 肝心 イマイチ やめる 声優 メーカー
## 0.8022930 0.7714719 0.7467446 0.7001536 0.6878111 0.6873070
## 欠ける いまいち 無駄 ボンド 不足 怪獣
## 0.6761385 0.6724465 0.6678372 0.6668025 0.6607413 0.6592544
## 微妙 失敗 吹替 マニア 売る コピー
## 0.6588799 0.6377653 0.6340494 0.6307099 0.5852692 0.5724463
## アマゾン 残念 傷 貼る 試す お金
## 0.5501947 0.5305893 0.5297553 0.5179530 0.5148472 0.5076761
## 結局 悪い 販売 全く なんで 旧
## 0.5021539 0.4981619 0.4887589 0.4814328 0.4812368 0.4792993
## 安っぽい 移入 二つ すぎる ターミネーター kindle
## 0.4639137 0.4625728 0.4496884 0.4471619 0.4448238 0.4392495
## 届く それなり
## 0.4369202 0.4345080
References
Taddy, Matt. 2015. “Distributed Multinomial Regression.” The Annals of Applied Statistics 9 (3). https://doi.org/10.1214/15-aoas831.