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.
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.
Odpowiedzi:
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:
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.
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ć.
Sprawdź ten projekt na github: https://github.com/josephmisiti/awesome-machine-learning . Zawiera kompleksową listę projektów typu open source pogrupowanych według języka, z kilkoma krótkimi opisami. Myślę, że możesz tam znaleźć niektóre z nich, które spełniają twoje potrzeby.
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.