1
私は、xgboost
パッケージで使用するためにダミー変数に変換する必要のある因子変数の束を持つデータフレームを持っています。私は現在、の機能をcaret
に使用していますが、それはかなり良いですが遅いです。この変換をより速く行う方法はありますか?最速ダミー変数変換パッケージ/関数
私は、xgboost
パッケージで使用するためにダミー変数に変換する必要のある因子変数の束を持つデータフレームを持っています。私は現在、の機能をcaret
に使用していますが、それはかなり良いですが遅いです。この変換をより速く行う方法はありますか?最速ダミー変数変換パッケージ/関数
Matrix
パッケージからは、model.matrix
とsparse.model.matrix
の両方が仕事をしています。例えば
require(Matrix)
oat_data <- data.frame( num = c(1,2,4,8,16),
animal = c("cat","cat","dog","cat","horse"),
oats = c("likes","dislikes","dislikes","likes","dislikes"))
dense_mat <- model.matrix(~.-1,data=oat_data, verbose = F)
sparse_mat <- sparse.model.matrix(~.-1,data=oat_data, verbose = F)
dense_mat
num animalcat animaldog animalhorse oatslikes
1 1 1 0 0 1
2 2 1 0 0 0
3 4 0 1 0 0
4 8 1 0 0 1
5 16 0 0 1 0
sparse_mat
num animalcat animaldog animalhorse oatslikes
1 1 1 . . 1
2 2 1 . . .
3 4 . 1 . .
4 8 1 . . 1
5 16 . . 1 .
多くの要因を持つ数百もの変数でも非常に高速です。