Estoy trabajando con algunos conjuntos de datos grandes usando el paquete gbm en R. Tanto mi matriz de predicción como mi vector de respuesta son bastante escasos (es decir, la mayoría de las entradas son cero). Esperaba construir árboles de decisión usando un algoritmo que aprovecha esta escasez, como se hizo aquí ). En ese documento, como en mi situación, la mayoría de los elementos tienen solo algunas de las muchas características posibles, por lo que pudieron evitar muchos cálculos desperdiciados al suponer que sus elementos carecían de una característica dada a menos que los datos indiquen explícitamente lo contrario. Mi esperanza es que pueda obtener una aceleración similar usando este tipo de algoritmo (y luego envolviendo un algoritmo de refuerzo para mejorar mi precisión predictiva).
Como no parecían publicar su código, me preguntaba si había paquetes o bibliotecas de código abierto (en cualquier idioma) que estén optimizados para este caso. Idealmente, me gustaría algo que pudiera tomar una matriz dispersa directamente del Matrix
paquete de R , pero tomaré lo que pueda obtener.
He mirado alrededor y parece que este tipo de cosas debería estar ahí afuera:
Los químicos parecen encontrarse mucho con este problema (el artículo que relacioné anteriormente trataba sobre aprender a encontrar nuevos compuestos de drogas), pero las implementaciones que pude encontrar fueron patentadas o altamente especializadas para el análisis químico. Sin embargo, es posible que uno de ellos sea rediseñado.
La clasificación de documentos también parece ser un área donde es útil aprender de espacios de características dispersos (la mayoría de los documentos no contienen la mayoría de las palabras). Por ejemplo, hay una referencia oblicua a una implementación escasa de C4.5 (un algoritmo tipo CART) en este documento , pero no hay código.
De acuerdo con la lista de correo , WEKA puede aceptar datos escasos, pero a diferencia del método en el documento que he vinculado anteriormente, WEKA no está optimizado para aprovecharlo en términos de evitar ciclos de CPU desperdiciados.
¡Gracias por adelantado!
glmnet
y e1071::svm
tanto apoyo escasa Matrix
objetos. GAMboost
y GLMboost
(del paquete GAMboost
) puede también.