Введение в MLDemos
MLDemos — это инструмент визуализации с открытым исходным кодом для алгоритмов машинного обучения, который помогает изучать и понимать, как работают несколько алгоритмов и как их параметры влияют и изменяют классификацию, регрессию, кластеризацию, уменьшение размерности, динамические системы и обучение с подкреплением (вознаграждения), максимизацию и другие. проблемы.
MLDemos имеет открытый исходный код и бесплатен для личного и академического использования.
Доктор Базилио Норис вСоздание лаборатории алгоритмов обучения и систем, программа была разработана при поддержке и поддержке следующих субъектов, организаций и групп.
Установить
Бинарный пакет:
Минимальные требования: XP SP3
Минимальные требования: Снежный барс
Минимальные требования: ядро 2.6.X Спасибо Филиппу Го (Веб-сайт)
законность
Эти пакеты содержат бинарные версии многих библиотек с открытым исходным кодом. Я включаю их сюда, зная, что это может быть не полностью совместимо со стратегией распространения каждой соответствующей библиотеки. Я постараюсь связаться и получить необходимое разрешение от соответствующих сторон, насколько это возможно. В то же время я добросовестно распространяю это программное обеспечение, и моя цель — дать людям возможность изучить и использовать различные методы, реализованные здесь. В разделе «Благодарности» ниже приведен список участников.
Вы можете использовать это программное обеспечение в личных и образовательных целях, но не в коммерческих целях. Программное обеспечение может распространяться, если вы предоставите ссылку на эту страницу. Затем эта страница всегда будет ссылаться на последнюю версию программного обеспечения, поэтому вы можете использовать эту версию здесь.
Исходный код:
Исходный код MLDemos можно получить напрямую через git или общедоступные репозитории (получите последнюю версиюdevelфилиал)
git clone git://gitorious.org/mldemos/mldemos.git -b devel
source backup(0.3.0)
необходимые условия
Этот код требует Qt (5.10) и (частично) OpenCV (3.1) и Boost (1.47). Более ранние версии этих библиотек также могут работать нормально, но вы также можете использовать более новые версии. Обязательно скорректируйте пути include и lib, чтобы они указывали на правильные каталоги.
Программное обеспечение было скомпилировано и протестировано на Mac OSX High Sierra, Windows 10, Gentoo, Ubuntu и Kubuntu 10.04 с использованием QtCreator 2.1 и 2.6.
- Windows
Чтобы скомпилировать MLDemos в Windows, вам понадобится MinGW (обычно QGSDK поставляется с установленным MinGW)
- Debian
Профессор Барак А. Перлмуттер создал пакет Debian, который скоро будет доступен. Тем временем вы можете построить его со следующими инструкциями:
git clone git://github.com/barak/mldemos.git
cd mldemos
git checkout debian
dpkg-checkbuilddeps
fakeroot debian/rules binary
sudo dpkg --install ../mldemos_*.deb
Примечание. OpenCV 2.4 нельзя использовать напрямую (только 2.1), для этого потребуется собрать OpenCV2.4. Это требуется только для использования MLP и Boosting. Это два важных алгоритма, так что вам лучше попробовать:
git clone git://github.com/barak/opencv.git
cd opencv
git checkout master
dpkg-checkbuilddeps
fakeroot debian/rules binary
sudo dpkg --install ../*opencv*.deb
Еще раз большое спасибо, Барак!
** Известные ошибки**
- WINDOWS: при очистке холста на 3D-дисплее остается занятой часть памяти, которая может накапливаться за несколько завершений (часть ошибки памяти только в Windows)
- LINUX (пакет CDE) не работает загрузка и сохранение внешних файлов
- Приблизительная классификация ближайших соседей KNN создает странные пустые области с некоторыми метриками на некоторых машинах.
- Сохранение в пакете Linux CDE не работает
- Изменение размера холста при рисовании бонусной карты не приведет к обновлению базовых данных (избегайте этого).
- В Boosting изменение данных не приводит к пересчету учащегося, что может привести к плохим результатам, если данные значительно изменяют границы.
новая функция
v0.5.0
Новые функции визуализации и набора данных
- Добавлена 3D-визуализация и классификация образцов, регрессия и максимизация результатов.
- Добавлена панель визуализации с отдельными графиками, корреляциями, плотностью и т. д.
- Добавлены инструменты редактирования для перетаскивания/намагничивания данных, изменения классов, увеличения или уменьшения размера наборов данных.
- Добавлено категориальное измерение (с нечисловым измерением индекса)
- Добавлена панель редактирования набора данных для замены, удаления и переименования значений измерения, класса или категории.
- ** Несколько исправлений ошибок для отображения, импорта/экспорта ** данных, производительности классификации
Новые алгоритмы и методы
-
Добавлена панель поиска по сетке для пакетного тестирования диапазонов значений до двух параметров одновременно.
-
Добавлена мультиклассовая классификация «один против всех» для алгоритмов, не являющихся мультиклассовыми.
-
Теперь тренируйтесь и тестируйте новые данные (тренируйтесь на одном наборе данных, тестируйте на другом)
-
Добавлено автоматическое определение корреляции SVM для ядер RBF (спасибо Ashwini Shukla!)
-
Добавлена растущая иерархическая самоорганизующаяся карта (исходный код Майкла Диттенбаха)
-
Добавлена случайная классификация леса.
-
Добавить LDA в качестве классификатора (в дополнение к проектору)
-
Добавлены параметры сохранения/загрузки модели для GMM и SVM.
Скриншот программного обеспечения
Графический интерфейс MLDemosРазличные визуализации и параметрические эффектыПримеры графиков, визуализация плотностей и корреляцийКлассификация SVM + RBFРазреженная регрессия гауссовского процессаДинамическая система предотвращения препятствий (SEDS)Контуры ядра PCAОбучение с подкреплением на основе генетического алгоритма (максимизация вознагражденияПоддержка векторной регрессии с ядром RBFКлассификация векторных машин релевантности на основе ядра RBFУлучшение слабого ученика со случайным цикломМультиклассовая SVM с ядром RBFКластеризация с помощью гауссовских смешанных моделейВсе более иерархические самоорганизующиеся картыалгоритм
Выполнение
Классификация
- Методы опорных векторов (SVM) (C, nu, Pegasos)
- Корреляционная векторная машина (RVM)
- Модель гауссовой смеси (GMM)
- Многослойный персептрон + обратное распространение
- Нежный AdaBoost + Наивный Байес
- Приблизительные K-ближайшие соседи (KNN)
- Классификация гауссовых процессов (GP)
- случайный лес
возвращение
- Регрессия опорных векторов (SVR)
- Корреляционная векторная регрессия (RVR)
- Гауссовская смешанная регрессия (GMR)
- MLP + BackProp
- Приблизительный КНН
- Регрессия гауссовского процесса (GPR)
- Разреженный оптимизированный гауссовский процесс (SOGP)
- Сглаживание локально взвешенной диаграммы рассеяния (LOWESS)
- Локально взвешенная проекционная регрессия (LWPR)
система питания
- GMM + GMR
- LWPR
- SVR
- SEDS
- SOGP (медленно!)
- MLP
- KNN
- Расширенный SVM (ASVM)
кластеризация
- K-средние
- Soft K-Means
- Kernel K-Means
- K-Means++
- GMM
- One Class SVM
- FLAME
- DBSCAN
предсказывать
- Анализ главных компонентов (PCA)
- Ядро PCA
- Анализ независимых компонентов (ICA)
- Канонический корреляционный анализ (CCA)
- Линейный дискриминантный анализ (LDA)
- Линейный дискриминант Фишера
- EigenFaces в 2D (с использованием PCA)
Максимизация вознаграждения (обучение с подкреплением)
- случайный поиск
- случайная прогулка
- PoWER
- Генетический алгоритм (ГА)
- Алгоритм оптимизации роя частиц
- фильтр твердых частиц
- Пончик (алгоритм неконтролируемого обнаружения аномалий для сезонных KPI на основе вариационных автоэнкодеров)
- Безградиентный метод (nlopt)
способствовать
Если вы разрабатываете новый алгоритм, который вписывается в структуру MLDemos, и хотели бы интегрировать его в программное обеспечение, свяжитесь с нами (см. информацию ниже) и опишите тип помощи, необходимой для реализации плагина MLDemos.
Спасибо
Эта программа не существовала бы, если бы многие люди не приложили много усилий для реализации различных алгоритмов, объединенных здесь в одну программу.
- Florent D'Hallouin (GMM + GMR) - LASA
- Dan Grollman (SOGP) - LASA
- Mohammad Khansari (SEDS + DSAvoid) - LASA
- Ashwini Shukla (ASVM, ARD Kernels) - LASA
- Stephane Magnenat (ESMLR) - website
- Chih-Chung Chang and Chih-Jen Lin (libSVM) - website
- David Mount and Sunik Arya (ANN library) - website
- Davis E. King (DLIB) - website
- Stefan Klanke and Sethu Vijayakumar (LWPR) - website
- Robert Davies (Newmat) - website
- JF Cardoso (ICA) - website
- Steven G. Johnson (NLOpt) - website
- The WillowGarage crowd (OpenCV) - website
- Trolltech/Nokia/Digia (Qt) - website
- The authors of several of the icons - website
- Аспиранты (Жюльен Эберле, Пьер-Антуан Зондаг, Гийом де Шамбрие, Клас Кронандер, Рено Ришаре, Рафаэль Ульман), посещающие курс ML 2012 EPFL Кроме того, сама программа была бы значительно менее производительной без поддержки LASA и работы команды разработчиков: Кристофа Паккола, Николя Зоммера и Отпала Виттоза.
Спасибо также тем, кто не вносил код, а вносил непосредственный вклад: Оде Биллар, одному из лучших боссов, на которого можно было надеяться, Франсуа Флере за серию плодотворных дискуссий и курсы AML 2010 и 2011 за терпеливое проведение первого теста. водить машину.
быстрый старт
запустить программное обеспечение Нарисуйте образец, щелкнув левой или правой кнопкой мыши. Щелкните левой кнопкой мыши, чтобы сгенерировать образец уровня 0. Щелкните правой кнопкой мыши образец выбранного класса на панели инструментов сборки (по умолчанию: 1). Выберите значок параметров отображения Это позволит отображать информацию о модели, карты достоверности/вероятности и скрывать исходные выборки. Колесо мыши позволит вам увеличивать и уменьшать масштаб Alt + перетаскивание позволит вам панорамировать пространство
- Выберите значок параметров алгоритма
- Выберите значок алгоритма, чтобы открыть соответствующую панель параметров.
- Нажмите кнопку «Классифицировать», чтобы запустить алгоритм на текущих данных.
Импорт данных
В MLDemos есть три разных способа генерировать данные: вручную рисовать образцы, проецировать данные изображения через PCA (через плагин PCAFaces) или загружать внешние данные. Вы можете перетаскивать в интерфейс значения, разделенные запятыми, или другие таблицы значений на основе текстовых файлов. В этом случае появится диалоговое окно «Загрузка данных», позволяющее выбрать, какие столбцы или строки должны быть загружены, интерпретированы как метки классов или заголовки и т. д.
В качестве альтернативы собственный формат данных, используемый программным обеспечением, основан на кодировке ascii и включает в себя:
- количество выборок, за которыми следует размерность #
- Для каждого образца строка содержит
- Примеры значений, разделенных пробелами (с плавающей запятой, по одному для каждого измерения)
- индекс класса выборки (целое число 0 ... 255)
- Значение флага для завершения строки (целое число 0-3) (еще не используется)
Простой пример
4 3
0.10 0.11 0.12 0 0
0.14 0.91 0.11 0 0
0.43 0.74 0.41 1 0
0.28 0.34 0.33 1 0
Он предоставляет 4 образца 3D, два из класса 0 и 1 из класса 1. (Есть ли проблема с исходным текстом?)
Когда файл сохраняется из MLDemos, программное обеспечение добавляет текущие параметры алгоритма (при условии, что алгоритм выбран), которые можно использовать в демонстрационных целях. Если такой информации нет, выбираются параметры алгоритма по умолчанию.
Ручное построение некоторых образцов или импорт стандартного набора данных и сохранение его из MLDemos должно дать вам множество примеров синтаксиса файла.
Веб-сайт:mldemos.b4silio.com/