Algorithmes d'apprentissage automatique

Les algorithmes d'apprentissage automatique peuvent être divisés en catégories telles que l'apprentissage supervisé, l'apprentissage non supervisé et l'apprentissage par renforcement.

Algorithmes d'apprentissage supervisé:

  • Régression linéaire(Linear Regression) : Utilisée pour les tâches de régression, en prédisant des valeurs continues.
  • Régression logistique(Logistic Regression) : Utilisée pour les tâches de classification binaire, en prédisant des catégories.
  • Machine à vecteurs de support(SVM) : Utilisée pour les tâches de classification, en construisant un hyperplan pour la classification.
  • Arbre de décision(Decision Tree) : Une méthode de classification ou de régression qui prend des décisions en fonction d'une structure arborescente.

Algorithmes d'apprentissage non supervisé:

  • Regroupement K-means: Regroupe les données par centres de clusters.
  • Analyse en composantes principales (ACP): Utilisée pour la réduction de dimensionnalité, en extrayant les composantes principales des données.

Chaque algorithme a ses scénarios d'application. Dans les applications pratiques, vous pouvez choisir l'algorithme d'apprentissage automatique le plus approprié en fonction des caractéristiques des données (comme la présence d'étiquettes, les dimensions des données, etc.).

Dimension de classification Catégorie Définition principale Algorithmes typiques Principaux avantages et inconvénients Scénarios applicables
Méthode d'apprentissage Apprentissage supervisé Apprendre la correspondance entre les entrées et les sorties à l'aide de données étiquetées Régression logistique, SVM, Arbre de décision, CNN, LSTM Avantages : grande précision de prédiction ; Inconvénients : dépend de données étiquetées de haute qualité Classification, régression, reconnaissance d'images, traduction de texte
Apprentissage non supervisé Utiliser des données non étiquetées pour extraire des motifs intrinsèques dans les données K-Means, PCA, DBSCAN, Autoencodeurs Avantages : aucun étiquetage requis ; Inconvénients : faible interprétabilité des résultats Regroupement de données, réduction de dimensionnalité, détection d'anomalies, segmentation des utilisateurs
Apprentissage semi-supervisé Entraîner avec une petite quantité de données étiquetées et une grande quantité de données non étiquetées SVM semi-supervisé, algorithmes de propagation d'étiquettes Avantages : réduit le coût d'étiquetage ; Inconvénients : conception de modèle complexe Analyse d'imagerie médicale, NLP pour langues de niche
Apprentissage par renforcement Le modèle optimise sa politique par l'interaction avec l'environnement et les signaux de récompense Q-Learning, DQN, PPO Avantages : adapté à la prise de décision dynamique ; Inconvénients : cycles d'entraînement longs IA de jeu, contrôle de robots, optimisation de politique de recommandation
Objectif de la tâche Algorithmes de classification Prédire des étiquettes de classe discrètes Régression logistique, Forêt aléatoire, CNN Avantages : adapté aux scénarios de classification ; Inconvénients : sensible au déséquilibre des classes Détection de spam, classification d'images, diagnostic de maladies
Algorithmes de régression Prédire des sorties numériques continues Régression linéaire, Régression Ridge, XGBoost Avantages : produit des valeurs continues ; Inconvénients : sensible aux valeurs aberrantes Prédiction du prix des logements, prédiction des ventes, prédiction de la température
Algorithmes de clustering Regrouper des données similaires en une classe sans étiquettes K-Means, clustering hiérarchique, DBSCAN Avantages : regroupement automatique ; Inconvénients : l'effet de clustering dépend de la métrique de distance Segmentation du marché, profilage des utilisateurs, détection d'anomalies
Algorithmes de réduction de dimensionnalité Réduire les dimensions des caractéristiques tout en conservant les informations essentielles PCA, t-SNE, LDA Avantages : réduit le coût de calcul ; Inconvénients : peut perdre certaines informations Visualisation de données en grande dimension, prétraitement des caractéristiques
Structure du modèle Modèles linéaires Supposent une relation linéaire entre l'entrée et la sortie Régression linéaire, régression logistique, régression ridge Avantages : forte interprétabilité, entraînement rapide ; Inconvénients : difficile de modéliser des relations non linéaires Classification/régression simple, construction de modèle de base
Modèles arborescents Construits sur des arbres de décision, gèrent les relations non linéaires Arbre de décision, Forêt aléatoire, XGBoost, LightGBM Avantages : aucune normalisation des caractéristiques nécessaire ; Inconvénients : les arbres trop profonds sont sujets au surapprentissage Classification/régression de qualité industrielle, tâches de niveau compétition
Modèles de réseaux de neurones Structures de neurones multicouches qui extraient automatiquement des caractéristiques complexes ANN、CNN、RNN、Transformer Avantages : s'adapte aux relations complexes ; Inconvénients : nécessite de grandes quantités de données et de puissance de calcul Reconnaissance d'images, NLP, synthèse vocale
Modèles probabilistes Basés sur la théorie des probabilités et des statistiques, calculent des distributions de probabilité Naive Bayes, modèles de Markov cachés Avantages : fondement théorique solide ; Inconvénients : repose sur des hypothèses fortes Classification de texte, reconnaissance vocale, étiquetage de séquences

Algorithmes d'apprentissage supervisé

Régression linéaire

La régression linéaire est un algorithme destiné aux problèmes de régression. Elle prédit une sortie continue en apprenant la relation linéaire entre les caractéristiques d'entrée et les valeurs cibles.

Scénarios d'application :Prédiction des prix immobiliers, des cours boursiers, etc.

L'objectif de la régression linéaire est de trouver une équation linéaire optimale :

  • y est la valeur prédite (valeur cible).
  • x1,x2,xnest la caractéristique d'entrée.
  • w1,w2,wnsont les poids à apprendre (paramètres du modèle).
  • b est le terme de biais.

Ensuite, nous utilisons sklearn pour effectuer une simple prédiction des prix immobiliers :

Exemple

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import pandas as pd

# Supposons que nous ayons un simple jeu de données sur les prix immobiliers
data = {
    'area': [50, 60, 80, 100, 120],
    'price': [150, 180, 240, 300, 350]
}
df = pd.DataFrame(data)

# Caractéristiques et étiquettes
X = df[['area']]
y = df['price']

# Division des données
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Entraîner un modèle de régression linéaire
model = LinearRegression()
model.fit(X_train, y_train)

# Prédire
y_pred = model.predict(X_test)

print(f"Prix immobilier prédit : {y_pred}")

La sortie est :

预测的房价: [180.8411215]

Régression logistique

La régression logistique est un algorithme pour les problèmes de classification. Malgré la « régression » dans son nom, elle est utilisée pour des problèmes de classification binaire.

La régression logistique prédit une étiquette de classe en apprenant la relation entre les caractéristiques d'entrée et les catégories.

Scénarios d'application :Classification de spam, diagnostic de maladie (présence ou non de la maladie).

La sortie de la régression logistique est une valeur de probabilité, représentant la probabilité qu'un échantillon appartienne à une certaine classe.

On utilise généralement la fonction sigmoïde :

Utiliser la régression logistique pour une tâche de classification binaire :

Exemple

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Charger le jeu de données Iris
iris = load_iris()
X = iris.data
y = iris.target

# Ne prendre que les deux premières classes pour une classification binaire
X = X[y != 2]
y = y[y != 2]

# Division des données
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Entraîner un modèle de régression logistique
model = LogisticRegression()
model.fit(X_train, y_train)

# Prédire
y_pred = model.predict(X_test)

# Évaluer le modèle
print(f"Exactitude de classification : {accuracy_score(y_test, y_pred):.2f}")

La sortie est :

分类准确率: 1.00

Machine à vecteurs de support (SVM)

La machine à vecteurs de support est un algorithme de classification couramment utilisé. Elle construit un hyperplan pour maximiser la marge entre les classes, en minimisant l'erreur de classification.

Scénarios d'application :Classification de texte, reconnaissance faciale, etc.

Utiliser SVM pour la tâche de classification Iris :

Exemple

from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Charger le jeu de données Iris
iris = load_iris()
X = iris.data
y = iris.target

# Division des données
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Entraîner le modèle SVM
model = SVC(kernel='linear')
model.fit(X_train, y_train)

# Prédire
y_pred = model.predict(X_test)

# Évaluer le modèle
print(f"Exactitude de classification SVM : {accuracy_score(y_test, y_pred):.2f}")

La sortie est :

SVM 分类准确率: 1.00

Arbre de décision

Un arbre de décision est une méthode de classification et de régression basée sur des structures arborescentes pour la prise de décision. Il détermine à quelle classe appartient un échantillon au moyen d'une série de "conditions de jugement".

Scénarios d'application :Classification des clients, notation de crédit, etc.

Utiliser un arbre de décision pour une tâche de classification :

Exemple

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Charger le jeu de données Iris
iris = load_iris()
X = iris.data
y = iris.target

# Division des données
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Entraîner un modèle d'arbre de décision
model = DecisionTreeClassifier(random_state=42)
model.fit(X_train, y_train)

# Prédiction
y_pred = model.predict(X_test)

