Es besteht kein Zweifel daran, dass bei der Anwendung von Machine-Studying-Modellen in Information-Science-Aufgaben die Bewertung der Leistung von Modellen der wichtigste Schritt ist.
Hier kommen Bewertungsmetriken ins Spiel.
In diesem Artikel behandeln wir alles über diese Metriken, von der Regression bis zur Klassifizierung und Clustering, alles mit Hilfe des revolutionären Instruments ChatGPT.
Aber beginnen wir zunächst mit den Grundlagen.
Bewertungsmetriken sind Maßnahmen zur Bewertung der Leistung von Modellen für maschinelles Lernen.
Sie ermöglichen es uns, die Qualität der Vorhersagen dieser Modelle zu quantifizieren. Die Metriken sind für verschiedene Arten von Problemen unterschiedlich, z. B. Regressions-, Klassifizierungs- und Clustering-Probleme.
Wir brauchen sie, weil sie eine Möglichkeit bieten, den Grad der Genauigkeit und Zuverlässigkeit unserer Modelle zu verstehen. Sie helfen bei der Abstimmung und Optimierung von Modellen und sind für den Vergleich und die Auswahl der leistungsstärksten Modelle unerlässlich.
Regressionsmetriken
Alle Regressionsalgorithmen können anhand dieser Metriken ausgewertet werden.
Zum Beispiel lineare Regression, Entscheidungsbäume, Random Forest, Assist-Vektor-Regression oder jeder andere Regressionsalgorithmus.
Bei der Wahl der Metrik kommt es eher auf die Besonderheiten Ihres Issues als auf den von Ihnen verwendeten Algorithmus an.
Wenn beispielsweise Ausreißer ein Drawback darstellen, möchten Sie möglicherweise stattdessen den mittleren absoluten Fehler verwenden Mittlerer absoluter Fehler. R-Quadrat wird häufig verwendet, wenn Sie wissen möchten, wie viel Varianz in den Daten Ihr Modell erklären kann.
Klassifizierungsmetriken
Es gibt auch viele Klassifizierungsmetriken, einschließlich, aber nicht beschränkt auf Genauigkeit, Präzision, Rückruf, F1-Rating, ROC AUC, Log-Verlust und Gini-Koeffizient.
Ähnlich wie Regressionsmetriken können Klassifizierungsmetriken für alle Klassifizierungsalgorithmen wie logistische Regression, Entscheidungsbäume, Random Forest, Assist Vector Machines, Naive Bayes usw. verwendet werden.
Die Wahl der Metrik hängt vom jeweiligen Drawback ab. Wenn beispielsweise sowohl die falsch-positiven als auch die falsch-negativen Ergebnisse für Ihr Drawback gleichermaßen wichtig sind, können Sie den F1-Rating (harmonisches Mittel aus Präzision und Rückruf) verwenden.
Wenn die optimistic Klasse selten ist, können Sie Präzision, Rückruf oder F1-Rating anstelle von Genauigkeit verwenden. ROC AUC wird häufig verwendet, wenn Sie die Leistung Ihres Modells unabhängig vom Klassifizierungsschwellenwert messen möchten.
Clustering-Metriken
Es gibt mehrere Clustering-Metriken, um die Qualität von Clustering-Algorithmen zu messen. Einige davon umfassen den Silhouette-Koeffizienten, den Davies-Bouldin-Index, den Rand-Index, auf gegenseitiger Info basierende Bewertungen usw.
Diese Metriken können mit allen Clustering-Algorithmen wie Ok-Means, hierarchischem Clustering, DBSCAN usw. verwendet werden.
Die Wahl der Metrik hängt von den Besonderheiten Ihres Issues und der Artwork des Clustering-Algorithmus ab.
Beispielsweise ist der Silhouette-Koeffizient eine gute Metrik, wenn der Datensatz nicht zu verrauscht ist und erwartet wird, dass die Cluster intestine voneinander getrennt sind.
Andererseits kann der Davies-Bouldin-Index verwendet werden, wenn der Datensatz verrauscht ist, und der Rand-Index oder auf gegenseitiger Info basierende Bewertungen sind nützlich, wenn die wahren Bezeichnungen bekannt sind.
In diesem Abschnitt werden wir sehen, wie diese Metriken in Python mithilfe von ChatGPT angewendet werden können. Ich kann Ihnen Beispiele für die Anwendung dieser Algorithmen geben, aber das ist mittlerweile altmodisch.
Durch die Eingabe von Hinweisen zu dieser Aufgabe ist dieser Artikel nun reproduzierbar, d. h. Sie können das, was wir getan haben, wiederholen.
Beginnen wir mit der Regression.
Kodierung von Regressionsbewertungsmetriken mit ChatGPT
Jetzt in diesem Stadium, vorab Rückschritt oder einAnwendung von Regressionsalgorithmen Wissen wird für Sie großartig sein.
Großartig, fangen wir an.
Immediate : Ich möchte mein Regressionsmodell bewerten. Können Sie mir Code in Sci-Package Study geben, um mein Regressionsmodell auszuwerten und die Ergebnisse im pred_df-Datenrahmen zu speichern?
ChatGPT: Sicher, für die Bewertung eines Regressionsmodells berücksichtigen Sie normalerweise Metriken wie den mittleren absoluten Fehler (MAE), den mittleren quadratischen Fehler (MSE), den mittleren quadratischen Fehler (RMSE) und den R²-Rating.
Hier ist ein Beispiel, wie Sie dies mit Hilfe von scikit-learn in Python tun können. Dabei gehe ich davon aus, dass Sie über Ihre vorhergesagten Werte und die wahren Werte verfügen:
from sklearn import metrics
import pandas as pd
import numpy as np# assuming y_test are the true values and y_pred are the expected values.
# change these along with your precise knowledge.
y_test = np.array([1.2, 3.4, 2.2, 4.5, 3.3, 5.6])
y_pred = np.array([1.3, 3.5, 2.1, 4.4, 3.2, 5.7])
mae = metrics.mean_absolute_error(y_test, y_pred)
mse = metrics.mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse) # or you need to use 'rmse = np.sqrt(metrics.mean_squared_error(y_test, y_pred))'
r2 = metrics.r2_score(y_test, y_pred)
# create a knowledge body
pred_df = pd.DataFrame({'True Values': y_test, 'Predicted Values': y_pred})
pred_df['Absolute Error'] = np.abs(pred_df['True Values'] - pred_df['Predicted Values'])
# print outcomes
print('Imply Absolute Error:', mae)
print('Imply Squared Error:', mse)
print('Root Imply Squared Error:', rmse)
print('R2 Rating:', r2)
Mit diesem Code wird die pred_df
Der Datenrahmen enthält Ihre wahren Werte, vorhergesagten Werte und den absoluten Fehler. Der mittlere absolute Fehler, der mittlere quadratische Fehler, der mittlere quadratische Fehler und der R²-Wert werden für Ihre Auswertung ausgedruckt. Bitte ersetzen y_test
Und y_pred
mit Ihren tatsächlichen Check- und vorhergesagten Daten.
Kodierung von Klassifizierungsbewertungsmetriken mit ChatGPT
Großartig, jetzt ist es an der Zeit, unsere zu bewerten Einstufung Modell. Wenn Sie das Beispiel der Anwendung von mehr als einem Klassifizierungsalgorithmus in einem realen Projekt sehen möchten, Hier.
Immediate : Ich möchte mein Klassifizierungsmodell bewerten. Können Sie mir Code in Sci-Package Study geben, um mein Klassifizierungsmodell auszuwerten und die Ergebnisse im pred_df-Datenrahmen zu speichern?
ChatGPT: Sicher, für die Bewertung eines Klassifizierungsmodells berücksichtigen Sie normalerweise Metriken wie Genauigkeit, Präzision, Rückruf, F1-Rating und die Verwirrungsmatrix.
Hier ist ein Beispiel, wie Sie dies in Python mit scikit-learn tun können. Dabei gehe ich davon aus, dass Sie über Ihre vorhergesagten und die wahren Bezeichnungen verfügen:
from sklearn import metrics
import pandas as pd
import numpy as np# assuming y_test are the true labels and y_pred are the expected labels
# change these along with your precise knowledge
y_test = np.array([0, 1, 1, 0, 1, 0])
y_pred = np.array([0, 1, 0, 0, 1, 1])
accuracy = metrics.accuracy_score(y_test, y_pred)
precision = metrics.precision_score(y_test, y_pred)
recall = metrics.recall_score(y_test, y_pred)
f1_score = metrics.f1_score(y_test, y_pred)
confusion_mat = metrics.confusion_matrix(y_test, y_pred)
# create a knowledge body
pred_df = pd.DataFrame({'True Labels': y_test, 'Predicted Labels': y_pred})
# print outcomes
print('Accuracy:', accuracy)
print('Precision:', precision)
print('Recall:', recall)
print('F1 Rating:', f1_score)
print('Confusion Matrix:n', confusion_mat)
Mit diesem Code wird die pred_df
Der Datenrahmen enthält Ihre wahren Beschriftungen und vorhergesagten Beschriftungen. Die Genauigkeit, Präzision, Erinnerung, F1-Punktzahl und Verwirrungsmatrix werden für Ihre Bewertung ausgedruckt. Bitte ersetzen y_test
Und y_pred
mit Ihren tatsächlichen Check- und vorhergesagten Daten.
Bitte beachten Sie, dass die precision_score
, recall_score
Und f1_score
Funktionen sind für binäre Klassifizierungsaufgaben konzipiert. Wenn Sie an einem Klassifizierungsproblem mit mehreren Klassen arbeiten, müssen Sie das anpassen common
Parameter (zu den Optionen gehören „Mikro“, „Makro“, „Gewichtet“ und „Keine“). Der Code behandelt diesen Fall derzeit nicht.
Codieren von Clustering-Bewertungsmetriken mit ChatGPT
Clustering ist nicht so berühmt wie Regression oder Klassifizierung, aber Sie müssen alles wissen.
Immediate : Ich möchte mein Clustering-Modell bewerten. Können Sie mir Code in Sci-Package Study geben, um mein Klassifizierungsmodell auszuwerten und die Ergebnisse im pred_df-Datenrahmen zu speichern?
ChatGPT: Die Bewertung von Clustering-Modellen kann etwas komplizierter sein als die Bewertung überwachter Modelle, da die wahren Bezeichnungen in Clustering-Szenarien oft nicht bekannt sind. Wenn Sie jedoch über die wahren Bezeichnungen verfügen, können Sie Metriken wie den Adjusted Rand Index (ARI) oder die Normalized Mutual Info (NMI) verwenden.
Wenn Sie keine echten Etiketten haben, können Sie Metriken wie den Silhouette-Rating oder den Davies-Bouldin-Index verwenden. Diese bewerten, wie nahe die Punkte im selben Cluster beieinander liegen und wie weit verschiedene Cluster voneinander entfernt sind. Hier zeige ich Ihnen, wie Sie Silhouette Rating verwenden.
Im Folgenden finden Sie ein Beispiel für die Verwendung dieser Metriken:
from sklearn import metrics
import pandas as pd
import numpy as np# assuming labels_true are the true labels and labels_pred are the labels predicted by your mannequin
# change these along with your precise knowledge
labels_true = np.array([0, 1, 1, 0, 1, 0])
labels_pred = np.array([0, 1, 0, 0, 1, 1])
# For the silhouette rating, you additionally want the characteristic matrix, which we are going to name X.
# Exchange X along with your precise knowledge.
X = np.array([[1, 2], [1, 4], [1, 0],
[4, 2], [4, 4], [4, 0]])
ari = metrics.adjusted_rand_score(labels_true, labels_pred)
nmi = metrics.normalized_mutual_info_score(labels_true, labels_pred)
silhouette = metrics.silhouette_score(X, labels_pred, metric='euclidean')
# create a knowledge body
pred_df = pd.DataFrame({'True Labels': labels_true, 'Predicted Labels': labels_pred})
# print outcomes
print('Adjusted Rand Index:', ari)
print('Normalized Mutual Info:', nmi)
print('Silhouette Rating:', silhouette)
In diesem Code ist die pred_df
Der Datenrahmen enthält Ihre wahren Beschriftungen und vorhergesagten Beschriftungen. Der angepasste Rand-Index, die normalisierten gegenseitigen Informationen und der Silhouette-Rating werden für Ihre Auswertung ausgedruckt. Bitte ersetzen labels_true
, labels_pred
Und X
mit Ihren tatsächlichen Daten.
Wenn Sie keine echten Beschriftungen haben, können Sie ARI oder NMI nicht berechnen und Sie sollten diese Zeilen auskommentieren oder löschen. Wenn Sie eine andere Metrik für die Silhouettenbewertung verwenden möchten, ersetzen Sie sie ebenfalls 'euclidean'
mit Ihrer gewünschten Metrik.
Abschluss
Das Erfassen der Grundlagen von Bewertungsmetriken und deren Implementierung in Python mit ChatGPT bringt uns der Beherrschung des maschinellen Lernens zweifellos einen Schritt näher.
Diese Metriken dienen als Orientierungshilfe und helfen uns, die Stärken und Schwächen unserer Modelle zu identifizieren, ihre Leistung zu optimieren und letztendlich komplexe Probleme in der Datenwissenschaft effizienter zu lösen.
Mit ChatGPT eröffnen sich spannende Möglichkeiten zur Verbesserung der Qualität und Zuverlässigkeit unserer Modelle für maschinelles Lernen.
Danke fürs Lesen!
Hier ist mein NumPy-Spickzettel.
Hier ist der Quellcode von „Wie wird man Milliardär?„Datenprojekt.
Hier ist der Quellcode von „Klassifizierungsaufgabe mit 6 verschiedenen Algorithmen unter Verwendung von Python„Datenprojekt.
Hier ist der Quellcode von „Entscheidungsbaum in der Energieeffizienzanalyse„Datenprojekt.
Hier ist der Quellcode von „DataDrivenInvestor 2022 Artikelanalyse„Datenprojekt.
Falls Sie noch kein Medium-Mitglied sind und Ihr Wissen durch Lesen erweitern möchten, hier ist meine Empfehlung Verknüpfung.
Hier ist mein E-Ebook: Wie lernt man maschinelles Lernen mit ChatGPT?
„Maschinelles Lernen ist die letzte Erfindung, die die Menschheit jemals machen muss.“ Nick Bostrom