Quels sont les meilleurs packages d'apprentissage automatique dans R? – Apprendre une langue étrangère

La question la plus fréquemment posée par les scientifiques de données potentiels est la suivante: «Quel est le meilleur langage de programmation pour le Machine Learning?» La réponse à cette question entraîne toujours un débat sur le choix de R, Python ou MATLAB pour le Machine Learning. En réalité, personne ne peut répondre à la question de savoir si Python ou R est le meilleur langage pour le Machine Learning. Cependant, le langage de programmation à choisir pour l’apprentissage automatique dépend directement des exigences d’un problème de données donné, des préférences et des préférences du responsable de l’information et du contexte des activités d’apprentissage automatique qu’il souhaite effectuer. Selon une enquête sur les outils préférés de Kaggler, le langage de programmation R open source s’est avéré être le préféré des 543 utilisateurs de Kagglers parmi les 1714 figurant dans la liste de leurs outils de traitement de données.

R est le choix par excellence parmi les professionnels des données qui souhaitent comprendre et explorer des données à l’aide de méthodes et de graphiques statistiques. Il propose plusieurs packages d’apprentissage automatique et des implémentations avancées pour les algorithmes d’apprentissage automatique de premier plan, auxquels chaque spécialiste en informatique doit être familiarisé, afin d’explorer, de modéliser et de prototyper les données fournies. R est une langue open source à laquelle des personnes du monde entier ont contribué. De la collecte de données à la recherche reproductible, en passant par le nettoyage, vous trouverez une boîte noire écrite par quelqu'un d'autre, que vous pouvez directement utiliser dans votre programme. Cette boîte noire est connue sous le nom de package dans R. Un package dans R n'est rien d'autre qu'une collection de codes pré-écrits pouvant être réutilisés.

Selon CRAN, environ 8 341 forfaits sont actuellement disponibles. Outre CRAN, il existe d'autres référentiels qui contribuent à plusieurs packages. La syntaxe simple pour installer l’un de ces packages d’apprentissage automatique est la suivante: install.packages (“Name_Of_R_Package”).

