Внесок у проекти з відкритим кодом, як правило, є хорошим способом отримати практику для новачків та спробувати нову область для досвідчених науковців та аналітиків.
У які проекти ви сприяєте? Укажіть, будь ласка, якесь вступне посилання на Github.
Внесок у проекти з відкритим кодом, як правило, є хорошим способом отримати практику для новачків та спробувати нову область для досвідчених науковців та аналітиків.
У які проекти ви сприяєте? Укажіть, будь ласка, якесь вступне посилання на Github.
Відповіді:
Проект Юлія є той , який я активно сприяти, в тому числі передових обчислювальних і бібліотек XGBoost. Отже, я точно можу поручитися за його підтримку та якість громади.
Деякі справді хороші проекти з відкритим кодом з відкритим кодом, де навіть початківці можуть зробити свій внесок:
Ось обговорення Quora щодо таких проектів та ще деякі, які не згадуються у цій відповіді.
Ось ще одна приємна дискусія про проекти з відкритим кодом Data Science та ML в Python.
Їх в наявності багато. Я не знаю, чи мені це дозволяють (будь ласка, повідомте мені, якщо це неправильно), але я розробляю його, і він вже більше 2 років на git hub (він фактично почався за рік до github). Проект називається rapaio, знаходиться на git hub тут, і нещодавно я почав писати посібник по ньому (деякі мої друзі запитали мене про це). Посібник можна знайти тут .
Він відповідає вашим потребам, якщо ви готові розвиватись у Java 8, якщо ви хочете робити собі будь-який інструмент і якщо хочете експериментувати. Є лише два принципи, які я виконую. Перший - написати щось лише тоді, коли це потрібно . Це тому, що я твердо вірю, що лише тоді, коли вам потрібен інструмент, ви також знаєте, чого ви дійсно хочете від нього з точки зору випуску, продуктивності, інформації. Другий принцип полягає в тому, що ви залежите лише від jdk, якщо вам щось потрібно, ви напишете це . Я можу погодитися, що я старомодний, але ви можете налаштувати будь-яку функцію для своїх цілей таким чином.
Якщо мені не дозволяють це робити як відповідач, знову ж таки, будь ласка, повідомте мене про це. Хоча, оскільки це ініціатива з відкритим кодом, повернути щось людям без прибуткового проекту, я не бачу причини, чому я не зміг би цього зробити.
Перевірте цей проект на github: https://github.com/josephmisiti/awesome-machine-learning . Він містить вичерпний перелік проектів з відкритим кодом, згрупованих за мовою, з деякими короткими описами. Я думаю, ви можете знайти там деякі з них, які відповідають вашим потребам.
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 , але це головне зусилля.