Introduction à Scikit-Learn : l'outil essentiel d'apprentissage automatique en Python

Dans le royaume de apprentissage automatique en utilisant PythonScikit-Learn est un outil indispensable. En tant que première bibliothèque pour l'apprentissage automatique en Python, Scikit-Learn fournit une suite complète de algorithmes et des outils pour résoudre un large éventail de problèmes. De la classification et de la régression au clustering et à la réduction de la dimensionnalité, Scikit-Learn permet aux scientifiques des données de créer des outils robustes et efficaces modèles d'apprentissage automatiqueQue vous soyez un débutant faisant ses premiers pas dans le monde de l’apprentissage automatique ou un praticien chevronné cherchant à élargir votre boîte à outils, cet article constitue une introduction concise et informative à Scikit-Learn.

Contenu cacher

Qu'est-ce que Scikit-Learn ?

Présentation de Scikit-Learn

Scikit-Learn est une bibliothèque d'apprentissage automatique puissante et populaire en Python. Elle fournit une large gamme d'algorithmes et d'outils pour l'analyse des données et la formation des modèles. Avec son interface conviviale et efficace, Scikit-Learn est largement utilisé par les débutants et les data scientists expérimentés pour résoudre des problèmes d'apprentissage automatique complexes.

Caractéristiques principales

Scikit-Learn offre plusieurs fonctionnalités clés qui en font un outil essentiel pour l'apprentissage automatique en Python :

  • Efficace et évolutif:Scikit-Learn est conçu pour être efficace en termes de calcul et peut gérer facilement de grands ensembles de données. Il exploite la puissance des bibliothèques numériques telles que NumPy et SciPy pour garantir une exécution efficace.
  • Large gamme d'algorithmes:Scikit-Learn fournit une suite complète de algorithmes d'apprentissage automatique, incluant des méthodes d'apprentissage supervisées et non supervisées. Ces algorithmes vont des méthodes classiques telles que la régression linéaire et la régression logistique à des techniques plus avancées comme les forêts aléatoires et les machines à vecteurs de support.
  • Prétraitement des données et ingénierie des fonctionnalités:Scikit-Learn propose une variété d'outils pour le prétraitement des données et l'ingénierie des fonctionnalités. Il fournit des fonctions pour gérer les données manquantes, mettre à l'échelle les fonctionnalités, encoder les variables catégorielles et diviser les données en ensembles d'apprentissage et de test.
  • Sélection et évaluation des modèles:Scikit-Learn fournit des outils robustes pour la sélection et l'évaluation de modèles, notamment la validation croisée et la recherche de grille. Ces techniques permettent de trouver les meilleurs hyperparamètres pour un modèle donné et d'évaluer ses performances à l'aide de diverses mesures d'évaluation.
  • Intégration avec d'autres bibliothèques:Scikit-Learn s'intègre parfaitement à d'autres bibliothèques Python populaires, telles que NumPy, Pandas et Matplotlib. Cela permet aux utilisateurs d'exploiter les riches fonctionnalités de ces bibliothèques en conjonction avec Scikit-Learn pour la manipulation des données, la visualisation et l'évaluation des modèles.

Algorithmes pris en charge

Scikit-Learn prend en charge une large gamme d'algorithmes d'apprentissage automatique pour les tâches d'apprentissage supervisées et non supervisées. Certains des algorithmes populaires pris en charge par Scikit-Learn incluent :

  • Régression linéaire:Un algorithme simple mais puissant pour l'analyse de régression, qui modélise la relation entre la variable dépendante et une ou plusieurs variables indépendantes.
  • Régression logistique:Un algorithme de classification qui modélise la probabilité d'un résultat binaire ou multi-classes en fonction d'une combinaison linéaire de caractéristiques d'entrée.
  • Arbres de décision:Un algorithme polyvalent qui construit un modèle arborescent pour prendre des décisions basées sur un ensemble de conditions ou de règles.
  • Machines à vecteurs de support (SVM):Un algorithme puissant qui effectue la classification en trouvant le meilleur hyperplan pour séparer différentes classes dans l'espace des fonctionnalités.
  • Bayes naïf:Un algorithme probabiliste basé sur le théorème de Bayes, couramment utilisé pour la classification de texte et le filtrage du spam.
LIRE  Votre entreprise est-elle vulnérable aux cyberattaques ? Découvrez-le maintenant !

