Проекти з відкритим кодом для наукових даних, щоб зробити свій внесок


15

Внесок у проекти з відкритим кодом, як правило, є хорошим способом отримати практику для новачків та спробувати нову область для досвідчених науковців та аналітиків.

У які проекти ви сприяєте? Укажіть, будь ласка, якесь вступне посилання на Github.


2
Ознайомтеся з ELKI (на Github, Java; див. Також Вікіпедію). Я дуже використовую це, оскільки це найповніший проект кластеризації та виявлення аномалії; і, як правило, швидше, ніж R, теж.
Мав QUIT - Anonymous-Mousse

Відповіді:


15

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

Деякі справді хороші проекти з відкритим кодом з відкритим кодом, де навіть початківці можуть зробити свій внесок:

  • Sklearn : Завжди розвиваючись швидкими темпами, спільнота sklearn завжди відкрита для нових розробників та розробників.
  • H2O : H2O - це ще один швидко зростаючий науково-дослідний проект, який працює над масштабним рішенням машинного навчання та глибокого навчання.
  • Перейти : Дорожня карта та ресурси з інформацією про відкриті джерела. Насправді не технічний проект, але дуже корисний для абсолютних початківців та починаючих аналітиків.
  • Pylearn2 : ще один швидко зростаючий проект машинного навчання та глибокого навчання.
  • Vowpal Wabbit : Проект Vowpal Wabbit (VW) - це швидка позапрофільна система навчання, що фінансується Microsoft Research та (раніше) Yahoo! Дослідження.

Ось обговорення Quora щодо таких проектів та ще деякі, які не згадуються у цій відповіді.

Ось ще одна приємна дискусія про проекти з відкритим кодом Data Science та ML в Python.


2
Я підтверджую, що зробити склеарн дуже просто, просто відкрийте запит на потяг, і все.
Олексій Григорьов

Pylearn2 більше не активний. Керас, лазань та блоки - кращий варіант для внеску.
SHASHANK GUPTA

6

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

Він відповідає вашим потребам, якщо ви готові розвиватись у Java 8, якщо ви хочете робити собі будь-який інструмент і якщо хочете експериментувати. Є лише два принципи, які я виконую. Перший - написати щось лише тоді, коли це потрібно . Це тому, що я твердо вірю, що лише тоді, коли вам потрібен інструмент, ви також знаєте, чого ви дійсно хочете від нього з точки зору випуску, продуктивності, інформації. Другий принцип полягає в тому, що ви залежите лише від jdk, якщо вам щось потрібно, ви напишете це . Я можу погодитися, що я старомодний, але ви можете налаштувати будь-яку функцію для своїх цілей таким чином.

Якщо мені не дозволяють це робити як відповідач, знову ж таки, будь ласка, повідомте мене про це. Хоча, оскільки це ініціатива з відкритим кодом, повернути щось людям без прибуткового проекту, я не бачу причини, чому я не зміг би цього зробити.


2
+1 Я думаю, що це чудовий проект для когось, хто може зробити свій внесок. Дякую, що поділився. Принаймні, я не думаю, що це не має значення :)
Dawny33

1
Чи обмінювали ви свої зусилля з одним із багатьох інших подібних проектів? Скажіть, ELKI, Weka, JSAT, Smile, Hubminer, ... Ви орієнтувались? Швидким поглядом я побачив кілька конструкцій, які мені виглядають дуже дорого (хоча, мабуть, не так погано, як R).
Є QUIT - Anonymous-Mousse

Моя мета полягала в тому, щоб мати приємний програміст набір інструментів, продуктивність не була метою. Але я почав це переоцінювати. Що стосується інших проектів: через юридичну справу я не можу взяти на себе зобов’язання розповсюджувати матеріали, і я можу внести свій внесок лише у проекти, що мають певний тип ліцензій на відкритий код. У будь-якому випадку, дякую за те, що ви подивилися, я був би дуже радий, якщо ви зможете дати мені більш детальну інформацію стосовно згаданих вами конструкцій. Я думаю, що ваш час обмежений, і я не наважуюся на повну дискусію
rapaio

1
ELKI - це AGPL-3. Він не поширюється, але має деякі низькорівневі оптимізації для високої "локальної" продуктивності (ще немає Java 8). JSAT, Smile, Hubminer - всі вони з відкритим кодом, ймовірно, в основному апачі, не розповсюджуються і не настільки оптимізовані, якщо не помиляюся (я в основному використовую ELKI).
Має QUIT - Anonymous-Mousse

4

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


4

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

Через модульну архітектуру легко вносити лише невеликі модулі, як-от функція однієї дистанції або алгоритм.

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

Реалізуючи все в одному інструменті, ми отримуємо набагато порівнянніші результати. Якщо ви використовуєте R для тестування, ви зазвичай порівнюєте яблука та апельсини. k-означає в самому R - це насправді стара програма Fortran, і це дуже швидко. k-означає в R, але в пакеті "flexclust" на 100 разів повільніше, оскільки він записаний у реальному коді R. Тому не довіряйте еталону в R ... також, модулі R, як правило, несумісні, тому ви часто не можете використовувати відстань A від модулів A з алгоритмом B від модуля B. В ELKI ми ​​намагаємося поділити стільки коду, скільки можливо в різних реалізаціях для зменшення таких артефактів (звичайно, ніколи не вдасться мати 100% справедливий орієнтир - завжди є можливість для оптимізації), а також дозволити комбінувати модулі легко.

Ви можете почати з чогось невеликого, наприклад, k-означає Hartigan & Wong, а потім продовжити сферичні k-засоби (які призначені для розріджених даних, де можуть стати необхідними різні оптимізації продуктивності) та продовжувати додавати кращу підтримку категоричних даних; або додавання функціональності індексації.

Я також хотів би побачити кращий інтерфейс для ELKI , але це головне зусилля.


4

Якщо вам подобаються інструменти візуального програмування між платформами, Orange - це варіант. Нещодавно перейшовши на Python 3, вони ще не перенесли всі віджети. Це приведення стека PyData (NumPy, SciPy, SciKit Learn, ...) до Python 3, PyQt, PyQtGraph, і це GPL'd на GitHub .

Помаранчевий екран

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.