Studiare algoritmi di machine learning: profondità di comprensione vs. numero di algoritmi


13

Recentemente sono stato introdotto nel campo della Data Science (sono passati circa 6 mesi), e ho iniziato il viaggio con Machine Learning Course di Andrew Ng e post che hanno iniziato a lavorare sulla Data Science Specialization di JHU.

Sul fronte delle applicazioni pratiche, ho lavorato alla costruzione di un modello predittivo che prevedesse l'attrito. Finora ho usato glm, bayesglm, rf nel tentativo di imparare e applicare questi metodi, ma trovo molto spazio nella mia comprensione di questi algoritmi.

Il mio dilemma di base è:

Se dovrei concentrarmi maggiormente sull'apprendimento delle complessità di alcuni algoritmi o dovrei usare l'approccio di conoscerne molti come e quando e quanto necessario?

Per favore guidami nella giusta direzione, magari suggerendo libri o articoli o qualsiasi cosa che pensi possa aiutare.

Le sarei grato se rispondessi con l'idea di guidare qualcuno che ha appena iniziato la sua carriera nel campo della scienza dei dati e vuole essere una persona che risolve questioni pratiche per il mondo degli affari.

Leggerei (quante più possibili) risorse (libri, articoli) suggerite in questo post e fornirei un feedback personale sui pro e contro degli stessi in modo da renderlo un post utile per le persone che incontrano una domanda simile in futuro, e penso che sarebbe fantastico se le persone che suggeriscono questi libri possono fare lo stesso.

Risposte:


9

Consiglierei di limitarti ad alcuni algoritmi provati e affidabili. Non consiglierei Elementi di apprendimento statistico (come primo libro). È troppo teorico, rivolto a studenti laureati, con esercizi che chiedono come dimostrare X o Y ... Penso che ISL sia più appropriato, con consigli più pratici (in ogni caso entrambi i libri sono gratuiti come download pdf).

Oltre alle statistiche, mi assicurerei che tu ti senta a tuo agio con la progettazione sperimentale / i test AB e con la Business Intelligence / Visualizzazione.


Ti sarei grato se potessi suggerire alcuni algoritmi che non dovresti perdere, o meglio dire che sono i più utili per risolvere problemi pratici di business. Se possibile, menziona i modi migliori per impararli (libri particolari, articoli di auto-aiuto o possono essere tentativi ed errori)

2
Direi praticamente tutti gli algos dell'ISL: regressione lineare, regressione logistica, metodi basati su alberi, SVM; Clustering e riduzione delle dimensioni, ad esempio PCA. Sfoglia il libro e guarda il corso online corrispondente ( online.stanford.edu/course/statistical-learning-winter-2014 - forse su youtube?).
seanv507,

Ottima risorsa, buona per avere un libro e video sullo stesso degli autori stessi. Grazie mille per il link, non ne ero a conoscenza.
Vinay Tiwari,

Mi dispiace, ma questo è un consiglio terribile . Uno scienziato di dati non dovrebbe mai fare affidamento su alcuni algoritmi. È necessario fare affidamento sulle proprie capacità di dati e analisi e non esistono due problemi di dati uguali. Alcuni saranno risolti con X, un altro con Y. Semplicemente non è ragionevole aspettarsi che l'universo dei dati si comporti con i tuoi pochi algoritmi. Sii curioso, sii flessibile, sii informato e usa lo strumento giusto per il lavoro, non solo quelli che ti capita di conoscere.
I_Play_With_Data

5

Probabilmente qualcuno che si definisce uno scienziato di dati dovrebbe sapere di più sulla complessità degli algoritmi che utilizza - ad esempio ciò che influenza il tasso di convergenza dell'algoritmo di valutazione Fisher in GLM - di uno statistico comune o di un giardino - che potrebbe essere contento solo di sapere che il sarà trovata la soluzione di massima verosimiglianza (forse dopo aver fatto una tazza di caffè). In ogni caso, comprendere i concetti generali di statistica e apprendimento automatico è importante oltre alla familiarità con i metodi che usi: la teoria alla base di essi, le ipotesi che fanno, quali controlli diagnostici dovresti eseguire, come interpretare i risultati. Evita di essere questa parodia .

Probabilmente ti piacerebbe leggere Hastie et al. (2009), Gli elementi dell'apprendimento statistico .


Lo leggerò sicuramente! Mi è davvero piaciuta l'ultima riga ... penso che l'impulso e talvolta la pressione per ottenere i risultati al più presto porta spesso a tali Parodie. Ed è altrettanto importante evitare l'opposto di ciò in cui si va così in profondità nell'apprendimento che diventa inutile per le questioni del mondo reale. mentre crescere / apprendere a volte è più importante sapere cosa NON fare, grazie mille per l'orientamento spero di vedere più intuizioni tali da illuminare me e gli altri in un viaggio simile.

"Ciò che influenza il tasso di convergenza dell'algoritmo di valutazione Fisher in GLM" - Immagino che qui tu abbia perso il 99% dei Data Scientist.

@Momo: Beh, "scienziato dei dati" è uno di quei termini sfortunati che ha appena guadagnato valuta prima di iniziare a essere svalutato.
Scortchi - Ripristina Monica il

2

Bene, direi che conoscere la complessità di 1 o 2 algoritmi in dettaglio (come il funzionamento interno dei loro parametri) è decisamente meglio che sapere come eseguirne un mucchio.

Sono stato nell'area Analytics per circa 11 anni e un Data Scientist per 2,5 anni e parlo per esperienza. D'altra parte, dovresti assolutamente essere consapevole di altre cose là fuori (algoritmi più recenti come deep learning, SVM, XGboost ecc.) Che potrebbero essere più applicabili al tuo problema.

Penso che il corso del Dr. Andrew Ng approfondisca alcuni dettagli di alcuni algoritmi ed è un buon inizio. Come altri hanno sottolineato, http://statweb.stanford.edu/~tibs/ElemStatLearn/ è un buon libro e ha dei video da abbinare.

Questa è la mia opinione personale, gli algoritmi che non dovresti perdere sono: (Conosci questi in dettaglio):

1) regressione lineare multipla 2) regressione logistica 3) tecniche comuni di riduzione della dimensionalità come PCA 4) raggruppamento di mezzi K 5) regressione non lineare 6) metodi di ottimizzazione: metodi di ricerca basati sul gradiente, programmazione lineare e ottimizzazione discreta 7) concetti e algoritmi in ingegneria delle funzioni 8) Metodi di previsione di serie temporali semplici

Altri algoritmi esoterici:

1) Random Forests 2) SVM 3) deep learning 4) Altri metodi di riduzione della dimensionalità come LDA 5) Altri metodi basati sul kernel 6) Algoritmi genetici 7) XgBoost 8) regressione dinamica 9) Metodi GARCH / ARCH 10) Modellazione di equazioni strutturali 11) Metodi Box Jenkins nella previsione di serie storiche 12) Teoria dell'informazione: guadagno di informazioni, guadagno reciproco ecc.


0

Ero stato in una situazione simile. Ho iniziato con ogni singolo algoritmo qui (e in grande dettaglio).

inserisci qui la descrizione dell'immagine

Tuttavia, ho presto scoperto che il mondo accademico in machine / deep learning si sta muovendo molto velocemente e sta sempre proponendo algoritmi più veloci / all'avanguardia che fanno molto per superare gli algoritmi tradizionali in molte applicazioni del mondo reale . Quindi, è sempre preferibile essere aggiornato con le ultime tendenze. Suggerisco (come faccio di solito io stesso) di prendere un abbonamento a un buon newsfeed (come Medium) o un fantastico giornale di ricerca all'avanguardia e seguirlo. Molte volte algoritmi sorprendenti provengono da articoli di ricerca che affrontano un problema particolare (probabilmente simile al tuo).

Il punto è che, per essere un buon scienziato di dati (o un ingegnere ML), hai bisogno di un mix di profondità e larghezza. Personalmente trovo utile conoscere molti algoritmi sulla loro superficie (semplicemente cosa fanno, quando sono usati, pro e contro). Torno da loro quando sento ( solo sento ) che potrebbero aiutarmi a risolvere un problema particolare. Li ho letti in dettaglio e vedo se sono adatti. Potrebbero, o potrebbero non esserlo. Ma pensare ai dettagli è essenziale per assicurarti di non perdere un approccio straordinario al tuo problema a causa della mancanza di comprensione di tale approccio. Ad esempio, una volta stavo lavorando su qualcosa che richiedeva il rilevamento di oggetti (anche se molto semplice). Ho letto da qualche parte su R-CNN, Fast-CNN, YOLO. Mi sono immediatamente rivolto a loro per vedere se si adattavano bene. Quel giorno li conobbi più in dettaglio.

Se dovrei concentrarmi maggiormente sull'apprendimento delle complessità di alcuni algoritmi o dovrei usare l'approccio di conoscerne molti come e quando e quanto necessario?

Imparare le complessità è sorprendente. Tuttavia, il mondo si muove a un ritmo molto veloce. Potrebbe esserci un nuovo algoritmo che supera quello che hai imparato con grande dettaglio. È tempo, quindi, di svuotare quell'uso e vedere se quello nuovo ti fa più bene.

Impara le cose quando necessario. E quando necessario, imparali in dettaglio. Dovresti essere in grado di applicare le cose se ritieni che possano funzionare. E questa intuizione viene dalla conoscenza.

In bocca al lupo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.