Maison >développement back-end >Tutoriel Python >Apprentissage supervisé vs non supervisé

Apprentissage supervisé vs non supervisé

Linda Hamilton
Linda Hamiltonoriginal
2025-01-26 04:10:10954parcourir

Supervised vs. Unsupervised Learning

L'apprentissage automatique (ML) est un outil puissant qui permet aux ordinateurs d'apprendre à partir de données et de faire des prédictions ou des décisions. Mais tous les apprentissages automatiques ne sont pas identiques : il existe différents types d’apprentissage, chacun adapté à des tâches spécifiques. Les deux types les plus courants sont l'apprentissage supervisé et l'apprentissage non supervisé. Dans cet article, nous explorerons les différences entre eux, fournirons des exemples concrets et passerons en revue des extraits de code pour vous aider à comprendre leur fonctionnement.


Qu'est-ce que l'apprentissage supervisé ?

L'apprentissage supervisé est un type d'apprentissage automatique dans lequel un algorithme apprend à partir de données étiquetées. En d’autres termes, les données que vous fournissez au modèle incluent les entités en entrée et les sorties correctes (étiquettes). L’objectif est que le modèle apprenne la relation entre les entrées et les sorties afin de pouvoir faire des prédictions précises sur de nouvelles données invisibles.

Exemples concrets d'apprentissage supervisé

Détection du spam par courrier électronique :

  • Saisie : Le texte de l'e-mail.
  • Sortie : Libellé indiquant si l'e-mail est "Spam" ou "Not Spam".
  • Le modèle apprend à classer les e-mails en fonction d'exemples étiquetés.

Prévisions des prix des maisons :

  • Entrée : Caractéristiques de la maison (par exemple, superficie en pieds carrés, nombre de chambres, emplacement).
  • Sortie : Prix de la maison.
  • Le modèle apprend à prédire les prix sur la base de données historiques.

Diagnostic médical :

  • Entrée : données du patient (par exemple, symptômes, résultats de laboratoire).
  • Sortie : Diagnostic (par exemple « Santé » ou « Diabète »).
  • Le modèle apprend à diagnostiquer sur la base de dossiers médicaux étiquetés.

Qu'est-ce que l'apprentissage non supervisé ?

L'apprentissage non supervisé est un type d'apprentissage automatique dans lequel les algorithmes apprennent à partir de données non étiquetées. Contrairement à l’apprentissage supervisé, aucun résultat correct n’est fourni. Au lieu de cela, les modèles tentent de trouver par eux-mêmes des modèles, des structures ou des relations dans les données.

Exemples concrets d'apprentissage non supervisé

Segmentation client :

  • Entrée : données client (par exemple, âge, historique des achats, emplacement).
  • Résultat : groupes de clients similaires (par exemple, « acheteurs à haute fréquence », « acheteurs à petit budget »).
  • Le modèle identifie des groupes de clients ayant un comportement similaire.

Détection d'anomalies :

  • Entrée : données de trafic réseau.
  • Résultat : identifiez les modèles inhabituels pouvant indiquer une cyberattaque.
  • Le modèle détecte les valeurs aberrantes ou les anomalies dans les données.

Analyse du panier de marché :

  • Entrée : données de transaction d'épicerie.
  • Sortie : groupes de produits qui sont souvent achetés ensemble (par exemple, « pain et beurre »).
  • Le modèle identifie les associations entre les produits.

Les principales différences entre l'apprentissage supervisé et l'apprentissage non supervisé

**方面** **监督学习** **无监督学习**
**数据** 标记的(提供输入和输出) 未标记的(仅提供输入)
**目标** 预测结果或对数据进行分类 发现数据中的模式或结构
**示例** 分类、回归 聚类、降维
**复杂性** 更容易评估(已知输出) 更难评估(没有基本事实)
**用例** 垃圾邮件检测、价格预测 客户细分、异常检测
---

Exemple de code

Examinons un peu de code et voyons comment l'apprentissage supervisé et non supervisé fonctionne dans la pratique. Nous utiliserons Python et la populaire bibliothèque Scikit-learn.

Exemple d'apprentissage supervisé : Prédire les prix de l'immobilier

Nous utiliserons un modèle de régression linéaire simple pour prédire le prix d'une maison en fonction de caractéristiques telles que la superficie en pieds carrés.

<code class="language-python"># 导入库
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 创建样本数据集
data = {
    'SquareFootage': [1400, 1600, 1700, 1875, 1100, 1550, 2350, 2450, 1425, 1700],
    'Price': [245000, 312000, 279000, 308000, 199000, 219000, 405000, 324000, 319000, 255000]
}
df = pd.DataFrame(data)

# 特征 (X) 和标签 (y)
X = df[['SquareFootage']]
y = df['Price']

# 将数据分成训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 做出预测
y_pred = model.predict(X_test)

# 评估模型
mse = mean_squared_error(y_test, y_pred)
print(f"均方误差:{mse:.2f}")</code>

Exemple d'apprentissage non supervisé : segmentation client

Nous utiliserons l'algorithme de clustering K-means pour regrouper les clients en fonction de leur âge et de leurs habitudes de dépenses.

<code class="language-python"># 导入库
import numpy as np
import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 创建样本数据集
data = {
    'Age': [25, 34, 22, 45, 32, 38, 41, 29, 35, 27],
    'SpendingScore': [30, 85, 20, 90, 50, 75, 80, 40, 60, 55]
}
df = pd.DataFrame(data)

# 特征 (X)
X = df[['Age', 'SpendingScore']]

# 训练 K 均值聚类模型
kmeans = KMeans(n_clusters=3, random_state=42)
df['Cluster'] = kmeans.fit_predict(X)

# 可视化集群
plt.scatter(df['Age'], df['SpendingScore'], c=df['Cluster'], cmap='viridis')
plt.xlabel('年龄')
plt.ylabel('消费评分')
plt.title('客户细分')
plt.show()</code>

Quand utiliser l'apprentissage supervisé ou l'apprentissage non supervisé

Quand utiliser l'apprentissage supervisé :

  • Vous avez étiqueté les données.
  • Vous souhaitez prédire des résultats ou classer des données.
  • Exemples : Prédire les ventes, classer les images, détecter les fraudes.

Quand utiliser l'apprentissage non supervisé :

  • Vous disposez de données non étiquetées.
  • Vous souhaitez découvrir des motifs ou des structures cachés.
  • Exemples : regroupez les clients, réduisez les dimensions des données et recherchez les anomalies.

Conclusion

L'apprentissage supervisé et l'apprentissage non supervisé sont deux méthodes de base de l'apprentissage automatique, chacune avec ses propres avantages et cas d'utilisation. L'apprentissage supervisé est idéal pour faire des prédictions lorsque vous disposez de données étiquetées, tandis que l'apprentissage non supervisé est idéal lorsque vous souhaitez explorer et découvrir des modèles dans des données non étiquetées.

En comprenant les différences et en vous entraînant avec des exemples concrets, tels que ceux présentés dans cet article, vous maîtriserez ces techniques de base d'apprentissage automatique. Si vous avez des questions ou souhaitez partager vos propres expériences, n'hésitez pas à laisser un commentaire ci-dessous.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn