【ウーバーイーツ】配達データでブースティング【沖縄市】
前回、バギングモデルを作成して、誤判別率の改善を試みた。

結果、誤判別率が0.4となり、前々回の数値より悪くなった。
今回も前回同様、誤判別率を改善できるかやってみる。
参考書籍・資料

主な参考箇所 16 集団学習
概要
扱うデータの確認
↓
ブースティングについて調べる
↓
ブースティングモデルを作成
使用するデータ
使用するデータは、私の配達データ。
期間は、2021年5月10日~10月31日。
上記期間の総配達件数は、1528件。※ ダブルピックも1件とカウント。
扱うデータの確認
前回同様に、3店舗の配達データを学習用データとテストデータに分ける。
合計配達単価 | ベース料金 | 配達調整金 | 店舗 | |
1 | 301 | 127 | 207 | マクドナルド コザ十字路店(A) |
2 | 329 | 132 | 219 | マクドナルド コザ十字路店(A) |
… | … | … | … | … |
62 | 406 | 150 | 284 | らあめん花月嵐 美里(B) |
… | … | … | … | … |
135 | 632 | 185 | 230 | A&W 美里店(C) |
… | … | … | … | … |
学習用データ↓
store | ベース料金 | 配達調整金 | 店舗 | |
1 | A | 127 | 207 | マクドナルド コザ十字路店 |
3 | A | 135 | 373 | マクドナルド コザ十字路店 |
5 | A | 115 | 272 | マクドナルド コザ十字路店 |
… | … | … | … | … |
テスト用データ↓
store | ベース料金 | 配達調整金 | 店舗 | |
2 | A | 132 | 219 | マクドナルド コザ十字路店 |
4 | A | 126 | 181 | マクドナルド コザ十字路店 |
6 | A | 125 | 378 | マクドナルド コザ十字路店 |
… | … | … | … | … |
ブースティングについて
今回は、ブースティングという手法を用いて、モデルの精度向上を目指す。
ブースティング(boosting)では、与えた教師付きデータを用いて学習を行い、その学習結果を踏まえて逐次重みの調整を繰り返すことで複数の学習結果を求める。そして、その結果を統合・組み合わせ、精度を向上させる。
ざっくりまとめると、
モデルA→調整→モデルB→調整→モデルC
モデルA+モデルB+モデルC→最終出力モデル
こんな感じだろう。
ブースティングモデルを作成
書籍にならって、ブースティングモデルを作成してみる。
install.packages("adabag"); library("adabag") set.seed(20) data.train <- read.table("clipboard",header = TRUE) data.train$store <- as.factor(data.train$store) data.test <- read.table("clipboard",header = TRUE) data.test$store <- as.factor(data.test$store) data.ad <- boosting(store ~ .,data=data.train) data.adp <- predict(data.ad,newdata=data.test) (res <- data.adp$confusion) 1-sum(diag(res))/sum(res)
結果↓
A | B | C | |
A | 19 | 4 | 5 |
B | 3 | 29 | 10 |
C | 8 | 4 | 13 |
Aと判別したデータが、実際にAだった場合が30個中19個。
Bと判別したデータが、実際にBだった場合が37個中29個。
Cと判別したデータが、実際にCだった場合が28個中13個。
正しく判別できた個数が61個、正しく判別できなかった個数が34個となった。誤判別率は0.36となった。
前々回の誤判別率0.39、前回の誤判別率0.4より良い結果となった。
まとめ
今回は、ブースティングモデルを作成することで、誤判別率の改善を目指した。
結果、前回の誤判別率より良い結果となった。
バギングモデルとブースティングモデルの精度について調べてみたところ、以下の文章を見つけた。
バギングは、弱学習器を独立に作成するため、計算を並列に行うことができます。そのため、計算時間をかけずに、比較的精度の高いモデルを得ることができます。
一方、ブースティングは、今まで作った弱学習器の弱点を補うように次の弱学習器を作るので、全体として、より精度の高いモデルを得ることができます。
今回のデータセットは、変数・行数共に少なく、計算量も少ないと予想できるため、より精度が高くなるブースティングを用いるのが良かったのだろう。
コメント