Do udziału w projektach z zakresu nauki danych o otwartym kodzie źródłowym


15

Wkład w projekty open source jest zazwyczaj dobrym sposobem na zdobycie praktyki dla początkujących i wypróbowanie nowego obszaru dla doświadczonych naukowców i analityków danych.

Jakie projekty wnosisz? Podaj link do intro + na Github.


2
Sprawdź ELKI (na github, Java; patrz także Wikipedia). Używam tego bardzo często, ponieważ jest to najbardziej kompletny projekt do grupowania i wykrywania anomalii; i zwykle także znacznie szybciej niż R.
Ma ZAKOŃCZENIE - Anony-Mousse,

Odpowiedzi:


15

Projekt Julia to projekt, do którego aktywnie się przyczyniam, w tym zaawansowane biblioteki komputerowe i biblioteki XGBoost. Tak więc zdecydowanie mogę ręczyć za jego utrzymanie i jakość społeczności.

Niektóre naprawdę dobre projekty nauki o otwartym kodzie źródłowym, w których mogą wnieść swój wkład nawet początkujący:

  • Sklearn : Zawsze rozwijając się w szybkim tempie, społeczność sklearn jest zawsze otwarta na nowych programistów i współpracowników.
  • H2O : H2O to kolejne szybko rozwijające się projekty związane z nauką danych, pracujące nad skalowalnymi rozwiązaniami uczenia maszynowego i głębokiego uczenia.
  • Udać się : Mapa drogowa i zasoby dotyczące nauki o otwartym kodzie źródłowym. Nie jest to projekt techniczny, ale jest bardzo pomocny dla początkujących i początkujących analityków.
  • Pylearn2 : Kolejny szybko rozwijający się projekt uczenia maszynowego i uczenia głębokiego.
  • Vowpal Wabbit : Projekt Vowpal Wabbit (VW) jest szybkim pozaszkolnym systemem nauki sponsorowanym przez Microsoft Research i (wcześniej) Yahoo! Badania.

Tutaj jest dyskusja Quora na temat takich projektów i kilka innych, które nie zostały wymienione w tej odpowiedzi.

Oto kolejna miła dyskusja na temat projektów Open Source Data Science i ML w Pythonie.


2
Potwierdzam - bardzo łatwo jest zaangażować się w naukę, wystarczy otworzyć żądanie ściągnięcia i to wszystko.
Alexey Grigorev

Pylearn2 nie jest już aktywny. Keras, lasagne i bloki to lepsza opcja na wkład.
SHASHANK GUPTA

6

Jest ich wiele dostępnych. Nie wiem, czy wolno mi to zrobić (proszę dać mi znać, jeśli jest źle), ale rozwijam jeden i ma już ponad 2 lata na git hub (tak naprawdę zaczął się na rok przed githubem). Projekt nazywa rapaio, jest git huba tutaj i ostatnio zacząłem pisać podręcznik dla niego (niektórzy z moich przyjaciół zapytał mnie o tym). Podręcznik można znaleźć tutaj .

Pasuje do twoich potrzeb, jeśli chcesz rozwijać się w Javie 8, jeśli lubisz robić dowolne narzędzia i chcesz eksperymentować. Egzekwuję tylko dwie zasady. Pierwszym z nich jest napisanie czegoś tylko wtedy, gdy jest to potrzebne . Jest tak, ponieważ głęboko wierzę, że tylko wtedy, gdy potrzebujesz narzędzia, wiesz również, czego naprawdę od niego potrzebujesz pod względem wydajności, wydajności i informacji. Drugą zasadą jest to, że polegasz tylko na jdk, jeśli potrzebujesz czegoś, napiszesz to . Zgadzam się, że jestem staromodny, ale w ten sposób możesz dostosować dowolną funkcję do swoich celów.

Jeśli nie wolno mi tego zrobić jako odpowiedzi, proszę dać mi znać. Chociaż, ponieważ jest to inicjatywa typu open source, daj coś ludziom z projektu bez zysku, nie widzę powodu, dla którego nie mogłem tego zrobić.


2
+1 Myślę, że to świetny projekt dla kogoś, kto może wnieść swój wkład. Dziękuję za podzielenie się. Przynajmniej nie uważam, że to nie ma znaczenia :)
Dawny33

1
Czy rozważałeś połączenie swoich wysiłków z jednym z wielu podobnych projektów? Powiedz, ELKI, Weka, JSAT, Smile, Hubminer, ... czy przeprowadziłeś testy? Po szybkim spojrzeniu zobaczyłem kilka konstrukcji, które wyglądają dla mnie bardzo drogo (choć prawdopodobnie nie tak źle jak R).
Ma ZAKOŃCZENIE - Anony-Mousse

Moim celem było posiadanie ładnego zestawu narzędzi przyjaznych programistom, wydajność nie była celem. Ale zacząłem to oceniać ponownie. W odniesieniu do innych projektów: ze względów prawnych nie mogę zaangażować się w dystrybucję rzeczy i mogę wnosić wkład tylko w projekty z pewnego rodzaju licencjami typu open source. W każdym razie, dziękuję za spojrzenie, byłbym bardzo szczęśliwy, gdybyś mógł podać mi więcej szczegółów dotyczących wspomnianych konstrukcji. Oczekuję, że twój czas jest ograniczony i nie odważę się na pełną dyskusję
rapaio

1
ELKI to AGPL-3. Nie jest dystrybuowany, ale ma pewne optymalizacje niskiego poziomu dla wysokiej wydajności „lokalnej” (jeszcze Java 8). JSAT, Smile, Hubminer - wszystkie z nich są open source, prawdopodobnie głównie apache, nie dystrybuowane i nie tak zoptymalizowane, jeśli się nie mylę (używam głównie ELKI).
Ma ZAKOŃCZENIE - Anony-Mousse


4

ELKI (także na GitHub ) to projekt typu open source do eksploracji danych i analizy danych. Jest wyjątkowy pod względem modułowej architektury: możesz łączyć algorytmy, funkcje odległości i indeksy przyspieszenia z bardzo niewielkimi ograniczeniami (oczywiście algorytmów, które nie używają odległości, nie można łączyć z odległościami). Nie jest to najłatwiejszy kod ze względu na wydajność. W przypadku eksploracji danych należy zachować ostrożność, jeśli chodzi o pamięć - korzystanie z niej ArrayList<Integer>jest niemożliwe, jeśli chcesz uzyskać skalowalność.

Ze względu na modułową architekturę łatwo jest dodać tylko małe moduły, takie jak pojedyncza funkcja odległości lub algorytm.

Prowadzimy listę pomysłów na projekty eksploracji danych , z grubsza pogrupowanych według trudności. Większość projektów dotyczy implementacji jakiegoś wariantu algorytmu. ELKI ma na celu umożliwienie badań porównawczych algorytmów, dlatego staramy się dopuszczać dowolne kombinacje i obejmować również warianty algorytmów. Na przykład z k-średnich mamy nie tylko algorytm Lloyds, ale 10 wariantów ogólnego motywu k-średnich. Ponad 220 artykułów zostało (przynajmniej częściowo) ponownie wdrożonych w ELKI.

Dzięki wdrożeniu wszystkiego w tym samym narzędziu uzyskujemy znacznie bardziej porównywalne wyniki. Jeśli używasz R do porównywania, zwykle porównujesz jabłka i pomarańcze. k-średnich w samym R jest w rzeczywistości starym programem Fortrana i jest bardzo szybki. k-oznacza w R, ale w pakiecie „flexclust” jest 100 razy wolniejszy, ponieważ jest napisany w prawdziwym kodzie R. Więc nie ufaj testowi porównawczemu w R ... również, moduły R są zwykle niekompatybilne, więc często nie możesz użyć odległości A od modułów A z algorytmem B od modułu B. W ELKI staramy się udostępnić tyle kodu, ile możliwe we wszystkich implementacjach w celu ograniczenia takich artefaktów (oczywiście nigdy nie będzie możliwe uzyskanie w 100% uczciwego testu porównawczego - zawsze jest miejsce na optymalizację), ale także umożliwienie łatwego łączenia modułów.

Możesz zacząć od czegoś małego, takiego jak wariant k-średnich Hartigan i Wong, a następnie przejść do sferycznych wartości k-średnich (co jest przeznaczone dla rzadkich danych, w których konieczne mogą być różne optymalizacje wydajności) i dalej dodawać lepszą obsługę danych kategorycznych; lub dodanie funkcji indeksowania.

Chciałbym również zobaczyć lepszy interfejs użytkownika dla ELKI , ale jest to duży wysiłek.


4

Jeśli ktoś lubi wieloplatformowe narzędzia do programowania wizualnego, Orange jest opcją. Niedawno przenieśli się do Python 3, ale nie zostały jeszcze przeniesione wszystkie widżety. Wprowadza stos PyData (NumPy, SciPy, SciKit Learn, ...) do Python 3, PyQt, PyQtGraph i jest GPL na GitHub .

Pomarańczowy zrzut ekranu

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.