Вот народ обсуждает проблему поиска ошибок в научном софте.
http://pyre.third-bit.com/blog/archives/1420.html
И действительно, тема важная и сложная.
суббота, 8 марта 2008 г.
вторник, 22 января 2008 г.
Сравнение библиотек для машинного обучения.
Поставлена задача из области классификации текста.
Искали фреймворк+библиотеку для экспериментов.
Главные условия:
-наличие svm
-очень желательно интерфейс на Python
- как выяснилось одно из самых критичных требований, поддержка sparse формата. (так как для обработки текстов используются пространства признаков огромных размеров)
Есть две очень уважаемые библиотеки в которых реализован svm:
libsvm
svmlight
К сожалению не рискну их сравнивать. И та и другая стоят внимания, кстати хотелось бы увидеть обзор плюсов и минусов обоих.
Но мы решили не останавливаться на низкоуровневых интерфейсах и решили насладиться удобством питона. У libsvm есть родная поддержка python. Но мы почему-то до сих пор не воспользовались этим. Вместо этого мы решили опробовать две библиотеки
Orange и PyML. В обоих библиотеках svm реализован на основе libsvm.
Оранж это большой проект, судя по описанию на первой странице сайта, предназначенный для data mining. Есть всяческие графические оболочки. Помимо svm, множество других классификаторов, различные алгоритмы feature selection. Короче говоря, как раз то что нужно, но... Но нет поддержки sparse файлов. Что делает библиотеку абсолютно непригодной для text processing. А жаль.
Теперь PyML. В качестве svm используеться libsvm. Также написана своя реализация алгоритма svm.(не знаю не пробовал). Есть оригинальный feature selection (Recursive feature elimination), который послужил нам неплохую службу.
К сожалению много неудобств, омрачающих использование библиотеки. Прежде всего, неудобная документация, очень часто в документации было то что не было в коде и наоборот.
Другая проблема - это установка PyML. Под windows мне это сделать не удалось, о чем впрочем предостерегал создатель библиотеки. Но под линукс, не получилось тоже. Я правда недолго мучился, но характерно. Поставили под cygwin. Короче говоря библиотека хорошая, но очень уж сырая. Сейчас я немного жалею, что так много потратили время на эти библиотеки, уж лучше сразу использовать исходные низкоуровневые, а скриптами пользоваться для управления.
Так что поиск идеальной библиотеки по машинному обучению на питоне продолжается. Есть попытки что-то сделать со стороны scipy, но насколько я понял их проект на summer google code завершился ничем. Прям хоть садись и сам пиши.
Искали фреймворк+библиотеку для экспериментов.
Главные условия:
-наличие svm
-очень желательно интерфейс на Python
- как выяснилось одно из самых критичных требований, поддержка sparse формата. (так как для обработки текстов используются пространства признаков огромных размеров)
Есть две очень уважаемые библиотеки в которых реализован svm:
libsvm
svmlight
К сожалению не рискну их сравнивать. И та и другая стоят внимания, кстати хотелось бы увидеть обзор плюсов и минусов обоих.
Но мы решили не останавливаться на низкоуровневых интерфейсах и решили насладиться удобством питона. У libsvm есть родная поддержка python. Но мы почему-то до сих пор не воспользовались этим. Вместо этого мы решили опробовать две библиотеки
Orange и PyML. В обоих библиотеках svm реализован на основе libsvm.
Оранж это большой проект, судя по описанию на первой странице сайта, предназначенный для data mining. Есть всяческие графические оболочки. Помимо svm, множество других классификаторов, различные алгоритмы feature selection. Короче говоря, как раз то что нужно, но... Но нет поддержки sparse файлов. Что делает библиотеку абсолютно непригодной для text processing. А жаль.
Теперь PyML. В качестве svm используеться libsvm. Также написана своя реализация алгоритма svm.(не знаю не пробовал). Есть оригинальный feature selection (Recursive feature elimination), который послужил нам неплохую службу.
К сожалению много неудобств, омрачающих использование библиотеки. Прежде всего, неудобная документация, очень часто в документации было то что не было в коде и наоборот.
Другая проблема - это установка PyML. Под windows мне это сделать не удалось, о чем впрочем предостерегал создатель библиотеки. Но под линукс, не получилось тоже. Я правда недолго мучился, но характерно. Поставили под cygwin. Короче говоря библиотека хорошая, но очень уж сырая. Сейчас я немного жалею, что так много потратили время на эти библиотеки, уж лучше сразу использовать исходные низкоуровневые, а скриптами пользоваться для управления.
Так что поиск идеальной библиотеки по машинному обучению на питоне продолжается. Есть попытки что-то сделать со стороны scipy, но насколько я понял их проект на summer google code завершился ничем. Прям хоть садись и сам пиши.
Ярлыки:
классификация текстов,
машинное обучение,
libsvm,
Orange,
PyML
Подписаться на:
Сообщения (Atom)