Um einen trainierten Klassifikator in Python mithilfe des Moduls „pickle“ auszuwählen, können wir ein paar einfache Schritte ausführen. Durch Beizen können wir ein Objekt serialisieren und in einer Datei speichern, die dann geladen und später verwendet werden kann. Dies ist besonders nützlich, wenn wir ein trainiertes Modell für maschinelles Lernen, beispielsweise einen Regressionsklassifikator, für die zukünftige Verwendung speichern möchten, ohne es jedes Mal neu trainieren zu müssen.
Zuerst müssen wir das Modul „pickle“ in unser Python-Skript importieren:
python import pickle
Als nächstes müssen wir unseren Klassifikator trainieren und das trainierte Modell erhalten. Nehmen wir an, wir haben bereits einen Regressionsklassifikator trainiert und ihn in einer Variablen namens „regression_model“ gespeichert.
Um das trainierte Modell zu picken, können wir die Funktion „pickle.dump()“ verwenden. Diese Funktion benötigt zwei Parameter: das Objekt, das wir auswählen möchten (in diesem Fall der trainierte Klassifikator) und das Dateiobjekt, in dem wir das ausgewählte Objekt speichern möchten. Mit der Funktion „open()“ können wir eine Datei im Schreib-Binärmodus öffnen.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Im obigen Code öffnen wir eine Datei mit dem Namen „regression_model.pkl“ im Schreibbinärmodus („wb“) und übergeben sie als zweiten Parameter an „pickle.dump()“. Der trainierte Klassifikator, der in der Variablen „regression_model“ gespeichert ist, wird ausgewählt und in der Datei gespeichert.
Jetzt haben wir unseren geschulten Klassierer erfolgreich eingelegt. Mit der Funktion „pickle.load()“ können wir es jederzeit wieder in den Speicher laden, wenn wir es benötigen.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Im obigen Code öffnen wir die eingelegte Datei im Binärlesemodus („rb“) und übergeben sie als Parameter an „pickle.load()“. Das eingelegte Objekt wird in die Variable „loaded_model“ geladen, die für Vorhersagen oder andere Operationen verwendet werden kann.
Hier ist ein vollständiges Beispiel, das das Beizen und Laden eines trainierten Regressionsklassifikators demonstriert:
python import pickle from sklearn.linear_model import LinearRegression # Training the regression model X_train = [[1], [2], [3], [4], [5]] y_train = [2, 4, 6, 8, 10] regression_model = LinearRegression() regression_model.fit(X_train, y_train) # Pickling the trained model with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file) # Loading the pickled model with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file) # Using the loaded model for prediction X_test = [[6]] predicted_value = loaded_model.predict(X_test) print(predicted_value)
Im obigen Beispiel trainieren wir zunächst ein einfaches lineares Regressionsmodell mit der Klasse „LinearRegression“ aus dem Modul „sklearn.linear_model“. Anschließend speichern wir das trainierte Modell in einer Datei mit dem Namen „regression_model.pkl“. Später laden wir das eingelegte Modell aus der Datei und verwenden es, um den Wert für eine Testeingabe „X_test“ vorherzusagen.
Indem wir den trainierten Klassifikator auswählen und laden, können wir das Modell wiederverwenden, ohne es erneut trainieren zu müssen, was eine erhebliche Menge an Zeit und Rechenressourcen einsparen kann.
Weitere aktuelle Fragen und Antworten zu EITC/AI/MLP Maschinelles Lernen mit Python:
- Was ist die Support Vector Machine (SVM)?
- Eignet sich der K-Algorithmus für die nächsten Nachbarn gut zum Erstellen trainierbarer Modelle für maschinelles Lernen?
- Wird der SVM-Trainingsalgorithmus üblicherweise als binärer linearer Klassifikator verwendet?
- Können Regressionsalgorithmen mit kontinuierlichen Daten arbeiten?
- Ist die lineare Regression besonders gut für die Skalierung geeignet?
- Wie passt die mittlere Verschiebung der dynamischen Bandbreite den Bandbreitenparameter basierend auf der Dichte der Datenpunkte adaptiv an?
- Welchen Zweck hat die Zuweisung von Gewichtungen zu Feature-Sets in der Implementierung der dynamischen Bandbreite mit mittlerer Verschiebung?
- Wie wird der neue Radiuswert im Ansatz der mittleren Verschiebung der dynamischen Bandbreite bestimmt?
- Wie geht der Ansatz der mittleren Verschiebung der dynamischen Bandbreite mit der korrekten Suche nach Schwerpunkten um, ohne den Radius hart zu kodieren?
- Was ist die Einschränkung bei der Verwendung eines festen Radius im Mean-Shift-Algorithmus?
Weitere Fragen und Antworten finden Sie unter EITC/AI/MLP Machine Learning mit Python