【ウーバーイーツ】配達データでバギング【沖縄市】
前回、配達データで作成した決定木で判別を行ってみた。

【ウーバーイーツ】配達データで作成した決定木を用いて判別を行ってみる【沖縄市】
【ウーバーイーツ】配達データで作成した決定木を用いて判別を行ってみる【沖縄市】 前回、配達データで決定木を作成してみた。 今回は、作成した決定木を用いて判別を行ってみる。 参考書籍・資料 主な参考箇所 1...
結果、誤判別率が0.39となり、良くない数値となった。
今回は、この誤判別率を改善できるかやってみる。
参考書籍・資料
Rによるデータサイエンス(第2版):データ解析の基礎から最新手法まで | 金 明哲 |本 | 通販 | Amazon
Amazonで金 明哲のRによるデータサイエンス(第2版):データ解析の基礎から最新手法まで。アマゾンならポイント還元本が多数。金 明哲作品ほか、お急ぎ便対象商品は当日お届けも可能。またRによるデータサイエンス(第2版):データ解析の基礎から最新手法までもアマゾン配送商品なら通常配送無料。
主な参考箇所 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 | マクドナルド コザ十字路店 |
… | … | … | … | … |
バギングについて
今回は、バギングという手法を用いて、モデルの精度向上を目指す。
バギングでは、与えられたデータセットから、ブートストラップ (bootstrap)というリサンプリング法によって複数の学習データセットを作成し、そのデータを用いて作成した回帰・分類結果を統合・組み合わせることで精度を向上させる。
今回の場合で言うと、学習用データをいくつかに分割し、その中でモデルを作成、できあがった複数のモデルを合体させて、1つのモデルを作成するということだろう。
やってみる。
バギングモデルを作成
書籍にならって、バギングモデルを作成してみる。
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.ba <- bagging(store ~ .,data=data.train) data.bap <- predict(data.ba,data.test[,-1]) (tb.ba <- table(data.test[,1],data.bap$class))
結果↓
A | B | C | |
A | 17 | 3 | 10 |
B | 6 | 28 | 3 |
C | 5 | 11 | 12 |
Aと判別したデータが、実際にAだった場合が28個中17個。
Bと判別したデータが、実際にBだった場合が42個中28個。
Cと判別したデータが、実際にCだった場合が25個中12個。
正しく判別できた個数が57個、正しく判別できなかった個数が38個となった。誤判別率は0.4となった。
前回の誤判別率0.39より悪い結果となった。
まとめ
今回は、バギングモデルを作成することで、誤判別率の改善を目指した。
結果、前回の誤判別率より悪い結果となってしまった。
コメント