Peu de packages de base sans lesquels votre vie en tant que data scientist sera rude incluent Dplyr, ggplot2, remodeler2 etc. Dans cet article, nous nous concentrerons davantage sur les packages utilisés dans le domaine de l'apprentissage automatique.

  • MICE Package – prend soin de vos valeurs manquantes

    Si les valeurs manquantes sont quelque chose qui vous hante alors MICE Ce forfait est votre véritable ami.

    Lorsque nous sommes confrontés à un problème de valeurs manquantes, nous appliquons généralement des imputations de base, telles que le remplacement par 0, le remplacement par la moyenne, le mode, etc., mais chacune de ces méthodes n’est pas polyvalente et peut entraîner une divergence éventuelle des données.

    MICE package vous aide à imputer les valeurs manquantes à l'aide de plusieurs techniques, en fonction du type de données avec lequel vous travaillez.

    Prenons un exemple sur l’utilisation de MICE Paquet.

        
        
        
        
    ensemble de données 
    

    Image 1

    Jusqu'à présent, nous avons créé une trame de données aléatoire et introduit intentionnellement quelques valeurs manquantes dans les données. Maintenant il est temps de voir MICE au travail et oublier l'inquiétude

                    install.pckages («souris»)
        nécessite (souris)
        dataset2 
    

    Image 3

    Nous avons utilisé les paramètres par défaut de MICE package pour l'exemple, mais vous pouvez lire et modifier les paramètres selon vos besoins.

  • rpart package: Permet de partitionner vos données

    (rpart) package en langage R, est utilisé pour construire des modèles de classification ou de régression en utilisant une procédure en deux étapes et les modèles résultants sont représentés sous la forme d’arbres binaires. La méthode de base pour tracer tout arbre de régression ou de classification en utilisant le rpart forfait est d'appeler le terrain() une fonction. Les résultats pourraient ne pas être jolis en utilisant simplement la base terrain() fonction, il existe donc une alternative, à savoir le prp () fonction puissante et flexible. prp () fonctionner dans rpart.plot Ce paquet est souvent désigné comme le véritable couteau suisse pour tracer des arbres de régression.

    rpart () function permet d’établir une relation entre une variable dépendante et une variable indépendante afin qu’une entreprise puisse comprendre la variance des variables dépendantes en fonction des variables indépendantes. Par exemple, si une entreprise de formation en ligne doit déterminer l'impact de ses promotions (variables dépendantes) sur ses ventes en raison de promotions sur les réseaux sociaux, WOM, journaux, sites de parrainage, etc. rpart package a plusieurs fonctions qui peuvent aider avec ce phénomène d’analyse.

    rpart représente les arbres de partitionnement et de régression récursifs. En utilisant rpart, vous pouvez exécuter la régression ainsi que la classification. Si nous parlons de syntaxe, c'est assez simple.

    rpart (formule, data =, méthode =, control =)

    • où la formule contient la combinaison de variables dépendantes et indépendantes; data est le nom de votre jeu de données, la méthode dépend de l'objectif, c'est-à-dire pour l'arbre de classification, il seraclasse; et le contrôle est spécifique à vos besoins, par exemple, nous voulons une variable de nombre minimum pour diviser un nœud, etc.

    Considérons iris ensemble de données, qui ressemble à –

    Image 4

    En supposant que notre objectif est de prédire les espèces en utilisant un arbre de décision, il peut être atteint par une simple ligne de code

                    rpart_tree 
    

    Voyons à quoi ressemble notre arbre construit:

    Image 6
    
    
    
    

    Ici, vous pouvez voir les divisions de différents nœuds et classes prédites.

    Pour prédire un nouveau jeu de données, vous avez une fonction simple prévoir (nom_arborescence, new_data) qui vous donnera les classes prévues.

  • FÊTE: Partitionnons à nouveau vos données

    Le package PARTY dans R est utilisé pour le partitionnement récursif et reflète le développement continu des méthodes d'ensemble.

    FÊTE est encore un autre paquet pour construire des arbres de décision basés sur l’algorithme d’inférence conditionnelle. ctree () est la fonction principale de FÊTE package qui est largement utilisé, ce qui réduit le temps d’entraînement et les biais.

    Semblable à d'autres fonctions d'analyse prédictive dans R, FÊTE a également une syntaxe similaire, c'est-à-dire

    ctree (formule, données)
    qui construira votre arbre de décision, en prenant en considération les valeurs par défaut de divers arguments qui peuvent être modifiés en fonction des besoins.

    Construisons un arbre en utilisant le même exemple que celui présenté ci-dessus.

                    party_tree 
    

    Voyons à quoi ressemble l'arbre construit -

    Image 8

    Dans ce paquet, vous avez également une fonction de prédiction qui sera utilisée pour prédire les classes pour les nouvelles données entrant.

  • CARET: Entraînement à la classification et à la régression

    Classification et formation à la régression (CARET) est développé dans l’intention de combiner formation et prédiction de modèles. Les scientifiques de données peuvent exécuter plusieurs algorithmes différents pour un problème métier donné à l'aide de l'outil CARET paquet. Les scientifiques de données pourraient ne pas savoir quel est le meilleur algorithme pour un problème donné. CARET Ce package aide à rechercher les paramètres optimaux pour un algorithme avec des expériences contrôlées. La méthode de recherche de grille du caret Le package R recherche des paramètres en combinant diverses méthodes pour estimer les performances d'un modèle donné. Après avoir examiné toutes les combinaisons d’essais, la méthode de recherche sur grille trouve la combinaison qui donne les meilleurs résultats.

    Les scientifiques de données peuvent rationaliser les prix de la construction de modèles prédictifs à l’aide de fonctions intégrées spécialisées pour le fractionnement des données, la sélection des caractéristiques, le prétraitement des données, l’estimation à importance variable, le réglage du modèle par rééchantillonnage et la visualisation des modèles.

    CARET package est l’un des meilleurs packages de R. Les développeurs de ce package ont compris qu’il était difficile de connaître le meilleur algorithme pour le cas donné. Il peut arriver que vous utilisiez un modèle particulier et doutiez de vos données, mais le problème réside dans l'algorithme que vous avez choisi.

    Après l'installation CARET paquet, vous pouvez courir noms (getModelInfo ()) et voyez qu'il existe 217 méthodes possibles pouvant être exécutées dans un seul package.

    Pour construire un modèle prédictif, CARET les usages train() une fonction; La syntaxe de la fonction train ressemble à –

    train (formule, données, méthode)

    Où méthode est le modèle prédictif que vous essayez de construire. Utilisons le jeu de données iris et adaptons un modèle de régression linéaire pour prédire Sépale.Longueur

                    Lm_model 
    

    Image 10

    Le package CARET n’est tout simplement pas destiné à la construction de modèles, mais il prend également en charge le fractionnement de vos données en tests et formations, en transformation, etc.

    En bref, il s’agit du package GoTo dans R - pour tous vos besoins liés à la modélisation prédictive.

  • randomForest: Combinons plusieurs arbres pour construire notre propre forêt

    L'algorithme Random Forest est l'un des algorithmes les plus largement utilisés en matière d'apprentissage automatique. Le package R randomForest est utilisé pour créer un grand nombre d'arbres de décision, puis chaque observation est entrée dans l'arbre de décision. La sortie commune obtenue pour le maximum des observations est considérée comme la sortie finale. Lors de l'utilisation de l'algorithme randomForest, les scientifiques / analystes des données doivent s'assurer que les variables doivent être numériques ou des facteurs. Les facteurs ne peuvent pas avoir plus de 32 niveaux lors de la mise en œuvre de randomForest.

    Comme vous devez savoir que Random Forest prend des échantillons aléatoires de variables ainsi que des observations et construit plusieurs arbres. Ces multiples arbres sont ensuite combinés à la fin et des votes sont pris pour finalement prédire la classe de la variable de réponse.

    Utilisons l’exemple de données iris pour créer une forêt aléatoire à l’aide du paquet randomForest.

    Rf_fit

    Vous exécutez une ligne similaire à d'autres packages et votre forêt aléatoire est prête à être utilisée. Voyons comment fonctionne cette forêt construite.

                    print (Rf_fit)
        importance (Rf_fit)
    

    Image 11

    Vous devrez peut-être jouer avec différents paramètres de contrôle dans randomForest, par exemple, le nombre de variables dans chaque arbre, le nombre d'arbres que vous souhaitez construire, etc. En général, les scientifiques de données exécutent plusieurs itérations et sélectionnent la meilleure combinaison.

  • nnet: Il s’agit de couches cachées

    Il s'agit du package de réseau neuronal le plus utilisé et le plus facile à comprendre, mais il est limité à une seule couche de nœuds. Cependant, plusieurs études ont montré qu’il n’était pas nécessaire d’avoir plus de nœuds car ils ne contribuaient pas à améliorer les performances du modèle mais augmentaient le temps de calcul et la complexité du modèle.

    Ce package ne fournit aucun ensemble spécifique de méthodes pour trouver le nombre de nœuds dans la couche masquée. Ainsi, lorsque les professionnels du Big Data mettent en œuvre nnet, il est toujours conseillé de leur attribuer une valeur comprise entre le nombre de nœuds d’entrée et de sortie. nnet packages fournit une implémentation de l'algorithme Artificial Neural Networks, basé sur la compréhension du fonctionnement du cerveau humain, en fonction des signaux d'entrée et de sortie. Les ANN trouvent d'excellentes applications dans les prévisions pour les compagnies aériennes. En fait, les structures de réseau neuronal fournissent de meilleures prévisions utilisant les fonctions nnet par rapport aux méthodes de prévision traditionnelles telles que le lissage exponentiel, la régression, etc.

    R a plusieurs paquets pour la construction de réseaux de neurones, par exemple, nnet, neuralnet, RSNNS. Utilisons notre iris exemple de données à nouveau (je sais que vous vous ennuyez de iris). Essayons de prédire les espèces en utilisant le nnet maintenant et voir à quoi ça ressemble –

    nnet_model

    Image 12

    Vous pouvez observer 10 couches cachées dans la sortie du réseau de neurones – c'est parce que nous avons donné taille = 10 tout en construisant le réseau de neurones.

    Malheureusement, il n’existe aucun moyen direct de tracer les réseaux de neurones construits, mais de nombreuses fonctions personnalisées ont été ajoutées sur GitHub que vous pouvez utiliser.

    Pour construire le réseau indiqué ci-dessus, nous avons utilisé – https://gist.githubusercontent.com/fawda123/7471137/raw/466c1474d0a505ff044412703516c34f1a4684a5/nnet_plot_update.r

  • e1071: Laissez les vecteurs soutenir votre modèle

    Vous vous demandez si cette valeur indésirable? Pas du tout! C’est un paquet très vital en langage R qui possède des fonctions spécialisées pour la mise en oeuvre de Naïve Bayes (probabilité conditionnelle), SVM, transformations de Fourier, clustering en sac, clustering flou, etc. En fait, la première interface R pour la mise en œuvre de SVM était en e1071 Package R – par exemple, si un informaticien tente de déterminer la probabilité qu'une personne qui achète un iPhone 6S achète également un étui pour iPhone 6S.

    Ce type d’analyse est basé sur la probabilité conditionnelle, de sorte que les scientifiques des données peuvent utiliser e1071 Paquet R qui a des fonctions spécialisées pour la mise en oeuvre du classificateur Naive Bayes.

    Les machines à vecteurs de support sont là pour vous sauver lorsque vous avez un jeu de données non séparable dans les dimensions données et que vous devez promouvoir vos données à des dimensions plus élevées afin de les classer ou de les régresser.

    Support Vector Machine a.k.a SVM utilise les fonctions du noyau (pour optimiser les opérations mathématiques) et maximise la marge entre deux classes.

    Semblable à d'autres fonctions discutées ci-dessus, la syntaxe pour SVM est également similaire:

    svm_model

    Afin de visualiser le SVM classifié, nous devons utiliser terrain() fonctionner avec les données aussi

    plot (svm_model, data = iris[,c(1,2,5)])

    Image 13

    Dans le graphique ci-dessus, nous pouvons clairement voir les limites de décision qui ont été reçues après l'application de SVM sur les données de l'iris.

    Vous devez modifier plusieurs paramètres pour obtenir la meilleure précision, par exemple, noyau, coût, gamma, coefficients, etc.

    Pour obtenir un classificateur de pari utilisant SVM, vous devrez expérimenter plusieurs de ces facteurs. Par exemple, le noyau peut prendre plusieurs valeurs, telles que linéaire, gaussienne, cosinus, etc.

  • KernLab: astuce du noyau bien emballée

    Kernlab tire parti du modèle objet S4 en langage R. Les informaticiens peuvent ainsi utiliser des algorithmes d'apprentissage automatique basés sur le noyau. Kernlab a des implémentations pour SVM, l'analyse des caractéristiques du noyau, les primitives de produit scalaire, l'algorithme de classement, les processus gaussiens et un algorithme de classification spectrale. Les méthodes d'apprentissage automatique basées sur le noyau sont utilisées lorsqu'il est difficile de résoudre des problèmes de classification, de regroupement et de régression – dans l'espace dans lequel les observations sont effectuées.

    Kernlab package est largement utilisé dans la mise en oeuvre de SVM, ce qui facilite grandement la reconnaissance des formes. Il a diverses fonctions de noyau telles que – tanhdot (fonction de noyau hyperbolique tangente), polydot (fonction de noyau polynomiale), laplacedot (fonction de noyau laplacienne) et bien d’autres encore pour effectuer la reconnaissance des formes.

    Jusqu'à présent, vous avez peut-être compris la puissance des fonctions du noyau utilisées dans SVM. Si les fonctions du noyau ne sont pas présentes, alors SVM n'est pas possible.

    SVM n'est pas la seule technique qui utilise Kernel Trick, mais il existe de nombreux autres algorithmes basés sur le noyau qui sont très populaires et utiles, par exemple, RVM, PCA basé sur le noyau, réduction de la dimensionnalité, etc.

    KernLab Le paquet est une maison pour ~ 20 de tels algorithmes qui travaillent sur la puissance des noyaux.

    KernLab a ses propres noyaux prédéfinis, mais l'utilisateur a la possibilité de créer et d'utiliser ses propres fonctions du noyau.

    Initialisons notre propre fonction de base radiale avec une valeur sigma de 0,01

                    Myrbf 
    

    Si vous voulez voir la classe de Myrbf, vous pouvez le faire simplement en courant classe() fonction sur l'objet créé

    Image 14
    
    
    Image 15
    

    Chaque objet du noyau accepte deux vecteurs et en renvoie un produit scalaire. Créons deux vecteurs et voyons leurs produits scalaires -

                    X
    

    Ici, nous avons créé deux variables normales aléatoires x & y avec 10 valeurs chacune et calculé leur produit scalaire en utilisant Noyau de Myrbf.

    Voyons un exemple de SVM utilisant Noyau de Myrbf

    Nous utiliserons à nouveau les données de l’iris pour comprendre le fonctionnement de SVM en utilisant KernLab -

                    Kernlab_svm 
    

    Image 17

    Utilisons la machine à vecteurs de support construite et voyons comment elle a prédit:

                    préditeImage 18
    
    
    
  • Chaque package ou fonction de R est associé à des valeurs par défaut. Avant d'appliquer un algorithme, vous devez connaître les différentes options disponibles. Passer les valeurs par défaut vous donnera un résultat, mais vous ne pouvez pas être sûr que la sortie est la plus optimisée ou la plus précise.

    Il existe de nombreux autres packages d’apprentissage automatique disponibles dans le référentiel CRAN, tels que igraph, glmnet, gbm, arbre, CORElearn, mboost, etc., utilisés dans différents secteurs pour créer des modèles performants. Nous avons observé des scénarios dans lesquels la modification d'un seul paramètre peut modifier complètement la sortie. Donc, ne comptez pas sur les valeurs par défaut des paramètres – Comprenez vos données et vos exigences avant d’appliquer un algorithme.

    Laisser un commentaire