- Versión de R al momento de ejecutar el documento: 3.6.3.
LigthBGM
Microsoft y XGBoost
- Las bibliotecas
ranger
o randomForest
(incluso otras) son buenas opciones para ajustar modelos basados en árboles (clasificación o regresión), sin embargo, existen otras alternativas de uso común (en kaggle por ejemplo) cuyo desarrollo es reciente. Las bibliotecas LightGMB
para R y XGBoost
, son herramientas que posibilitan el escalamiento a mayor volumen de datos con alta flexibilidad para entrenar modelos.
- La biblioteca
xgboost
se instala como cualquier otra desde RStudio.
- La biblioteca
lightgbm
que está contenida en LigthBGM
, se debe instalar con determinadas configuraciones en windows.
Instalación LigthBGM
Windows
- Nota: en la instalación de cmake y Rtools agregar como variables de entorno durante la instalación (opción PATH). Dado que esta configuración es estrictamente necesaria, si durante la instalación no las configuró por defecto, es posible hacerlo desde:
Inicio -> Editar variables de entorno -> Variables del sistema -> path
.
- Instalar componentes neccesarios:
- Clonar repositorio desde Github. Es posible crear un nuevo proyecto en RStudio y usar versión de control o utilizar
git clone --recursive https://github.com/Microsoft/LightGBM
desde Git. En este paso se genera la nueva carpeta obtenida desde el repositorio de Microsoft en Github.
- Editar archivo
install.libs.R
. TRUE
en la opción use_gpu
, es opcional. Por defecto se muestra de la siguiente manera:
# Por defecto
use_precompile <- FALSE
use_gpu <- FALSE
use_mingw <- FALSE
# Cambios
use_precompile <- TRUE
use_gpu <- TRUE
use_mingw <- TRUE
- Copiar el archivo CMakeLists que está en la carpeta principal y pegarlo en la siguiente ruta:
.../LightGBM/R-package/src
.
- Descargar el archivo
lib_lightgbm.dll
y pegarlo en el siguiente directorio .../LightGBM/R-package/inst/bin
.
- Ejecutar desde la terminal (puede ser en RStudio) el siguiente comando
R CMD INSTALL --build . --no-multiarch
. Esta instrucción permite instalar las bibliotecas necesarias para R. Este paso podría ser homólogo al ejecutar desde R el script de nombre build_r.R
a través de la función source("build_r.R")
.
LS0tDQp0aXRsZTogIkd1w61hIGRlIEluc3RhbGFjacOzbiBgTGlnaHRHQk1gIC0gTWljcm9zb2Z0Ig0Kc3VidGl0bGU6ICJJbnN0YWxhY2nDs24gZW4gV2luZG93cyINCmF1dGhvcjogIkVkaW1lciBEYXZpZCBKYXJhbWlsbG8iDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6DQogICAgdG9jOiB0cnVlDQogICAgdGhlbWU6IGx1bWVuDQogICAgaGlnaGxpZ2h0OiBicmVlemVkYXJrDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgY3NzOiBjc3MvZXN0aWxvLmNzcw0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlID0gRkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsDQogICAgICAgICAgICAgICAgICAgICAgZXZhbCA9IFRSVUUsDQogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IEZBTFNFLA0KICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgPSBGQUxTRSwNCiAgICAgICAgICAgICAgICAgICAgICBmaWcuYWxpZ24gPSAiY2VudGVyIikNCg0KIyBCaWJsaW90ZWNhcw0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGRhdGEudGFibGUpDQpsaWJyYXJ5KFJDb2xvckJyZXdlcikNCmxpYnJhcnkoY29ycnBsb3QpDQpsaWJyYXJ5KEZhY3RvTWluZVIpDQpsaWJyYXJ5KGZhY3RvZXh0cmEpDQpsaWJyYXJ5KGdncHVicikNCmxpYnJhcnkoSG1pc2MpDQpsaWJyYXJ5KERhdGFFeHBsb3JlcikNCmxpYnJhcnkoamNvbG9ycykNCg0KIyBUZW1hIGdncGxvdDINCnRlbWFfZ2cxIDwtIHRoZW1lX2xpZ2h0KCkgKw0KICB0aGVtZShzdHJpcC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAiYmxhY2siKSwNCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siKSwNCiAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiYmxhY2siKSwNCiAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInRvcCIpDQojIENvbG9yZXMNCmNvbDIgPC0gYXMuY2hhcmFjdGVyKGpjb2xvcnMoInBhbDciKVtjKDcsIDYpXSkNCmBgYA0KDQo8Y2VudGVyPg0KPGltZyBzcmMgPSAiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE2MDQwOTUwP3Y9MyIgd2lkdGggPSAzODAvPg0KPC9jZW50ZXI+DQoNCi0gVmVyc2nDs24gZGUgUiBhbCBtb21lbnRvIGRlIGVqZWN1dGFyIGVsIGRvY3VtZW50bzogYHIgZ2V0UnZlcnNpb24oKWAuDQoNCiMgYExpZ3RoQkdNYCBNaWNyb3NvZnQgeSBgWEdCb29zdGANCg0KLSBMYXMgYmlibGlvdGVjYXMgYHJhbmdlcmAgbyBgcmFuZG9tRm9yZXN0YChpbmNsdXNvIFtvdHJhc10oaHR0cDovL3BoaWxpcHBwcm8uZ2l0aHViLmlvL01vcmVfY29tcGxldGVfbGlzdC8pKSAgIHNvbiBidWVuYXMgb3BjaW9uZXMgIHBhcmEgYWp1c3RhciBtb2RlbG9zIGJhc2Fkb3MgZW4gw6FyYm9sZXMgKCpjbGFzaWZpY2FjacOzbiogbyAqcmVncmVzacOzbiopLCBzaW4gZW1iYXJnbywgZXhpc3RlbiBvdHJhcyBhbHRlcm5hdGl2YXMgZGUgdXNvIGNvbcO6biAoZW4gW2thZ2dsZV0oaHR0cHM6Ly93d3cua2FnZ2xlLmNvbS8pIHBvciBlamVtcGxvKSBjdXlvIGRlc2Fycm9sbG8gZXMgcmVjaWVudGUuIExhcyBiaWJsaW90ZWNhcyBbYExpZ2h0R01CYCBwYXJhIFJdKGh0dHBzOi8vbGlnaHRnYm0ucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L1IvaW5kZXguaHRtbCkgeSBbYFhHQm9vc3RgXShodHRwczovL3hnYm9vc3QucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0LyksIHNvbiBoZXJyYW1pZW50YXMgcXVlIHBvc2liaWxpdGFuIGVsIGVzY2FsYW1pZW50byBhIG1heW9yIHZvbHVtZW4gZGUgZGF0b3MgY29uIGFsdGEgZmxleGliaWxpZGFkIHBhcmEgZW50cmVuYXIgbW9kZWxvcy4NCi0gTGEgYmlibGlvdGVjYSBgeGdib29zdGAgc2UgaW5zdGFsYSBjb21vIGN1YWxxdWllciBvdHJhIGRlc2RlIFJTdHVkaW8uDQotIExhIGJpYmxpb3RlY2EgYGxpZ2h0Z2JtYCBxdWUgZXN0w6EgY29udGVuaWRhIGVuIGBMaWd0aEJHTWAsIHNlIGRlYmUgaW5zdGFsYXIgY29uIGRldGVybWluYWRhcyBjb25maWd1cmFjaW9uZXMgZW4gd2luZG93cy4NCg0KIyBJbnN0YWxhY2nDs24gYExpZ3RoQkdNYCBXaW5kb3dzIA0KDQowLiAqKk5vdGE6KiogZW4gbGEgaW5zdGFsYWNpw7NuIGRlICpjbWFrZSogeSAqUnRvb2xzKiBhZ3JlZ2FyIGNvbW8gdmFyaWFibGVzIGRlIGVudG9ybm8gZHVyYW50ZSBsYSBpbnN0YWxhY2nDs24gKG9wY2nDs24gKlBBVEgqKS4gRGFkbyBxdWUgZXN0YSBjb25maWd1cmFjacOzbiBlcyBlc3RyaWN0YW1lbnRlIG5lY2VzYXJpYSwgc2kgZHVyYW50ZSBsYSBpbnN0YWxhY2nDs24gbm8gbGFzIGNvbmZpZ3Vyw7MgcG9yIGRlZmVjdG8sIGVzIHBvc2libGUgaGFjZXJsbyBkZXNkZTogYEluaWNpbyAtPiBFZGl0YXIgdmFyaWFibGVzIGRlIGVudG9ybm8gLT4gVmFyaWFibGVzIGRlbCBzaXN0ZW1hIC0+IHBhdGhgLiAgICAgIA0KMS4gSW5zdGFsYXIgY29tcG9uZW50ZXMgbmVjY2VzYXJpb3M6ICAgIA0KICAgIC0gW0dpdCBCYXNoLl0oaHR0cHM6Ly9naXQtc2NtLmNvbS9kb3dubG9hZC93aW4pICAgICANCiAgICAtIFtWaXN1YWwgU3R1ZGlvLl0oaHR0cHM6Ly92aXN1YWxzdHVkaW8ubWljcm9zb2Z0LmNvbS9lcy9kb3dubG9hZHMvKSBDdWFuZG8gc2UgaW5zdGFsYSBlcyBuZWNlc2FyaW8gcmVpbmljaWFyIGVsIHBjLg0KICAgIC0gW0Rlc2NhcmdhIGRlIGNtYWtlXShodHRwczovL2NtYWtlLm9yZy9kb3dubG9hZC8pLiBFc3RhIGhlcnJhbWllbnRhIHBlcm1pdGUgY29uc3RydWNjacOzbiBkZSBzb2Z0d2FyZS4NCiAgICAtIFtSdG9vbHMuXShodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy9iaW4vd2luZG93cy9SdG9vbHMvKQ0KICAgIC0gW1NESyAob3BjaW9uYWwpLl0oaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lcy1lcy93aW5kb3dzL2Rvd25sb2Fkcy93aW5kb3dzLTEwLXNkay8pDQoyLiBDbG9uYXIgW3JlcG9zaXRvcmlvIGRlc2RlIEdpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9MaWdodEdCTSkuIEVzIHBvc2libGUgY3JlYXIgdW4gbnVldm8gcHJveWVjdG8gZW4gUlN0dWRpbyB5IHVzYXIgKnZlcnNpw7NuIGRlIGNvbnRyb2wqIG8gdXRpbGl6YXIgYGdpdCBjbG9uZSAtLXJlY3Vyc2l2ZSBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L0xpZ2h0R0JNYCBkZXNkZSAqR2l0Ki4gRW4gZXN0ZSBwYXNvIHNlIGdlbmVyYSBsYSBudWV2YSBjYXJwZXRhIG9idGVuaWRhIGRlc2RlIGVsIHJlcG9zaXRvcmlvIGRlIE1pY3Jvc29mdCBlbiBHaXRodWIuICAgDQozLiBFZGl0YXIgYXJjaGl2byBgaW5zdGFsbC5saWJzLlJgLiBgVFJVRWAgZW4gbGEgb3BjacOzbiBgdXNlX2dwdWAsIGVzIG9wY2lvbmFsLiBQb3IgZGVmZWN0byBzZSBtdWVzdHJhIGRlIGxhIHNpZ3VpZW50ZSBtYW5lcmE6DQoNCmBgYA0KIyBQb3IgZGVmZWN0bw0KdXNlX3ByZWNvbXBpbGUgPC0gRkFMU0UNCnVzZV9ncHUgPC0gRkFMU0UNCnVzZV9taW5ndyA8LSBGQUxTRQ0KDQojIENhbWJpb3MNCnVzZV9wcmVjb21waWxlIDwtIFRSVUUNCnVzZV9ncHUgPC0gVFJVRQ0KdXNlX21pbmd3IDwtIFRSVUUNCmBgYA0KDQo0LiBDb3BpYXIgZWwgYXJjaGl2byAqQ01ha2VMaXN0cyogcXVlIGVzdMOhIGVuIGxhIGNhcnBldGEgcHJpbmNpcGFsIHkgcGVnYXJsbyBlbiBsYSBzaWd1aWVudGUgcnV0YTogYC4uLi9MaWdodEdCTS9SLXBhY2thZ2Uvc3JjYC4gICAgDQo1LiBEZXNjYXJnYXIgZWwgW2FyY2hpdm8gYGxpYl9saWdodGdibS5kbGxgXShodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L0xpZ2h0R0JNL3JlbGVhc2VzKSB5IHBlZ2FybG8gZW4gZWwgc2lndWllbnRlIGRpcmVjdG9yaW8gYC4uLi9MaWdodEdCTS9SLXBhY2thZ2UvaW5zdC9iaW5gLiAgIA0KNi4gRWplY3V0YXIgZGVzZGUgbGEgdGVybWluYWwgKHB1ZWRlIHNlciBlbiBSU3R1ZGlvKSBlbCBzaWd1aWVudGUgY29tYW5kbyBgUiBDTUQgSU5TVEFMTCAtLWJ1aWxkIC4gLS1uby1tdWx0aWFyY2hgLiBFc3RhIGluc3RydWNjacOzbiBwZXJtaXRlIGluc3RhbGFyIGxhcyBiaWJsaW90ZWNhcyBuZWNlc2FyaWFzIHBhcmEgUi4gRXN0ZSBwYXNvIHBvZHLDrWEgc2VyIGhvbcOzbG9nbyBhbCBlamVjdXRhciBkZXNkZSBSIGVsIHNjcmlwdCBkZSBub21icmUgYGJ1aWxkX3IuUmAgYSB0cmF2w6lzIGRlIGxhIGZ1bmNpw7NuIGBzb3VyY2UoImJ1aWxkX3IuUiIpYC4NCg0KIyBSZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24NCg0KLSBbSW5zdGFsbCBMaWdodEdCTSAoY29yZWFubykuXShodHRwczovL2JsdWVkaWFyeTgudGlzdG9yeS5jb20vMjUpDQotIFtHdcOtYSBkZSBpbnN0YWxhY2nDs24gZGUgTGlnaHRHQk0gcGFyYSBSLl0oaHR0cHM6Ly9saWdodGdibS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvUi9pbmRleC5odG1sKQ0KLSBbU3RhY2sgb3ZlcmZsb3cgLSBpbnN0YWxjacOzbiBkZSBMaWdodEdCTS5dKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUwNjg1NzU1L2luc3RhbGxpbmctbGlnaHRnYm0taW4tcikNCi0gW0NvbWVudGFyaW9zIGVuIEdpdGh1YiBkZSBpbnN0YWxhY2nDs24gZGUgTGlnaHRHQk0uXShodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L0xpZ2h0R0JNL2lzc3Vlcy85MTIpIA0KLSBbR3XDrWEgZW4gY29yZWFubyBkZSBpbnN0YWxhY2nDs24gZGUgTGlnaHRHQk0uXShodHRwczovL3BzeXN0YXQudGlzdG9yeS5jb20vNzcpIA0KLSBbUGxhdGFmb3JtYXMgcGFyYSBtYWNoaW5lIGxlYXJuaW5nIE1pY3Jvc29mdC5dKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2F6dXJlL21hY2hpbmUtbGVhcm5pbmcvZGF0YS1zY2llbmNlLXZpcnR1YWwtbWFjaGluZS9kc3ZtLXRvb2xzLWRhdGEtc2NpZW5jZSNsaWdodGdibSkNCi0gW0RvY3VtZW50YWNpw7NuIGBMYXVyYWVgLl0oaHR0cHM6Ly93d3cucmRvY3VtZW50YXRpb24ub3JnL3BhY2thZ2VzL0xhdXJhZS92ZXJzaW9ucy8wLjAuMC45MDAxKQ0KLSBbRG9jdW1lbnRhY2nDs24gYExpZ2h0R0JNc2AuXShodHRwOi8vZGV2ZG9jLm5ldC9iaWdkYXRhL0xpZ2h0R0JNLWRvYy0yLjIuMi9pbmRleC5odG1sKQ0KLSBbKEFydMOtY3VsbykgKkRlZXAgRm9yZXN0Ki5dKGh0dHBzOi8vYXJ4aXYub3JnL3BkZi8xNzAyLjA4ODM1LnBkZikNCi0gWyhBcnTDrWN1bG8gKSAqTGlnaHRHQk06IEEgSGlnaGx5IEVmZmljaWVudCBHcmFkaWVudCBCb29zdGluZyBEZWNpc2lvbiBUcmVlLipdKGh0dHBzOi8vcGFwZXJzLm5pcHMuY2MvcGFwZXIvNjkwNy1saWdodGdibS1hLWhpZ2hseS1lZmZpY2llbnQtZ3JhZGllbnQtYm9vc3RpbmctZGVjaXNpb24tdHJlZS5wZGYpDQotIFsoQXJ0w61jdWxvKSAqWEdCb29zdDogQSBTY2FsYWJsZSBUcmVlIEJvb3N0aW5nIFN5c3RlbSouXShodHRwczovL2FyeGl2Lm9yZy9wZGYvMTYwMy4wMjc1NC5wZGYpDQo=