Linfa (итал.) / sap (англ.): жизненная циркулирующая жидкость растения.
Linfa стремится предоставить комплексный инструментарий для создания приложений машинного обучения с использованием Rust.
По духу родственный Python's scikit-learn, он фокусируется на общих задачах предварительной обработки и классических алгоритмах машинного обучения для повседневных задач машинного обучения.
На каком этапе развития находится Linfa? Мы уже учимся?
В настоящее время Linfa предоставляет подпакеты со следующими алгоритмами:
Название | Назначение | Статус | Категория | Примечания |
---|---|---|---|---|
clustering | Кластеризация данных | Протестировано / Бенчмарк | Неконтролируемое обучение | Кластеризация немаркированных данных; содержит K-Means, Gaussian-Mixture-Model, DBSCAN и OPTICS |
kernel | Методы ядра для преобразования данных | Протестировано | Предварительная обработка | Отображает вектор признаков в пространство более высокой размерности |
linear | Линейная регрессия | Протестировано | Частичное соответствие | Содержит обычные наименьшие квадраты (OLS), обобщённые линейные модели (GLM) |
elasticnet | Elastic Net | Протестировано | Контролируемое обучение | Линейная регрессия с ограничениями эластичной сети |
logistic | Логистическая регрессия | Протестировано | Частичное соответствие | Строит двухклассовые модели логистической регрессии |
reduction | Уменьшение размерности | Протестировано | Предварительная обработка | Диффузное отображение и анализ главных компонент (PCA) |
trees | Деревья решений | Протестировано / Бенчмарк | Контролируемое обучение | Линейные деревья решений |
svm | Машины опорных векторов | Протестировано | Контролируемое обучение | Классификация или регрессионный анализ помеченных наборов данных |
hierarchical | Иерархическая кластеризация | Протестировано | Неконтролируемое обучение | Группировка и построение иерархии кластеров |
bayes | Наивный Байес | Протестировано | Контролируемое обучение | Содержит гауссовский наивный байесовский метод |
ica | Независимый компонентный анализ | Протестировано | Неконтролируемое обучение | Содержит реализацию FastICA |
pls | Частичные наименьшие квадраты | Протестировано | Контролируемое обучение | Содержит оценки PLS для уменьшения размерности и регрессии |
tsne | Уменьшение размерности | Протестировано | Неконтролируемое обучение | Содержит точное решение и приближение Барнса-Хьюта t-SNE |
preprocessing | Нормализация & Векторизация | Протестировано / Бенчмарк | Предварительная обработка | Содержит нормализацию данных/обеление и векторизацию подсчёта/tf-idf |
nn | Ближайшие соседи & Расстояния | Протестировано / Бенчмарк | Предварительная обработка | Пространственные структуры индекса и функции расстояния |
ftrl | Следуйте за Регулярным лидером — проксимальный | Протестирован / Бенчмарк | Частичное соответствие | Содержат L1 и L2 регуляризацию. Возможно инкрементное обновление |
Мы верим, что только значительные усилия сообщества могут взрастить, построить и поддерживать экосистему машинного обучения в Rust — другого пути нет. BLAS/Lapack бэкенд
Некоторым алгоритмам требуется внешняя библиотека для выполнения операций линейной алгебры. По умолчанию мы используем реализацию на чистом Rust. Однако вы также можете выбрать внешнюю библиотеку бэкенда BLAS/LAPACK, активировав функцию blas
и функцию, соответствующую вашему бэкенду BLAS. В настоящее время вы можете выбирать между следующими бэкендами BLAS/LAPACK: openblas
, netblas
или intel-mkl
.
Бэкенд | Linux | Windows | macOS |
---|---|---|---|
OpenBLAS | ✔️ | - | - |
Netlib | ✔️ | - | - |
Intel MKL | ✔️ | ✔️ | ✔️ |
Каждый бэкенд BLAS имеет две доступные функции. Функция позволяет вам выбирать между подключением библиотеки BLAS в вашей системе или статической сборкой библиотеки. Например, функциями для бэкенда intel-mkl
являются intel-mkl-static
и intel-mkl-system
.
Пример набора флагов Cargo для включения бэкенда Intel MKL в алгоритме — --features blas,linfa/intel-mkl-system
. Обратите внимание, что функции бэкенда BLAS определены в ящике linfa
и должны указываться только для конечного исполняемого файла.
Двойная лицензия для совместимости с проектом Rust.
Лицензия Apache версии 2.0 http://www.apache.org/licenses/LICENSE-2.0 или лицензия MIT http://opensource.org/licenses/MIT, по вашему выбору. Этот файл нельзя копировать, изменять или распространять иначе, чем в соответствии с этими условиями.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )