En découvrant l'apprentissage automatique, je vois différentes techniques intéressantes telles que:
- régler automatiquement les algorithmes avec des techniques telles que
grid search
, - obtenir des résultats plus précis grâce à la combinaison de différents algorithmes du même "type", c'est-à-dire
boosting
, - obtenir des résultats plus précis grâce à la combinaison de différents algorithmes (mais pas du même type d'algorithmes), c'est-à-dire
stacking
, - et probablement beaucoup plus que je dois encore découvrir ...
Ma question est la suivante: il y a toutes ces pièces. Mais est-il possible de les assembler pour créer un algorithme qui prend en entrée des données nettoyées et génère de bons résultats en tirant le meilleur parti de toutes les techniques? (Bien sûr, ce sera probablement moins efficace qu'un scientifique des données professionnel, mais il sera meilleur que moi!) Si oui, avez-vous des exemples de codes ou connaissez-vous des cadres qui peuvent le faire?
EDIT: Après quelques réponses, il semble qu'un rétrécissement doit être fait. Prenons un exemple, nous avons une colonne avec des données catégorielles, appelons-la y
et nous voulons la prédire à partir de données numériques X
qui sont soit des mannequins soit de vraies données numériques (hauteur, température). Nous supposons que le nettoyage a été effectué précédemment. Existe-t-il un algorithme qui peut prendre ces données et produire une prédiction? (en testant plusieurs algorithmes, en les réglant, en les boostant, etc.) Si oui, est-ce efficace sur le plan du calcul (les calculs sont-ils effectués dans un délai raisonnable si nous comparons à un algorithme normal), et avez-vous un exemple de code?
la source
auto.arima
(de laforecast
bibliothèque) peuvent être meilleures que les humains - Rob Hyndman l'a mentionné à plusieurs reprises dans ses présentations. Il existe donc des domaines où certaines sortes d '«apprentissage automatique» sont appliquées avec succès.Réponses:
Si vous savez à l'avance quel type de données vous alimenterez ("ce sont des ventes mensuelles de GPC, avec des prix et des marqueurs de promotion, et je veux une prévision ponctuelle"), afin que vous puissiez régler votre configuration à l'avance, ce sera probablement possible et déjà fait, voir divers "systèmes experts" pour certaines tâches spécifiques.
Si vous cherchez quelque chose qui peut prendre n'importe quel type de données et en faire "quelque chose d'utile" ("ah, ici je suis censé reconnaître l'écriture manuscrite et sortir les codes postaux, et là je devrais faire la détection de fraude, et ce fichier d'entrée évidemment est une tâche de notation de crédit "), non, je ne pense pas que cela se produira dans longtemps.
Désolé pour une réponse basée sur une opinion à ce qui pourrait bien être fermé comme une question basée sur une opinion.
MODIFIER pour répondre à la question modifiée:
Cela ressemble à quelque chose que les forêts aléatoires sont en fait assez bonnes. Là encore, un algorithme "à usage général" comme les RF ne battra probablement jamais un algorithme qui a été réglé sur un type particulier de connu à l'avance, par exemple, les chiffres manuscrits ou les risques de défaut de crédit.y
la source
Ce que vous décrivez existe déjà dans une certaine mesure, par exemple dans AutoWEKA , et fait l'objet d'une nouvelle recherche active (par exemple, des défis comme AutoML de Chalearn ).
Ceci est généralement considéré dans le sous-domaine de l'optimisation hyperparamétrique. Des progiciels comme Optunity , Hyperopt et ParamILS peuvent être utilisés pour optimiser automatiquement les hyperparamètres pour une approche donnée et choisir quelle approche se trouve être la meilleure. Cela dit, de tels problèmes d'optimisation ne sont pas triviaux et il faut généralement beaucoup de temps pour obtenir automatiquement le meilleur modèle (ou à proximité).
Vous pouvez trouver un exemple d'utilisation d'Optunity pour déterminer automatiquement le meilleur algorithme d'apprentissage et optimiser ses hyperparamètres à http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html
la source
Les progrès dans le réglage des paramètres hyper et les modèles d'ensemble prennent beaucoup de «l'art» de la construction de modèles. Cependant, il y a deux aspects importants de la construction de modèles que le réglage d'hyperparamètres et les ensembles ne traitent pas et qui vous empêcheront de trouver le meilleur modèle possible.
Premièrement, certains types d'algorithmes sont meilleurs pour modéliser certains types de données. Par exemple, s'il y a des interactions entre vos variables, un modèle additif ne les trouvera pas, mais un arbre de décision le fera. Savoir comment les modèles se comportent sur différents ensembles de données et choisir le bon peut nécessiter des connaissances sur le domaine pour trouver le meilleur algorithme de modélisation.
Deuxièmement, l'ingénierie des fonctionnalités et l'extraction des fonctionnalités sont le véritable «art» de la construction de modèles. Votre question suppose que l'ensemble de données est déjà préparé. Mais ce que vous ne devriez pas supposer, c'est que l'ensemble de données est la meilleure représentation possible de ce que vous essayez de modéliser. C'est toujours une question ouverte. Dans de nombreux cas, lorsque l'ensemble de données est complexe, vous pouvez concevoir des fonctionnalités toute la journée, mais vous risquez de jeter de plus en plus de bruit dans l'algorithme. Pour savoir quelles fonctionnalités ajouter, vous devez savoir quelles fonctionnalités ont un sens d'un point de vue statistique et lesquelles ont un sens du point de vue de l'expert du domaine.
Pour ces deux raisons, je conclus que non, vous ne pourrez pas trouver un algorithme qui trouve automatiquement le meilleur modèle possible . C'est aussi pourquoi je suis sceptique quant aux éditeurs de logiciels qui proposent des outils qui remplaceront le besoin de scientifiques des données.
Cependant, si vous réduisez votre ambition de trouver le meilleur modèle à partir d'un ensemble fixe de modèles, avec des paramètres hyper optimaux, où `` meilleur '' est défini comme la précision prédictive la plus élevée sur un ensemble d'entraînement, alors oui, c'est possible.
Découvrez le
caret
packageR
comme exemple de réglage automatique des modèles.caret
utilise la recherche de grille, qui a des défauts, et il ne construit qu'un modèle à la fois. Cependant, il existe des fonctions pour comparer les modèles et des wrappers pratiques pour une longue liste de modèles provenant de nombreuxR
packages différents .la source
Cela dépend de qui vous demandez.
J'ai récemment entendu un discours de Scott Golder à Context Relevant . Leur produit est essentiellement un robot de sélection de fonctionnalités et de modèles. Le modèle sous-jacent de base est la régression logistique, mais le système utilise essentiellement l'apprentissage automatique pour trouver la bonne combinaison de sélection d'entités, de réduction de dimension, de régularisation, etc. pour générer des prédictions précises. Ce fut une conférence très impressionnante, et les détails sont tous très exclusifs. Apparemment, leurs clients comprennent de grandes sociétés financières et le système peut gérer des ensembles de données arbitrairement massifs.
Au moins quelques personnes semblent donc penser que la science automatisée des données est déjà là, du moins pour certaines applications. Et certaines de ces personnes (les clients de Context Relevant) paient apparemment par le nez pour y avoir accès.
la source
Non ce n'est pas un rêve. Nous avons implémenté cela (la combinaison de toutes les techniques que vous avez mentionnées, y compris les ensembles empilés) dans la bibliothèque d'apprentissage automatique H2O . Vous pouvez en savoir plus à ce sujet et trouver des exemples de code en R et Python ici .
la source