En plus de ces algorithmes, Scikit-Learn prend également en charge divers algorithmes de clustering, techniques de réduction de dimensionnalité et méthodes d'ensemble, telles que les forêts aléatoires et le gradient boosting.

Installation et configuration

Configuration requise

Avant d'installer Scikit-Learn, assurez-vous que votre système répond aux exigences suivantes :

  • Python 3.x (Scikit-Learn n'est pas compatible avec Python 2.x)
  • NumPy et SciPy (Scikit-Learn dépend de ces bibliothèques pour des calculs numériques efficaces)
  • Matplotlib (facultatif, pour la visualisation des données)

Installation de Scikit-Learn

Pour installer Scikit-Learn, vous pouvez utiliser le gestionnaire de paquets Python, pip. Ouvrez votre terminal ou votre invite de commande et exécutez la commande suivante :

pip installe scikit-learn

Si vous préférez utiliser Anaconda, vous pouvez installer Scikit-Learn en utilisant le gestionnaire de paquets conda :

conda installer scikit-learn

Scikit-Learn est maintenant prêt à être utilisé dans votre environnement Python.

Importer Scikit-Learn

Pour commencer à utiliser Scikit-Learn, vous devez importer les modules nécessaires. En Python, vous pouvez importer Scikit-Learn à l'aide de l'instruction suivante :

importer sklearn

Une fois importé, vous pouvez accéder aux différentes classes et fonctions fournies par Scikit-Learn pour effectuer des tâches d'apprentissage automatique.

Représentation des données dans Scikit-Learn

Caractéristiques et variables cibles

Dans Scikit-Learn, les données sont généralement représentées sous forme de tableau ou de matrice bidimensionnelle, où chaque ligne représente un échantillon ou une observation individuelle, et chaque colonne représente une caractéristique ou un attribut de cet échantillon. La variable cible, que nous cherchons à prédire, est généralement représentée sous forme de tableau ou de vecteur unidimensionnel distinct.

Tableaux Numpy et DataFrames Pandas

Scikit-Learn peut fonctionner avec des tableaux NumPy et des DataFrames Pandas en entrée. Les tableaux NumPy sont efficaces et largement utilisés pour les calculs numériques, tandis que les DataFrames Pandas offrent des fonctionnalités supplémentaires pour la manipulation et l'analyse des données.

Pour convertir un DataFrame Pandas en un tableau NumPy, vous pouvez utiliser le valeurs attribut:

importer pandas comme pd importer numpy comme np

Créer un DataFrame

df = pd.DataFrame({'fonctionnalité1': [1, 2, 3], 'fonctionnalité2': [4, 5, 6], 'cible': [0, 1, 0]})

Convertir un DataFrame en tableau NumPy

données = df.valeurs

Fonctionnalités distinctes et variables cibles

X = données[:, :-1] Caractéristiques # y = données[:, -1] Cible #

Gestion des données manquantes

Les ensembles de données du monde réel contiennent souvent des valeurs manquantes, ce qui peut nuire aux performances des modèles d'apprentissage automatique. Scikit-Learn propose diverses stratégies pour gérer les données manquantes, notamment l'imputation et la suppression.

Une méthode populaire est l'imputation moyenne, où les valeurs manquantes sont remplacées par la moyenne des valeurs disponibles pour cette fonctionnalité. Scikit-Learn fournit la SimpleImputer classe pour l'imputation des valeurs manquantes :

à partir de sklearn.impute importer SimpleImputer

Créer un objet imputer

imputer = SimpleImputer(stratégie='moyenne')

Ajuster l'imputer aux données

imputer.fit(X)

Imputer les valeurs manquantes

X_imputé = imputer.transform(X)

Gestion des variables catégorielles

Les variables catégorielles, qui peuvent prendre un nombre limité de valeurs, doivent être codées dans un format numérique avant de pouvoir être utilisées dans des algorithmes d'apprentissage automatique. Scikit-Learn propose diverses techniques de codage des variables catégorielles, telles que le codage one-hot et le codage des étiquettes.

Le codage à chaud crée des caractéristiques binaires pour chaque catégorie, représentant l'absence ou la présence de cette catégorie. Scikit-Learn fournit les Encodeur OneHot classe pour l'encodage one-hot :

à partir de sklearn.preprocessing importer OneHotEncoder

Créer un objet encodeur

encodeur = OneHotEncoder()

Adaptez l'encodeur aux données

encodeur.fit(X)

Coder les variables catégorielles

X_encoded = encodeur.transform(X)

Le codage des étiquettes attribue une étiquette numérique unique à chaque catégorie. Scikit-Learn fournit les Encodeur d'étiquettes classe pour l'encodage des étiquettes :

à partir de sklearn.preprocessing importer LabelEncoder

Créer un objet encodeur

encodeur = LabelEncoder()

Adaptez l'encodeur aux données

encodeur.fit(y)

Coder une variable catégorielle

y_encoded = encodeur.transform(y)

Prétraitement des données

Nettoyage des données

Le nettoyage des données consiste à supprimer ou à corriger les erreurs, les incohérences ou les valeurs aberrantes dans l'ensemble de données. Cela peut améliorer la qualité et la fiabilité des prévisions du modèle.

Scikit-Learn propose diverses techniques de nettoyage des données, telles que la gestion des données manquantes (comme indiqué précédemment), la détection des valeurs aberrantes et la réduction du bruit. Ces techniques peuvent être appliquées avant ou après la mise à l'échelle des fonctionnalités, en fonction des exigences spécifiques du problème.

Mise à l'échelle des données

La mise à l'échelle des fonctionnalités est une étape cruciale dans de nombreux algorithmes d'apprentissage automatique, car elle garantit que toutes les fonctionnalités sont à une échelle similaire. Cela peut empêcher certaines fonctionnalités de dominer les autres et améliorer les performances et la convergence du modèle.

Scikit-Learn propose plusieurs méthodes de mise à l'échelle des fonctionnalités, notamment la standardisation et la normalisation. La standardisation met à l'échelle chaque fonctionnalité de sorte qu'elle ait une moyenne de 0 et un écart type de 1, tandis que la normalisation met à l'échelle chaque fonctionnalité sur une plage spécifique, généralement comprise entre 0 et 1.

à partir de sklearn.preprocessing importer StandardScaler, MinMaxScaler

Créer un objet scaler

scaler = StandardScaler()

Ajuster l'échelle aux données

scaler.fit(X)

Mettre à l'échelle les fonctionnalités

X_scaled = scaler.transform(X)

Codage des fonctionnalités

Outre la gestion des variables catégorielles, le codage des caractéristiques peut également impliquer la transformation et la combinaison de caractéristiques existantes pour créer de nouvelles caractéristiques informatives. Ce processus est souvent appelé ingénierie des caractéristiques et est essentiel pour améliorer les performances et l'interprétabilité des modèles d'apprentissage automatique.

Scikit-Learn propose plusieurs techniques de codage de caractéristiques, telles que les caractéristiques polynomiales, les termes d'interaction et les transformations de Fourier. Ces techniques peuvent être utilisées pour créer des relations non linéaires et capturer des interactions d'ordre supérieur entre les caractéristiques.

Fractionnement des données pour la formation et les tests

Pour évaluer les performances d'un modèle d'apprentissage automatique, il est essentiel de disposer d'ensembles de données distincts pour la formation et les tests. Scikit-Learn fournit les train_test_split fonction permettant de diviser les données en un ensemble d'apprentissage et un ensemble de test.

à partir de sklearn.model_selection importer train_test_split

Diviser les données en ensembles d’entraînement et de test

X_train, X_test, y_train, y_test = train_test_split(X, y, taille_test=0.2, état_aléatoire=42)

Le taille_test Le paramètre spécifie la proportion des données à utiliser pour les tests et la état_aléatoire le paramètre assure la reproductibilité en fixant la graine aléatoire.

LIRE  Meilleure caméra de sécurité sans fil pour une utilisation en extérieur

Apprentissage supervisé

Aperçu de l'apprentissage supervisé

L'apprentissage supervisé est un type d'apprentissage automatique dans lequel le modèle apprend à partir de données d'entraînement étiquetées pour faire des prédictions ou prendre des décisions. Il consiste à fournir des fonctionnalités d'entrée et leurs valeurs cibles correspondantes au modèle, ce qui lui permet d'apprendre la relation entre les fonctionnalités et la cible.

Scikit-Learn propose une large gamme d'algorithmes d'apprentissage supervisé pour les tâches de régression et de classification. Ces algorithmes utilisent différentes techniques mathématiques et statistiques pour apprendre les modèles et les relations sous-jacents dans les données.

Régression linéaire

La régression linéaire est un algorithme simple mais puissant pour l'analyse de régression, dont l'objectif est de prédire une variable cible continue en fonction d'une ou plusieurs caractéristiques d'entrée. Il suppose une relation linéaire entre les caractéristiques et la variable cible.

Scikit-Learn fournit le Régression linéaire classe pour la régression linéaire :

à partir de sklearn.linear_model importer LinearRegression

Créer un objet de régression linéaire

modèle = LinearRegression()

Ajuster le modèle aux données d'entraînement

modèle.fit(X_train, y_train)

Faire des prédictions sur de nouvelles données

y_pred = modèle.predict(X_test)

Régression logistique

La régression logistique est un algorithme de classification qui modélise la probabilité d'un résultat binaire ou multi-classe en fonction d'une combinaison linéaire de caractéristiques d'entrée. Il est largement utilisé pour les problèmes de classification binaire, tels que la détection de spam ou le diagnostic de maladie.

Scikit-Learn fournit le Régression logistique classe pour la régression logistique :

à partir de sklearn.linear_model importer LogisticRegression

Créer un objet de régression logistique

modèle = Régression Logistique()

Ajuster le modèle aux données d'entraînement

modèle.fit(X_train, y_train)

Faire des prédictions sur de nouvelles données

y_pred = modèle.predict(X_test)

Arbres de décision

Les arbres de décision sont des algorithmes polyvalents qui construisent un modèle arborescent pour prendre des décisions basées sur un ensemble de conditions ou de règles. Ils sont couramment utilisés pour les tâches de régression et de classification et peuvent gérer à la fois des variables numériques et catégorielles.

Scikit-Learn fournit le Arbre de décision régresseur classe pour la régression de l'arbre de décision et la Classificateur d'arbre de décision classe pour la classification des arbres de décision :

à partir de sklearn.tree importer DecisionTreeRegressor, DecisionTreeClassifier

Créer un objet d'arbre de décision

modèle = DecisionTreeRegressor() # Pour la régression

ou

modèle = DecisionTreeClassifier() # Pour la classification

Ajuster le modèle aux données d'entraînement

modèle.fit(X_train, y_train)

Faire des prédictions sur de nouvelles données

y_pred = modèle.predict(X_test)

Machines à vecteurs de support

Les machines à vecteurs de support (SVM) sont des algorithmes puissants qui effectuent la classification en trouvant le meilleur hyperplan pour séparer différentes classes dans l'espace des caractéristiques. Ils peuvent gérer les problèmes de classification linéaires et non linéaires et sont particulièrement efficaces dans les espaces à haute dimension.

Scikit-Learn fournit le SVC classe pour la classification des vecteurs de support :

depuis sklearn.svm importer SVC

Créer un objet classificateur de vecteur de support

modèle = SVC()

Ajuster le modèle aux données d'entraînement

modèle.fit(X_train, y_train)

Faire des prédictions sur de nouvelles données

y_pred = modèle.predict(X_test)

Bayes naïf

Naive Bayes est un algorithme probabiliste basé sur le théorème de Bayes et est couramment utilisé pour la classification de texte et le filtrage du spam. Il suppose que toutes les caractéristiques sont conditionnellement indépendantes compte tenu de l'étiquette de classe et estime la probabilité de chaque classe en fonction des caractéristiques observées.

Scikit-Learn fournit plusieurs classificateurs bayésiens naïfs, notamment GaussienNB pour les fonctionnalités continues et MultinomialNB pour les fonctions discrètes :

à partir de sklearn.naive_bayes importer GaussianNB, MultinomialNB

Créer un objet classificateur bayésien naïf

modèle = GaussianNB() # Pour les fonctionnalités continues

ou

modèle = MultinomialNB() # Pour les fonctionnalités discrètes

Ajuster le modèle aux données d'entraînement

modèle.fit(X_train, y_train)

Faire des prédictions sur de nouvelles données

y_pred = modèle.predict(X_test)

Apprentissage non supervisé

Aperçu de l'apprentissage non supervisé

L'apprentissage non supervisé est un type d'apprentissage automatique dans lequel le modèle apprend à partir de données non étiquetées pour découvrir des modèles ou des structures cachés. Il consiste à fournir des caractéristiques d'entrée sans aucune valeur cible correspondante, ce qui permet au modèle d'apprendre la distribution sous-jacente des données.

Scikit-Learn propose une large gamme d'algorithmes d'apprentissage non supervisés pour des tâches telles que le clustering, la réduction de dimensionnalité et la détection d'anomalies. Ces algorithmes utilisent différentes techniques, telles que les mesures de distance et la modélisation probabiliste, pour extraire des informations significatives des données.

Analyse en composantes principales (ACP)

L'analyse en composantes principales (ACP) est une technique de réduction de dimensionnalité qui vise à projeter les données dans un espace de dimension inférieure tout en préservant autant que possible les informations d'origine. Elle y parvient en trouvant les directions (composantes principales) le long desquelles les données varient le plus.

Scikit-Learn fournit le PCA cours pour PCA :

à partir de sklearn.decomposition importer PCA

Créer un objet PCA

pca = PCA(n_composants=2)

Ajuster le modèle PCA aux données

pca.fit(X)

Transformer les données dans l'espace de dimension inférieure

X_transformé = pca.transform(X)

Regroupement k-Means

Le clustering k-Means est un algorithme populaire pour partitionner les données en k clusters, où chaque échantillon appartient au centre du cluster le plus proche. Il vise à minimiser la somme des carrés au sein du cluster, en regroupant efficacement les échantillons similaires.

Scikit-Learn fournit le K-Moyenne classe pour le clustering k-Means :

depuis sklearn.cluster importer KMeans

Créer un objet de clustering k-Means

kmeans = KMeans(n_clusters=3)

Ajuster le modèle k-Means aux données

kmeans.fit(X)

Prédire les étiquettes de cluster pour les données

étiquettes = kmeans.predict(X)

Regroupement hiérarchique

Le clustering hiérarchique est un algorithme agglomératif qui commence avec chaque échantillon comme cluster individuel et fusionne successivement les clusters les plus similaires jusqu'à ce qu'une condition de terminaison soit remplie. Il en résulte une hiérarchie de clusters, qui peut être visualisée sous la forme d'une structure arborescente appelée dendrogramme.

Scikit-Learn fournit le AgglomérationClustering classe pour le clustering hiérarchique :

à partir de sklearn.cluster importer AgglomerativeClustering

Créer un objet de clustering agglomératif

hiérarchique = AgglomerativeClustering(n_clusters=3)

Ajuster le modèle de clustering agglomératif aux données

ajustement.hiérarchique(X)

Prédire les étiquettes de cluster pour les données

étiquettes = étiquettes.hiérarchiques_

Sélection et évaluation des modèles

Validation croisée

La validation croisée est une technique largement utilisée pour estimer les performances d'un modèle d'apprentissage automatique sur des données non vues. Elle consiste à diviser les données disponibles en plusieurs sous-ensembles ou plis, à entraîner le modèle sur un sous-ensemble des plis et à évaluer ses performances sur le pli restant.

Scikit-Learn fournit le score_cross_val fonction permettant d'effectuer une validation croisée :

à partir de sklearn.model_selection importer cross_val_score

Effectuer une validation croisée sur un modèle

scores = cross_val_score(modèle, X, y, cv=5)

Le CV Le paramètre spécifie le nombre de plis à utiliser pour la validation croisée. La fonction renvoie un tableau de scores, un pour chaque pli.

Recherche par grille

La recherche de grille est une technique de réglage des hyperparamètres, dans laquelle une grille de valeurs d'hyperparamètres est définie, et le modèle est formé et évalué pour chaque combinaison d'hyperparamètres. Elle permet de trouver l'ensemble optimal d'hyperparamètres qui maximise les performances du modèle.

LIRE  Actualités sur le phishing et les escroqueries : identifier et éviter les cybermenaces

Scikit-Learn fournit le Recherche de grille CV classe pour effectuer une recherche dans la grille :

à partir de sklearn.model_selection importer GridSearchCV

Définir une grille d'hyperparamètres à rechercher

param_grid = {'C': [1, 10, 100], 'gamma': [0.1, 0.01, 0.001]}

Effectuer une recherche de grille sur un modèle

grid_search = GridSearchCV (modèle, param_grid, cv=5)

Ajuster le modèle de recherche de grille aux données

recherche_grille.fit(train_X, train_y)

Obtenez les meilleurs hyperparamètres et les performances correspondantes

meilleurs_params = grid_search.best_params_ meilleur_score = grid_search.best_score_

Mesures d'évaluation

Les mesures d'évaluation sont utilisées pour mesurer les performances d'un modèle d'apprentissage automatique. Scikit-Learn fournit une large gamme de mesures d'évaluation pour les tâches de régression, de classification et de clustering. Ces mesures aident à évaluer l'exactitude, la précision, le rappel et d'autres aspects de performance du modèle.

Certaines mesures d’évaluation couramment utilisées dans Scikit-Learn incluent l’erreur quadratique moyenne (MSE), l’exactitude, la précision, le rappel, le score F1 et le score de silhouette.

Méthodes d'ensemble

Ensachage

Le bagging, abréviation de bootstrap aggregation, est une méthode d'ensemble qui combine plusieurs modèles en entraînant chaque modèle sur un sous-ensemble échantillonné de manière aléatoire des données d'entraînement. Elle permet de réduire le surapprentissage et d'améliorer la stabilité et la robustesse des prédictions.

Scikit-Learn fournit le Régresseur de bagging et EnsachageClassificateur classes pour l'ensachage :

à partir de sklearn.ensemble importer BaggingRegressor, BaggingClassifier

Créer un objet régresseur de bagging

ensachage = BaggingRegressor(base_estimator=model, n_estimators=10)

Créer un objet classificateur de bagging

ensachage = BaggingClassifier(base_estimator=model, n_estimators=10)

Stimuler

Le boosting est une autre méthode d'ensemble qui combine plusieurs modèles faibles en un modèle fort en ajustant de manière itérative les poids des échantillons d'entraînement en fonction des performances des modèles précédents. Elle se concentre sur les échantillons difficiles à classer, améliorant progressivement les performances du modèle.

Scikit-Learn fournit le Régresseur AdaBoost et Classificateur AdaBoost cours pour booster :

depuis sklearn.ensemble importer AdaBoostRegressor, AdaBoostClassifier

Créer un objet régresseur AdaBoost

boosting = AdaBoostRegressor(base_estimator=model, n_estimators=10)

Créer un objet classificateur AdaBoost

boosting = AdaBoostClassifier(base_estimator=model, n_estimators=10)

Forêts aléatoires

Random Forests est une méthode d'ensemble qui combine plusieurs arbres de décision, où chaque arbre est formé sur un sous-ensemble de fonctionnalités sélectionnées de manière aléatoire. Elle réduit le surapprentissage et améliore la précision et la robustesse des prédictions.

Scikit-Learn fournit le Régresseur de forêt aléatoire et Classificateur de forêt aléatoire classes pour les forêts aléatoires :

à partir de sklearn.ensemble importer RandomForestRegressor, RandomForestClassifier

Créer un objet régresseur de forêt aléatoire

forêt = RandomForestRegressor(n_estimators=10)

Créer un objet classificateur de forêt aléatoire

forêt = RandomForestClassifier(n_estimators=10)

Amplification du gradient

Le Gradient Boosting est une méthode d'ensemble qui combine plusieurs modèles faibles, tels que des arbres de décision, en un modèle fort en minimisant de manière itérative une fonction de perte. Elle construit le modèle par étapes, où chaque nouveau modèle corrige les erreurs des modèles précédents.

Scikit-Learn fournit le Régresseur de renforcement de gradient et Classificateur de renforcement de gradient classes pour l'amplification du gradient :

à partir de sklearn.ensemble importer GradientBoostingRegressor, GradientBoostingClassifier

Créer un objet régresseur d'amplification de gradient

boosting = GradientBoostingRegressor(n_estimators=10)

Créer un objet classificateur d'amplification de gradient

boosting = GradientBoostingClassifier(n_estimators=10)

Réduction de la dimensionnalité

Analyse discriminante linéaire (LDA)

L'analyse discriminante linéaire (LDA) est une technique de réduction de dimensionnalité qui vise à trouver un espace de dimension inférieure qui maximise la séparation entre les différentes classes. Elle y parvient en projetant les données sur un ensemble de vecteurs discriminants linéaires.

Scikit-Learn fournit le Analyse discriminante linéaire classe pour LDA:

à partir de sklearn.discriminant_analysis importer LinearDiscriminantAnalysis

Créer un objet LDA

lda = AnalyseDiscriminanteLinéaire(n_composants=2)

Ajuster le modèle LDA aux données

lda.fit(X, y)

Transformer les données dans l'espace de dimension inférieure

X_transformé = lda.transform(X)

Incorporation de voisins stochastiques distribués en t (t-SNE)

L'intégration stochastique distribuée en t (t-SNE) est une technique de réduction de dimensionnalité qui vise à préserver la structure locale et globale des données dans un espace de dimension inférieure. Elle y parvient en modélisant la distribution de probabilité des similitudes par paires entre les points de données.

Scikit-Learn fournit le TSNE classe pour t-SNE :

à partir de sklearn.manifold importer TSNE

Créer un objet t-SNE

tsne = TSNE(n_composants=2)

Ajuster le modèle t-SNE aux données

tsne.fit(X)

Transformer les données dans l'espace de dimension inférieure

X_transformé = tsne.transform(X)

Sauvegarde et chargement des modèles

Sérialisation et désérialisation

La sérialisation est le processus de conversion d'un modèle en un format sérialisé qui peut être stocké dans un fichier ou transféré sur un réseau. La désérialisation est le processus inverse de reconstruction du modèle à partir du format sérialisé.

Scikit-Learn fournit le saumure module de sérialisation et de désérialisation :

importer des cornichons

Sérialiser le modèle dans un fichier

avec open('model.pkl', 'wb') comme fichier : pickle.dump(model, file)

Désérialiser le modèle à partir d'un fichier

avec open('model.pkl', 'rb') comme fichier : model = pickle.load(file)

Pickle et Joblib

Pickle est un module intégré à Python qui permet de sérialiser et de désérialiser des objets, y compris des modèles Scikit-Learn. Cependant, ce n'est peut-être pas l'option la plus efficace pour les modèles ou les ensembles de données volumineux.

Scikit-Learn fournit également le travaillib module, qui est une alternative plus efficace à pickle pour la sérialisation et la désérialisation :

depuis sklearn.externals importer joblib

Sérialiser le modèle dans un fichier

joblib.dump(modèle, 'model.pkl')

Désérialiser le modèle à partir d'un fichier

modèle = joblib.load('model.pkl')

Le travaillib le module prend en charge le parallélisme et offre de meilleures performances pour les tâches de calcul scientifique de grande envergure.

Sauvegarde et chargement des modèles

Une fois qu'un modèle est formé et évalué, il est souvent nécessaire de le sauvegarder pour une utilisation ou un déploiement ultérieur. Scikit-Learn propose diverses options pour sauvegarder et charger des modèles, notamment la sérialisation et la désérialisation à l'aide de pickle ou joblib.

En sauvegardant le modèle, vous pouvez éviter de devoir le réentraîner à chaque fois que vous souhaitez l'utiliser. Cela est particulièrement utile lorsque vous travaillez avec de grands ensembles de données ou des modèles coûteux en termes de calcul.

Pour enregistrer un modèle entraîné, vous pouvez utiliser le sauvegarder méthode fournie par l'objet modèle :

modèle.save(“modèle.h5”)

Pour charger un modèle enregistré, vous pouvez utiliser le charger_modele fonction de la bibliothèque correspondante :

depuis tensorflow.keras.models importer load_model

modèle = load_model(“model.h5”)

Assurez-vous d'importer la bibliothèque appropriée et de spécifier le chemin de fichier correct lors de l'enregistrement et du chargement des modèles.

En conclusion, Scikit-Learn est une bibliothèque d'apprentissage automatique complète et puissante en Python qui offre une large gamme d'algorithmes et d'outils pour l'analyse des données et la formation des modèles. Avec son interface conviviale, sa mise en œuvre efficace et sa documentation complète, Scikit-Learn est le choix incontournable pour les data scientists débutants et expérimentés. En suivant les instructions d'installation et de configuration, en comprenant la représentation des données, les techniques de prétraitement, les algorithmes d'apprentissage supervisés et non supervisés, les méthodes de sélection et d'évaluation des modèles, les méthodes d'ensemble, les techniques de réduction de la dimensionnalité et les processus de sérialisation et de désérialisation, vous serez bien équipé pour vous attaquer à diverses tâches d'apprentissage automatique à l'aide de Scikit-Learn.

fr_FRFrançais