Maison  >  Article  >  Périphériques technologiques  >  Utilisez Scikit-Learn pour maîtriser rapidement les méthodes de prédiction du machine learning

Utilisez Scikit-Learn pour maîtriser rapidement les méthodes de prédiction du machine learning

王林
王林avant
2023-05-27 14:26:031416parcourir

Dans cet article, nous aborderons les différences entre les fonctions de prédiction et leurs utilisations.

Dans l'apprentissage automatique, les méthodes prédire et prédire_proba, prédire_log_proba et décision_function sont utilisées pour faire des prédictions basées sur le modèle entraîné.

méthode de prévision

Utilisez la méthode de prédiction pour effectuer des prédictions de classification binaire ou de classification multivariée et générer des étiquettes de prédiction. Par exemple, si vous avez entraîné un modèle de régression logistique pour prédire si un client achètera un produit, vous pouvez utiliser la méthode de prévision pour prédire si un nouveau client achètera le produit.

Nous utiliserons l'ensemble de données sur le cancer du sein de scikit-learn. Cet ensemble de données contient des observations de tumeurs et les étiquettes correspondantes indiquant si la tumeur est maligne ou bénigne.

import numpy as npfrom sklearn.svm import SVCfrom sklearn.preprocessing import StandardScalerfrom sklearn.pipeline import make_pipelineimport matplotlib.pyplot as pltfrom sklearn.datasets import load_breast_cancer# 加载数据集dataset = load_breast_cancer(as_frame=True)# 创建特征和目标X = dataset['data']y = dataset['target']# 将数据集分割成训练集和测试集from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y , test_size=0.25, random_state=0)# 我们创建一个简单的管道来规范数据并使用`SVC`分类器训练模型svc_clf = make_pipeline(StandardScaler(),SVC(max_iter=1000, probability=True))svc_clf.fit(X_train, y_train)
# 我们正在预测X_test的第一个条目print(svc_clf.predict(X_test[:1]))
# 预测X_test的第一个条目属于哪一类[0]

méthode predict_proba

Utilisez la fonction prédict_proba pour faire une prédiction de probabilité pour chaque catégorie et renvoyer l'estimation de probabilité possible de chaque étiquette de catégorie. Dans les problèmes de classification binaire ou multivariée, cette approche est couramment utilisée pour déterminer la probabilité de chaque résultat possible. Par exemple, si vous avez entraîné un modèle pour classer les images d'animaux en chats, chiens et chevaux, vous pouvez utiliser la méthode prédict_proba pour obtenir des estimations de probabilité pour chaque étiquette de catégorie.

print(svc_clf.predict_proba(X_test[:1]))
[[0.99848307 0.00151693]]

Méthode predict_log_proba

La méthode prédict_log_proba est similaire à prédict_proba, mais elle renvoie le logarithme de l'estimation de probabilité au lieu de la probabilité brute. Ceci est très utile pour traiter des valeurs de probabilité très petites ou très grandes, car cela peut éviter les problèmes de dépassement ou de dépassement numérique.

print(svc_clf.predict_log_proba(X_test[:1]))
rrree

méthode decision_function

Les modèles de classification binaire linéaire peuvent utiliser la méthode decision_function. Il génère un score pour chaque point de données d'entrée, qui peut être utilisé pour déduire son étiquette de classe correspondante. Les seuils qui classent les points de données comme positifs ou négatifs peuvent être définis en fonction de la connaissance de l'application ou du domaine.

[[-1.51808474e-03 -6.49106473e+00]]
print(svc_clf.decision_function(X_test[:1]))

Résumé

  • Utilisez prédire pour les problèmes de classification binaire ou multivariée lorsque vous souhaitez obtenir l'étiquette de classe prédite des données d'entrée.
  • Utilisez prédict_proba pour les problèmes de classification binaire ou multivariée lorsque vous souhaitez obtenir une estimation de probabilité pour chaque étiquette de classe possible.
  • Utilisez prédict_log_proba lorsque vous devez gérer des valeurs de probabilité très petites ou très grandes, ou lorsque vous souhaitez éviter les problèmes de sous-débordement ou de débordement numérique.
  • Utilisez Decision_function pour les problèmes de classification binaire avec des modèles linéaires lorsque vous souhaitez obtenir le score pour chaque point de données d'entrée.

Remarque : les méthodes de prédiction de certains classificateurs peuvent être incomplètes ou nécessiter des paramètres supplémentaires pour accéder à la fonction. Par exemple : SVC doit définir le paramètre de probabilité sur True pour utiliser la prédiction de probabilité.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer