Il contributo a progetti open source è in genere un buon modo per ottenere un po 'di pratica per i neofiti e provare una nuova area per esperti data scientist e analisti.
A quali progetti contribuisci? Fornisci alcuni link introduttivi + su Github.
Il contributo a progetti open source è in genere un buon modo per ottenere un po 'di pratica per i neofiti e provare una nuova area per esperti data scientist e analisti.
A quali progetti contribuisci? Fornisci alcuni link introduttivi + su Github.
Risposte:
Il progetto Julia è uno a cui contribuisco attivamente, comprese le librerie di elaborazione avanzata e XGBoost. Quindi, posso sicuramente garantire per la sua manutenzione e la qualità della comunità.
Alcuni progetti di scienza dei dati open source davvero validi in cui anche i principianti possono contribuire sono:
Ecco una discussione di Quora su tali progetti e alcuni altri che non sono menzionati in questa risposta.
Ecco un'altra bella discussione su Data Science open source e progetti ML in Python.
Ce ne sono molti disponibili. Non so se mi è permesso farlo (per favore fatemi sapere se è sbagliato), ma ne sviluppo uno e ha già oltre 2 anni su git hub (in realtà è iniziato un anno prima di github). Il progetto si chiama rapaio, è su git hub qui e recentemente ho iniziato a scrivere un manuale per questo (alcuni dei miei amici me lo hanno chiesto). Il manuale è disponibile qui .
Si adatta alle tue esigenze se sei disposto a sviluppare in Java 8, se ti piace fare qualsiasi strumento e se ti piace sperimentare. Ci sono solo due principi che impongo. Il primo è scrivere qualcosa solo quando ne hai bisogno . Questo perché credo fermamente che solo quando hai bisogno di uno strumento sai anche cosa vuoi veramente da esso in termini di output, prestazioni, informazioni. Il secondo principio è che dipendi solo da jdk, se hai bisogno di qualcosa lo scriverai . Sono d'accordo sul fatto che sono vecchio stile, ma puoi personalizzare qualsiasi funzione per il tuo scopo in questo modo.
Se non mi è permesso farlo come risposta, per favore fatemelo sapere. Anche se, poiché si tratta di un'iniziativa open source, restituire qualcosa alle persone senza un tipo di progetto senza scopo di lucro , non vedo la ragione per cui non potrei farlo.
Controlla questo progetto su github: https://github.com/josephmisiti/awesome-machine-learning . Contiene un elenco completo di progetti open source raggruppati per lingua, con alcune brevi descrizioni. Penso che puoi trovarne alcuni che soddisfino le tue esigenze.
ELKI (anche su GitHub ) è un progetto open source di data mining e data science. È unico rispetto alla sua architettura modulare: è possibile combinare algoritmi, funzioni di distanza e indici per l'accelerazione con pochissime limitazioni (ovviamente, gli algoritmi che non usano le distanze non possono essere combinati con le distanze). Non è il codice più semplice a causa dell'efficienza. Per il data mining, è necessario prestare attenzione alla memoria: l'utilizzo ArrayList<Integer>
è un no-go se si desidera la scalabilità.
Grazie all'architettura modulare, è facile contribuire solo con piccoli moduli, come una singola funzione a distanza o un algoritmo.
Manteniamo un elenco di idee per i progetti di data mining , raggruppate per difficoltà. La maggior parte dei progetti prevede l'implementazione di alcune varianti di un algoritmo. ELKI mira a consentire studi comparativi di algoritmi, quindi cerchiamo di consentire qualsiasi combinazione e copriamo anche varianti di algoritmi. Ad esempio con k-mean, non abbiamo solo l'algoritmo di Lloyds, ma 10 varianti del tema generale di k-mean. Oltre 220 articoli sono stati (almeno parzialmente) reimplementati in ELKI.
Implementando tutto nello stesso strumento, otteniamo risultati molto più comparabili. Se usi R per il benchmarking, di solito stai confrontando mele e arance. k-significa in R stesso è in realtà un vecchio programma Fortran, e molto veloce. k-significa in R ma nel pacchetto "flexclust" è 100x più lento, perché è scritto in codice R reale. Quindi non fidarti di un benchmark in R ... inoltre, i moduli R tendono ad essere incompatibili, quindi spesso non puoi usare la distanza A dai moduli A con l'algoritmo B dal modulo B. in ELKI proviamo a condividere tanto codice quanto possibile attraverso le implementazioni per ridurre tali artefatti (ovviamente, non sarà mai possibile avere un benchmark equo al 100% - c'è sempre spazio per l'ottimizzazione), ma anche per consentire una facile combinazione di moduli.
Potresti iniziare con qualcosa di piccolo come la variante k-medie di Hartigan & Wong, e poi continuare con k-medie sferiche (che sono pensate per dati sparsi, dove potrebbero essere necessarie diverse ottimizzazioni delle prestazioni) e continuare ad aggiungere un migliore supporto per i dati categorici; o aggiungendo funzionalità di indicizzazione.
Mi piacerebbe anche vedere un'interfaccia utente migliore per ELKI , ma questo è uno sforzo notevole.
Se uno ama gli strumenti di programmazione visiva multipiattaforma, Orange è un'opzione. Dopo essersi trasferiti di recente su Python 3, non è stato ancora eseguito il porting di tutti i widget. Sta portando lo stack PyData (NumPy, SciPy, SciKit Learn, ...) su Python 3, PyQt, PyQtGraph ed è GPL su GitHub .