Beim Studium von PyCaret scheinen unsichtbare Daten mit Testdaten verwechselt zu werden, aber unsichtbare Daten sind Testdaten. Wenn Sie dies jedoch ausführlich erläutern,
Erstellen Sie ein Vorhersagemodell mit Trainingsdaten Erstellen Sie ein endgültiges Vorhersagemodell, indem Sie Trainingsdaten mit Testdaten kombinieren Geben Sie abschließend unsichtbare Daten in das Modell ein, um die Genauigkeit des Modells zu überprüfen
Es wird der Fluss sein.
Maschinelles Lernen in wenigen Zeilen (Teil 1). Erklären Sie PyCaret im Detail. Von der Datensatzvorbereitung bis zum Genauigkeitsvergleich mehrerer Modelle. wird fortgesetzt. Beim letzten Mal haben wir alles getan, von der Vorbereitung des Datensatzes bis zum Vergleich der Genauigkeit der Modelle.
In Teil 2 erstellen wir das Modell, zeichnen es und erstellen das endgültige Modell.
Der Zweck von compare_models () besteht nicht darin, trainierte Modelle zu erstellen, sondern leistungsstarke Modelle zu bewerten und Modellkandidaten auszuwählen. Dieses Mal werden wir das Modell anhand eines zufälligen Waldes trainieren.
code.py
rf = create_model('rf')
tune_model () ist eine zufällige Suche nach Hyperparametern. Standardmäßig ist die Genauigkeit optimiert.
code.py
tuned_rf = tune_model('rf')
Wenn Sie beispielsweise in einer zufälligen Gesamtstruktur ein Modell erstellen möchten, das den AUC-Wert erhöht, lautet der Code wie folgt.
code.py
tuned_rf_auc = tune_model('rf', optimize = 'AUC')
Das mit Tuning_Model erstellte Modell ist 1,45% genauer, daher werde ich dies verwenden.
Führen Sie AUC Plot aus
code.py
plot_model(tuned_rf, plot = 'auc')
Precision-Recall Curve
code.py
plot_model(tuned_rf, plot = 'pr')
Feature Importance Plot
code.py
plot_model(tuned_rf, plot='feature')
code.py
evaluate_model(tuned_rf)
Confusion Matrix
code.py
plot_model(tuned_rf, plot = 'confusion_matrix')
Überprüfen Sie vor Abschluss des Vorhersagemodells anhand der Testdaten, ob das Trainingsmodell nicht überpasst ist. Wenn der Unterschied in der Genauigkeit groß wird, muss er berücksichtigt werden, aber diesmal gibt es keinen großen Unterschied in der Genauigkeit, also werden wir fortfahren.
code.py
predict_model(tuned_rf);
Schließlich ist die endgültige Version des Vorhersagemodells fertiggestellt. Das Modell hier ist eine Kombination aus Trainings- und Testdaten.
code.py
final_rf = finalize_model(tuned_rf)
print(final_rf)
RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None, criterion='gini', max_depth=10, max_features='auto', max_leaf_nodes=None, max_samples=None, min_impurity_decrease=0.0, min_impurity_split=None, min_samples_leaf=2, min_samples_split=10, min_weight_fraction_leaf=0.0, n_estimators=70, n_jobs=None, oob_score=False, random_state=123, verbose=0, warm_start=False)
code.py
predict_model(final_rf);
Die Genauigkeit und AUC-Leistung sind hoch. Dies liegt daran, dass die Testdaten kombiniert wurden, um die Qualität des Vorhersagemodells zu verbessern.
Schließlich werden wir unsichtbare Daten (1200 Datensätze) verwenden, um das Vorhersagemodell zu bewerten.
code.py
unseen_predictions = predict_model(final_rf, data=data_unseen)
unseen_predictions.head()
Beschriftung und Partitur wurden dem Datensatz hinzugefügt. Label ist das vom Modell vorhergesagte Label. Punktzahl ist die Wahrscheinlichkeit der Vorhersage.
Es ist schwierig, von vorne zu beginnen, wenn Sie mehr neue Daten vorhersagen können. Save_model wird in PyCaret vorbereitet und Sie können das Modell speichern.
code.py
save_model(final_rf,'Final RF Model')
Transformation Pipeline and Model Succesfully Saved
Gehen Sie wie folgt vor, um das Modell zu laden:
code.py
saved_final_rf = load_model('Final RF Model')
Transformation Pipeline and Model Sucessfully Loaded
Verwenden Sie die unsichtbaren Daten von früher. Das Ergebnis ist das gleiche wie zuvor, daher werde ich es weglassen.
code.py
new_prediction = predict_model(saved_final_rf, data=data_unseen)
code.py
new_prediction.head()
Ich habe versucht, die Erklärung des Level Beginner-Tutorials auszuführen. Ich bin überrascht, dass dies bisher mit einem Dutzend Zeilen möglich ist. Ich habe das Gefühl, dass die Hürden für maschinelles Lernen noch geringer geworden sind.
Wenn Sie Vorschläge haben, kommentieren Sie bitte. Danke fürs Lesen.
Recommended Posts