Dans l'apprentissage automatique, vous divisez les données en deux parties, l'une pour la formation et l'autre pour les tests, et mesurez la précision. Par conséquent, KFold facilite la division des données. Il existe également Static KFold et Shuffle Split, mais cette fois j'utiliserai KFold.
KFold divise les données en k ensembles de données, par exemple, si vous les divisez en 10, 9 seront utilisés comme ensembles de données d'entraînement et les 1 restants seront utilisés pour les tests. En passant, dans ce cas, testez 10 fois afin que les 10 ensembles de données séparés soient toujours utilisés une fois pour les tests. Le code par défaut ressemble à ceci:
KFold
from sklearn.cross_validation import KFold
KFold(n_splits=3, shuffle=False, random_state=None)
Et ci-dessous sont les paramètres dans KFold.
n_split Spécifie le nombre d'éléments de données à diviser. la valeur par défaut est 3. Le test est répété pour le nombre de valeurs numériques spécifié ici.
shuffle La valeur par défaut est False, mais en définissant ce paramètre sur True, vous pouvez créer des groupes en récupérant de manière aléatoire des valeurs dans l'ensemble de données au lieu de simplement regrouper des nombres consécutifs.
random_state En faisant de cela une valeur numérique avec un paramètre de contrôle de nombre aléatoire, le même ensemble de données peut être obtenu à chaque fois.
cross_val_score est un outil pratique qui vous permet de spécifier le classificateur, les données d'entraînement et les données de test et de déterminer leur précision. Voici le code par défaut.
cross_val_score
from sklearn.model_selection import cross_val_score
cross_val_score(estimator, X, y=None, groups=None, scoring=None, cv=None, n_jobs=1, verbose=0, fit_params=None, pre_dispatch='2*n_jobs')
Voici une description des principaux paramètres.
estimator Cela spécifiera le classificateur.
X Spécification des données pour la formation
y Spécification des données pour les tests
scoring Spécifiez comment marquer. En plus de la précision de précision, il existe average_precision et f1. Lien
cv Abréviation de validation croisée, vous pouvez spécifier comment fractionner les données.
C'est une méthode pour appliquer les principales méthodes d'apprentissage automatique en une seule fois. Cette fois, nous utiliserons DecisionTreeClassifier, KNeighborsClassifier et SVC. Tout d'abord, veuillez avoir un code. En passant, ici, nous allons procéder dans la mesure où l'ensemble de données d'apprentissage et l'ensemble de données de test ont déjà été séparés.
machine_learning
from sklearn.model_selection import KFold
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
#Stocker le modèle d'apprentissage automatique dans la liste
models = []
models.append(("KNC",KNeighborsClassifier()))
models.append(("DTC",DecisionTreeClassifier()))
models.append(("SVM",SVC()))
#Application de plusieurs classificateurs
results = []
names = []
for name,model in models:
kfold = KFold(n_splits=10, random_state=42)
result = cross_val_score(model,X_train,Y_train, cv = kfold, scoring = "accuracy")
names.append(name)
results.append(result)
#Afficher le score du classificateur appliqué
for i in range(len(names)):
print(names[i],results[i].mean())
Le résultat est
KNC 0.88 DTC 0.91 SVM 0.79
Je pense que ce sera comme ça.
Recommended Posts