Я працюю з кількома великими наборами даних, використовуючи пакет gbm в Р. І моя матриця передбачення, і мій вектор відповідей досить рідкісні (тобто більшість записів дорівнює нулю). Я сподівався побудувати дерева рішень за допомогою алгоритму, який використовує цю обмеженість, як це було зроблено тут ). У цій роботі, як і в моїй ситуації, більшість предметів мають лише декілька з багатьох можливих особливостей, тому вони змогли уникнути безлічі марних обчислень, вважаючи, що в їхніх пунктах не вистачає даної функції, якщо в даних прямо не сказано інше. Я сподіваюсь, що я міг би отримати подібне прискорення, використовуючи такий алгоритм (а потім обернувши прискорений алгоритм навколо нього, щоб поліпшити мою точність прогнозування).
Оскільки вони, схоже, не публікували свій код, мені було цікаво, чи існують пакети чи бібліотеки з відкритим кодом (будь-якою мовою), оптимізовані для цього випадку. В ідеалі я хотів би щось, що могло б взяти розріджену матрицю прямо з Matrix
пакета R , але я візьму те, що можу отримати.
Я озирнувся, і здається, що щось таке повинно бути там:
Хіміки, здається, стикаються з цим питанням (стаття, яку я зв'язав вище, стосувалася того, щоб навчитися знаходити нові лікарські сполуки), але реалізація, яку я міг знайти, була або власною, або високоспеціалізованою для хімічного аналізу. Можливо, одна з них може бути переглянута.
Класифікація документів також здається областю, в якій корисне навчання з розріджених просторів функцій (більшість документів не містять більшості слів). Наприклад, є похила посилання на розріджені реалізації C4.5 (віз-подібний алгоритм) в цій статті , але без коду.
Відповідно до списку розсилки , WEKA може приймати розріджені дані, але на відміну від методу в роботі, яку я згадав вище, WEKA не оптимізована для того, щоб реально скористатись цим з точки зору уникнення марних циклів процесора.
Спасибі заздалегідь!
glmnet
і e1071::svm
обидва підтримують розріджені Matrix
об'єкти. GAMboost
і GLMboost
(з пакета GAMboost
) може також.