Какой библиотекой машинного обучения пользоваться [закрытый]

Я ищу библиотеку, которая, идеально, имеет следующие функции:

  • реализует иерархическую кластеризацию многомерных данных (идеально на similiarity или матрице расстояния)
  • методы опорных векторов реализаций
  • находится в C++
  • несколько документируется (этот, кажется, является самым твердым),

Я хотел бы, чтобы это было в C++, поскольку я являюсь самым довольным тем языком, но я буду также использовать любой другой язык, если библиотека будет стоить того. Я погуглил и нашел некоторых, но у меня действительно нет времени для попытки их всех, таким образом, я хочу, слышат то, что другие люди имели для событий. Только ответьте, есть ли у Вас некоторый опыт с библиотекой, Вы рекомендуете.

P.S.: Я мог также пользоваться различными библиотеками для кластеризации и SVM.

33
задан skaffman 30 May 2010 в 15:19
поделиться

5 ответов

Хорошо, для полноты картины я напишу, что у меня получилось в итоге. Сейчас я использую scipy-cluster для кластеризации. Это самая универсальная реализация, которую я нашел на данный момент. Думаю, что для части SVM я буду использовать libSVM (у него теперь есть интерфейс Python). Я перехожу на Python, потому что не удалось найти подходящей реализации иерархической кластеризации на C++ (библиотека C Clustering Library специализирована для микрочипов и не поддерживает многомерные данные).

5
ответ дан 27 November 2019 в 18:30
поделиться

WEKA ( http://www.cs.waikato.ac.nz/ml/weka/ ) - отличная библиотека машинного обучения с открытым исходным кодом, подходящая для большинства ваших требования кроме C ++ - он написан на Java. Он очень хорошо документирован, реализует поддержку векторных машин и кластеризацию, и у меня был очень хороший опыт работы с ним.

10
ответ дан 27 November 2019 в 18:30
поделиться

Общие библиотеки машинного обучения:

Эти две похожи на Weka. Однако они отличаются эффективностью.

1.Shark (LGPL)

https://github.com/Shark-ML/Shark/

2.Waffles (LGPL)

http://waffles.sourceforge.net/

SVM и другие линейные классификаторы:

1.LibSVM (BSD style)

2.LibLinear (BSD style)

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Все они на C++.

10
ответ дан 27 November 2019 в 18:30
поделиться

Есть только несколько библиотек ML, которые я использовал достаточно, чтобы мне было удобно их рекомендовать; dlib ml - определенно одна из них.

Sourceforge download here; и bleeding-edge check-out:

hg clone http://hg.code.sf.net/p/dclib/code dclib-code

Оригинальный создатель и нынешний сопровождающий библиотеки - Davis King.

Ваш список пожеланий относительно соответствующих возможностей dlib:

  • хорошая документация: Для бесплатных библиотек с открытым исходным кодом, предназначенных для относительно небольшой группы пользователей/разработчиков, это, пожалуй, лучший вариант; помимо обычной документации, доработанной за пятилетнюю историю развития, есть часто обновляемый Intro to dlib, (мало посещаемый) форум; и большой набор отличных примеров (включая по крайней мере один для SVM).

  • C++: 100% на C++, насколько я знаю.

  • Алгоритм опорно-векторной машины: ага; на самом деле, модули SVM были в центре внимания последних обновлений этой библиотеки.

  • Иерархическая кластеризация алгоритм: не из коробки; есть однако, есть упакованный код для k-means clustering. Очевидно, что результаты каждого метода очень разные, но расчет метрики сходства и последующего рекурсивный/итеративный шаг разделения являются лежат в основе обеих - другими словами, это вычислительный механизм для иерархической кластеризации присутствует. Чтобы адаптировать существующий модуль кластеризации для HC, потребуется больше, чем пару строк кода, но это также не является серьезной задачей, учитывая, что вы работаете почти на уровне представления данных.

dlib ml имеет несколько дополнительных преимуществ. Это зрелая библиотека (сейчас это версия 17.x, версия 1.x была выпущена где-то в конце 2005 года, я полагаю), но при этом она продолжает активно развиваться, о чем свидетельствуют журналы репозитория (последнее обновление, 17.27, было 17 мая 2010 года) и последний коммит (23 мая 2010 года). Кроме того, он включает в себя довольно много других методов ML (например, байесовские сети, ядерные методы и т.д.). И в-третьих, dllib ml имеет отличные "вспомогательные" библиотеки для матричных вычислений и оптимизации - и то, и другое является фундаментальными строительными блоками многих методов ML.

В исходниках я заметил, что dlib ml лицензируется под BSL (Boost?), что является лицензией с открытым исходным кодом, хотя я больше ничего не знаю об этом типе лицензии.

16
ответ дан 27 November 2019 в 18:30
поделиться

Это не C++, но вы рассматриваете возможность использования R. В частности, посмотрите на the machine learning view on CRAN, где представлены многие из перечисленных библиотек, включая Weka и libsvm.

4
ответ дан 27 November 2019 в 18:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: