Étudier les algorithmes d'apprentissage automatique: profondeur de la compréhension par rapport au nombre d'algorithmes


13

Récemment, j'ai été initié au domaine de la science des données (cela fait environ 6 mois), et j'ai commencé le voyage avec Machine Learning Course par Andrew Ng et un poste qui a commencé à travailler sur la spécialisation en science des données par JHU.

Sur le plan des applications pratiques, j'ai travaillé sur la construction d'un modèle prédictif qui prédirait l'attrition. Jusqu'à présent, j'ai utilisé glm, bayesglm, rf dans le but d'apprendre et d'appliquer ces méthodes, mais je trouve beaucoup de lacunes dans ma compréhension de ces algorithmes.

Mon dilemme de base est:

Que je devrais me concentrer davantage sur l'apprentissage des subtilités de quelques algorithmes ou devrais-je utiliser l'approche consistant à en connaître beaucoup au fur et à mesure et autant que nécessaire?

Veuillez me guider dans la bonne direction, peut-être en suggérant des livres ou des articles ou tout ce que vous pensez pourrait aider.

Je vous serais reconnaissant de bien vouloir me répondre en proposant de guider quelqu'un qui vient de débuter sa carrière dans le domaine de la Data Science et qui souhaite être une personne résolvant des problèmes pratiques pour le monde des affaires.

Je lirais (autant que possible) les ressources (livres, articles) suggérées dans cet article et fournirais un retour personnel sur les avantages et les inconvénients de la même manière à en faire un article utile pour les personnes qui rencontrent une question similaire à l'avenir, et je pense que ce serait formidable si les gens suggérant ces livres pouvaient faire de même.

Réponses:


9

Je recommanderais de vous limiter à quelques algorithmes éprouvés et fiables. Je ne recommanderais pas Éléments d'apprentissage statistique (comme premier livre). C'est trop théorique, destiné aux étudiants diplômés, avec des exercices demandant comment prouver X ou Y ... Je pense que l' ISL est plus approprié, avec des conseils plus pratiques (en tout cas les deux livres sont gratuits en téléchargement pdf).

Outre les statistiques, je m'assurerais que vous êtes à l'aise avec la conception expérimentale / les tests AB et la Business Intelligence / Visualisation.


J'apprécierais si vous pouviez suggérer des algorithmes à ne pas manquer, ou mieux dire qu'ils sont les plus utiles pour résoudre des problèmes commerciaux pratiques. Si possible, veuillez mentionner les meilleures façons de les apprendre (livres particuliers, articles d'auto-assistance ou peuvent être des essais et des erreurs)

2
Je dirais à peu près tous les algos en ISL: régression linéaire, régression logistique, méthodes basées sur les arbres, SVM; Regroupement et réduction des dimensions, par exemple PCA. Parcourez le livre et regardez le cours en ligne correspondant ( online.stanford.edu/course/statistical-learning-winter-2014 - peut-être sur youtube?).
seanv507

Great Resource, bon d'avoir un livre et des vidéos sur le même par les auteurs eux-mêmes.Merci beaucoup pour le lien, n'était pas au courant de cela.
Vinay Tiwari

Je suis désolé, mais c'est un conseil horrible . Un data scientist ne doit jamais s'appuyer sur quelques algorithmes. Vous devez vous fier à vos propres compétences en matière de données et d'analyse et il n'y a pas deux problèmes de données identiques. Certains seront résolus avec X, un autre avec Y. Il n'est tout simplement pas raisonnable de s'attendre à ce que l'univers de données se comporte selon vos quelques algorithmes. Soyez curieux, flexible, bien informé et utilisez le bon outil pour le travail, pas seulement ceux que vous connaissez.
I_Play_With_Data

5

On peut dire que quelqu'un se qualifiant lui-même de scientifique des données devrait en savoir plus sur les subtilités des algorithmes qu'il utilise - par exemple, ce qui affecte le taux de convergence de l'algorithme de notation de Fisher dans GLM - qu'un statisticien commun ou de jardin - qui pourrait se contenter de savoir que le une solution de probabilité maximale sera trouvée (peut-être après avoir fait une tasse de café). Dans tous les cas, il est important de comprendre les concepts généraux de la statistique et de l'apprentissage automatique en plus de se familiariser avec les méthodes que vous utilisez: la théorie qui les sous-tend, les hypothèses qu'elles font, les vérifications diagnostiques que vous devez effectuer, comment interpréter les résultats. Évitez d'être cette parodie .

Vous aimeriez probablement lire Hastie et al. (2009), Les éléments de l'apprentissage statistique .


Je vais sûrement le lire! J'ai vraiment aimé la dernière ligne ... je pense que l'envie et parfois la pression pour obtenir les résultats le plus tôt possible conduisent souvent à de telles parodies. Et il est tout aussi important d'éviter le contraire de cela où l'on va si profondément dans l'apprentissage qu'il devient inutile pour les problèmes du monde réel. tout en grandissant / apprenant, il est parfois plus important de savoir ce qu'il ne faut pas faire, merci beaucoup pour les conseils, j'espère voir plus de connaissances qui pourraient m'éclairer et éclairer d'autres personnes sur un voyage similaire.

"ce qui affecte le taux de convergence de l'algorithme de notation de Fisher dans GLM" - je suppose que vous avez perdu 99% des Data Scientists ici.

@Momo: Eh bien, "data scientist" est l'un de ces termes mal connus qui a à peine gagné en monnaie avant de commencer à être dévalué.
Scortchi

2

Eh bien, je dirais que connaître les subtilités de 1 ou 2 algorithmes en détail (comme le fonctionnement interne de leurs paramètres) est certainement mieux que de savoir comment en exécuter un tas.

Je travaille dans la zone Analytics depuis environ 11 ans et je suis Data Scientist depuis 2,5 ans et je parle d'expérience. D'un autre côté, vous devriez certainement être conscient d'autres choses (algorithmes plus récents comme le deep learning, SVM, XGboost, etc.) qui pourraient être plus applicables à votre problème actuel.

Je pense que le cours du Dr Andrew Ng aborde pas mal de détails sur certains algorithmes et c'est un bon début. Comme d'autres l'ont souligné, http://statweb.stanford.edu/~tibs/ElemStatLearn/ est un bon livre et il contient des vidéos.

Ceci est mon opinion personnelle, les algorithmes que vous ne devriez pas manquer sont: (Connaissez-les en détail):

1) Régression linéaire multiple 2) Régression logistique 3) Techniques courantes de réduction de dimensionnalité comme l'ACP 4) Regroupement des moyennes K 5) Régression non linéaire 6) Méthodes d'optimisation: méthodes de recherche basées sur un gradient, programmation linéaire et optimisation discrète 7) Concepts et algorithmes en ingénierie des caractéristiques 8) Méthodes simples de prévision des séries chronologiques

Plus d'algorithmes ésotériques:

1) Forêts aléatoires 2) SVM 3) apprentissage en profondeur 4) Autres méthodes de réduction de dimensionnalité comme LDA 5) Autres méthodes basées sur le noyau 6) Algorithmes génétiques 7) XgBoost 8) Régression dynamique 9) Méthodes GARCH / ARCH 10) Modélisation d'équations structurelles 11) Encadré méthodes Jenkins dans la prévision chronologique 12) Théorie de l'information: gain d'information, gain mutuel, etc.


0

J'étais dans une situation similaire. J'ai commencé avec chaque algorithme ici (et en détail).

entrez la description de l'image ici

Cependant, j'ai vite découvert que le monde universitaire de la machine / du deep learning évolue très rapidement et propose toujours des algorithmes plus rapides / à la pointe de la technologie qui vont beaucoup plus loin que les algorithmes traditionnels dans de nombreuses applications du monde réel. . Ainsi, il est toujours préférable d'être mis à jour avec les dernières tendances. Je suggère (comme je le fais normalement moi-même) de prendre un abonnement à un bon fil d'actualité (comme Medium) ou à un journal de recherche de pointe et de le suivre. Plusieurs algorithmes étonnants proviennent de documents de recherche abordant un problème particulier (probablement similaire au vôtre).

Le fait est que, pour être un bon data-scientist (ou un ingénieur ML), vous avez besoin d'un mélange de profondeur et de largeur. Personnellement, je trouve utile de connaître beaucoup d'algorithmes à leur surface (simplement ce qu'ils font, quand sont-ils utilisés, pour et contre). Je reviens vers eux quand je ressens ) qu'ils pourraient m'aider à résoudre un problème particulier. Je les ai lus en détail et voir s'ils sont bien adaptés. Ils le pourraient ou non. Mais penser aux détails est essentiel pour vous assurer de ne pas manquer une approche incroyable de votre problème en raison du manque de compréhension de cette approche. Par exemple, une fois que je travaillais sur quelque chose qui nécessitait la détection d'objets (très simple cependant). J'ai lu quelque part sur R-CNN, Fast-CNN, YOLO. Je me suis immédiatement tourné vers eux pour voir s'ils convenaient bien. Ce jour-là, je les ai connus plus en détail.

Que je devrais me concentrer davantage sur l'apprentissage des subtilités de quelques algorithmes ou devrais-je utiliser l'approche consistant à en connaître beaucoup au fur et à mesure et autant que nécessaire?

Apprendre les subtilités est incroyable. Cependant, le monde évolue à un rythme très rapide. Il pourrait y avoir un nouvel algorithme qui surpasse celui que vous avez appris avec beaucoup de détails. Il est donc temps d'éliminer cette utilisation et de voir si la nouvelle vous fait plus de bien.

Apprenez des choses en cas de besoin. Et si nécessaire, apprenez-les en détail. Vous devriez pouvoir appliquer des choses si vous pensez qu'elles peuvent probablement fonctionner. Et cette perspicacité vient de la connaissance.

Bonne chance.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.