Научные проекты с открытым исходным кодом

15

Вклад в проекты с открытым исходным кодом, как правило, является хорошим способом получить некоторую практику для новичков и попробовать новую область для опытных исследователей данных и аналитиков.

Какие проекты вы вносите? Пожалуйста, предоставьте ссылку intro + на Github.

IharS
источник
2
Проверьте ELKI (на github, Java; см. Также Википедию). Я часто этим пользуюсь, потому что это самый полный проект по кластеризации и обнаружению аномалий; и обычно намного быстрее, чем R тоже.
ВЫЙТИ - Anony-Mousse

Ответы:

15

Проект Юлия является тот , который я активно содействовать, в том числе передовых вычислительных и библиотек XGBoost. Таким образом, я могу определенно ручаться за его поддержку и качество сообщества.

Вот некоторые действительно хорошие проекты в области научных данных с открытым исходным кодом, в которые могут внести свой вклад даже новички:

  • Sklearn : Всегда развиваясь быстрыми темпами, сообщество sklearn всегда открыто для новых разработчиков и участников.
  • H2O : H2O - еще один быстрорастущий проект в области данных, работающий над масштабируемым машинным обучением и решениями для глубокого обучения.
  • Go : Открытые исходные данные и дорожная карта. Не совсем технический проект, но очень полезен для начинающих и начинающих аналитиков.
  • Pylearn2 : еще один быстро развивающийся проект машинного обучения и глубокого обучения.
  • Vowpal Wabbit : проект Vowpal Wabbit (VW) представляет собой быструю базовую систему обучения, спонсируемую Microsoft Research и (ранее) Yahoo! Исследование.

Вот Quora обсуждение таких проектов и некоторые другие, которые не упомянуты в этом ответе.

Вот еще одно приятное обсуждение проектов Data Science и ML с открытым исходным кодом на Python.

Dawny33
источник
2
Я подтверждаю - это очень легко выполнить склеарн, просто откройте запрос на включение и все.
Алексей Григорьев
Pylearn2 больше не активен. Керас, лазанья и блоки являются лучшим вариантом для вклада.
ШАШАНК ГУПТА
6

Их много. Я не знаю, разрешено ли мне это делать (пожалуйста, дайте мне знать, если это неправильно), но я разрабатываю его, и он уже более 2 лет работает на git hub (фактически он начался за годы до github). Проект называется rapaio, на мерзавце ступицы здесь и недавно я начал писать руководство для него (некоторые из моих друзей спросили меня об этом). Руководство можно найти здесь .

Это соответствует вашим потребностям, если вы хотите разрабатывать на Java 8, если вы любите делать какие-либо инструменты и если вы любите экспериментировать. Есть только два принципа, которые я соблюдаю. Первый - писать что-то только тогда, когда вам это нужно . Это потому, что я твердо верю, что только когда вам нужен инструмент, вы также знаете, что вы действительно хотите от него с точки зрения производительности, производительности и информации. Второй принцип - вы зависите только от jdk, если вам что-то нужно, вы напишите это . Я могу согласиться с тем, что я старомоден, но вы можете настроить любую функцию для своих целей таким образом.

Если мне не позволено делать это как ответ, снова, пожалуйста, дайте мне знать. Хотя, поскольку это инициатива с открытым исходным кодом, отдавать что-то людям, не имеющим прибыли, я не вижу причин, почему я не смог этого сделать.

rapaio
источник
2
+1 Я думаю, что это отличный проект для кого-то, чтобы внести свой вклад. Спасибо, что поделились. По крайней мере, я не думаю, что это не имеет значения :)
Dawny33
1
Рассматривали ли вы объединить свои усилия с одним из многих других подобных проектов? Скажем, ELKI, Weka, JSAT, Smile, Hubminer, ... вы сравнили? При быстром взгляде я увидел несколько конструкций, которые кажутся мне очень дорогими (хотя, вероятно, не такими плохими, как R).
ВЫЙТИ - Anony-Mousse
Моя цель состояла в том, чтобы иметь хороший набор инструментов, дружественных к программисту, производительность не была целью. Но я начал переоценивать это. Что касается других проектов: из-за юридических вопросов, я не могу взять на себя обязательство распространять материал, и я могу участвовать только в проектах с некоторыми типами лицензий с открытым исходным кодом. В любом случае, спасибо, что посмотрели, я был бы очень рад, если бы вы могли дать мне больше деталей относительно конструкций, которые вы упомянули. Я ожидаю, что ваше время ограничено, и я не смею вести полноценную дискуссию
rapaio
1
ELKI - это AGPL-3. Он не распространяется, но имеет некоторые низкоуровневые оптимизации для высокой «локальной» производительности (пока нет Java 8). JSAT, Smile, Hubminer - все они с открытым исходным кодом, вероятно, в основном apache, не распространяются и не так оптимизированы, если я не ошибаюсь (я в основном использую ELKI).
Выйти - Anony-Mousse
4

Проверьте этот проект на github: https://github.com/josephmisiti/awesome-machine-learning . Он содержит полный список проектов с открытым исходным кодом, сгруппированных по языкам, с некоторыми краткими описаниями. Я думаю, что вы можете найти там некоторые из них, которые отвечают вашим потребностям.

rapaio
источник
4

ELKI (также на GitHub ) - проект с открытым исходным кодом для интеллектуального анализа данных. Он уникален по своей модульной архитектуре: вы можете комбинировать алгоритмы, функции расстояния и индексы для ускорения с очень небольшими ограничениями (конечно, алгоритмы, которые не используют расстояния, нельзя комбинировать с расстояниями). Это не самый простой код из-за эффективности. Для интеллектуального анализа данных вы должны быть осторожны с памятью - использование ArrayList<Integer>не требуется, если вам нужна масштабируемость.

Благодаря модульной архитектуре легко добавлять только небольшие модули, например, одну функцию расстояния или алгоритм.

Мы ведем список идей проектов по интеллектуальному анализу данных , сгруппированных по сложности. Большинство проектов являются реализацией некоторого варианта алгоритма. ELKI стремится разрешить сравнительное изучение алгоритмов, поэтому мы стараемся разрешить любую комбинацию, а также охватить варианты алгоритмов. Например, с помощью k-средних у нас есть не только алгоритм Lloyds, но и 10 вариантов общей темы k-средних. Более 220 статей были (по крайней мере, частично) переизданы в ELKI.

Реализуя все в одном инструменте, мы получаем гораздо более сопоставимые результаты. Если вы используете R для бенчмаркинга, вы обычно сравниваете яблоки и апельсины. k-means в самом R - на самом деле старая программа на Фортране, и очень быстрая. k-означает в R, но в пакете "flexclust" медленнее в 100 раз, потому что оно написано в реальном R-коде. Так что не доверяйте эталонному тесту в R ... также, R-модули, как правило, несовместимы, поэтому вы часто не можете использовать расстояние A от модулей A с алгоритмом B от модуля B. В ELKI мы пытаемся разделить столько кода, сколько В разных реализациях возможно уменьшить количество таких артефактов (конечно, никогда не удастся получить 100% справедливый эталон - всегда есть место для оптимизации), но также можно легко комбинировать модули.

Вы можете начать с чего-то небольшого, такого как вариант k-средних Хартигана и Вонга, а затем перейти к сферическому k-среднему (что предназначено для разреженных данных, где может потребоваться различная оптимизация производительности) и продолжить добавлять улучшенную поддержку категориальных данных; или добавление функции индексирования.

Я также хотел бы увидеть лучший интерфейс для ELKI , но это серьезное усилие.

Эрих Шуберт
источник
4

Если кому-то нравятся кроссплатформенные инструменты визуального программирования, то вам подойдет Orange . Недавно переехав в Python 3, они еще не перенесли все виджеты. Он переносит стек PyData (NumPy, SciPy, SciKit Learn, ...) в Python 3, PyQt, PyQtGraph, и это GPL-код на GitHub .

Оранжевый скриншот

K3 --- СРН
источник