# Évaluer le modèle
print(f"Précision de la classification par arbre de décision : {accuracy_score(y_test, y_pred):.2f}")

Le résultat de sortie est:

决策树分类准确率: 1.00

Algorithmes d'apprentissage non supervisé

Regroupement K-means

K-means est un algorithme de regroupement basé sur des centroïdes qui ajuste continuellement les centroïdes des groupes afin que les points de données de chaque groupe soient aussi proches que possible du centre du groupe.

Scénarios d'application :Segmentation des clients, analyse de marché, compression d'images.

Utilisation de K-means pour la segmentation des clients :

Exemple

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# Générer un jeu de données 2D simple
X, _ = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)

# Entraîner le modèle K-means
model = KMeans(n_clusters=4)
model.fit(X)

# Prédire les résultats du clustering
y_kmeans = model.predict(X)

# Visualiser les résultats du clustering
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
plt.show()

La figure de sortie est présentée ci-dessous :

Analyse en composantes principales (ACP)

L'ACP est une technique de réduction de dimensionnalité qui transforme les données dans un nouveau système de coordonnées par transformation linéaire, en concentrant la majeure partie de la variance dans les premières composantes principales.

Scénarios d'application :Réduction de dimensionnalité d'images, sélection de caractéristiques, visualisation de données.

Utilisation de l'ACP pour la réduction de dimensionnalité et la visualisation de données de haute dimension :

Exemple

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

# Charger le jeu de données Iris
iris = load_iris()
X = iris.data
y = iris.target

# Réduire à 2 dimensions
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# Visualiser les résultats
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis')
plt.title('ACP du jeu de données Iris')
plt.show()

La figure de sortie est présentée ci-dessous :


Algorithmes d'apprentissage automatique

Nom complet en chinois Nom complet en anglais Abréviation Scénarios d'application principaux
Algorithmes d'apprentissage automatique traditionnels
Arbre de décision Arbre de décision DT Classification, régression, analyse de l'importance des variables
Forêt aléatoire Forêt aléatoire RF Classification, régression, détection d'anomalies, sélection de variables
Régression logistique Régression logistique LR Tâches de classification binaire, prédiction de probabilité, scoring de crédit
Machine à vecteurs de support Machine à vecteurs de support SVM Classification, données de grande dimension à petit échantillon, classification de texte
Bayes naïf Bayes naïf NB Classification de texte, détection de spam, analyse de sentiments
Arbre de boosting de gradient Arbre de décision à boosting de gradient GBDT Classification, régression, tâches de classement
Gradient Boosting extrême Gradient Boosting extrême XGBoost Classification et régression de haute précision, tâches de niveau compétition, prédiction du taux de clics
Machine de Gradient Boosting légère Machine de Gradient Boosting légère LightGBM Classification et régression de données à grande échelle, prédiction en temps réel, systèmes de recommandation
Algorithme des k plus proches voisins K plus proches voisins KNN Classification et régression simples, systèmes de recommandation, détection d'anomalies
Regroupement K-Means Regroupement K-Means K-Means Regroupement de données, segmentation d'utilisateurs, segmentation d'images
Analyse en composantes principales Analyse en composantes principales PCA Réduction de dimensionnalité des données, visualisation de données de grande dimension, débruitage des caractéristiques
Algorithmes d'apprentissage profond
Réseau de neurones artificiels Réseau de neurones artificiels ANN Classification et régression simples, validation de modèle de référence
Réseau de neurones convolutif Réseau de neurones convolutif CNN Reconnaissance d'images, détection d'objets, analyse vidéo, diagnostic d'images médicales
Réseau de neurones récurrent Réseau de neurones récurrent RNN Traitement des données séquentielles, génération de texte, reconnaissance vocale
Réseau de mémoire à long terme et à court terme Mémoire à long terme et à court terme LSTM Traduction de textes à longues séquences, synthèse vocale, prédiction de séries temporelles
Unité récurrente à portes Unité récurrente à portes GRU Classification de séquences, analyse de sentiments, systèmes de dialogue
Réseau antagoniste génératif Réseau antagoniste génératif GAN Génération d'images, transfert de style, augmentation de données, reconstruction par super-résolution
Transformer Transformer Transformer Traduction en langage naturel, résumé de texte, tâches multimodales, architecture de base pour les grands modèles
Autoencodeur Autoencodeur AE Compression de données, détection d'anomalies, extraction de caractéristiques
Autoencodeur variationnel Autoencodeur variationnel VAE Tâches génératives, débruitage de données, génération d'images
Réseau de neurones de graphes Réseau de neurones de graphes GNN Analyse de réseaux sociaux, prédiction de structure moléculaire, raisonnement sur graphe de connaissances
Autres extensions