Vergleich der Modellleistung vor und nach PCA
PCA kann als Vorverarbeitungsschritt vor dem Training von Machine-Learning-Modellen verwendet werden. In diesem Kapitel wird die Leistung eines LogisticRegression-Klassifikators auf den original standardisierten Daten mit der auf Daten verglichen, die auf zwei Hauptkomponenten reduziert wurden. Dieser praxisorientierte Ansatz verdeutlicht, wie sich die Dimensionsreduktion sowohl auf die Effektivität als auch auf die Effizienz von Modellen auswirken kann.
123456789101112131415161718192021222324from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # Split data into train and test sets X_train, X_test, y_train, y_test = train_test_split(X_scaled, data.target, test_size=0.3, random_state=42) # Train on original data clf_orig = LogisticRegression(max_iter=200) clf_orig.fit(X_train, y_train) y_pred_orig = clf_orig.predict(X_test) acc_orig = accuracy_score(y_test, y_pred_orig) # Train on PCA-reduced data (2 components) pca = PCA(n_components=2) X_train_pca = pca.fit_transform(X_train) X_test_pca = pca.transform(X_test) clf_pca = LogisticRegression(max_iter=200) clf_pca.fit(X_train_pca, y_train) y_pred_pca = clf_pca.predict(X_test_pca) acc_pca = accuracy_score(y_test, y_pred_pca) print(f"Accuracy on original data: {acc_orig:.2f}") print(f"Accuracy after PCA (2 components): {acc_pca:.2f}")
Der obige Code teilt die Daten auf, trainiert ein Logistic Regression-Modell sowohl auf den originalen als auch auf den PCA-reduzierten Daten und vergleicht deren Genauigkeiten. Eine perfekte Genauigkeit von 1,0 auf den Originaldaten kann auf Overfitting hindeuten, wobei das Modell die Trainingsdaten zu genau abbildet und möglicherweise nicht gut generalisiert. Die Anwendung von PCA reduziert die Dimensionalität, was helfen kann, Overfitting zu verringern. Nach der Anwendung von PCA sinkt die Genauigkeit leicht auf 0,91, was ein besseres Gleichgewicht zwischen Leistung und Generalisierbarkeit sowie eine höhere Geschwindigkeit und Interpretierbarkeit zeigt.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain why the accuracy drops after applying PCA?
What are the benefits of using PCA before training a model?
How do I choose the number of principal components for PCA?
Awesome!
Completion rate improved to 8.33
Vergleich der Modellleistung vor und nach PCA
Swipe um das Menü anzuzeigen
PCA kann als Vorverarbeitungsschritt vor dem Training von Machine-Learning-Modellen verwendet werden. In diesem Kapitel wird die Leistung eines LogisticRegression-Klassifikators auf den original standardisierten Daten mit der auf Daten verglichen, die auf zwei Hauptkomponenten reduziert wurden. Dieser praxisorientierte Ansatz verdeutlicht, wie sich die Dimensionsreduktion sowohl auf die Effektivität als auch auf die Effizienz von Modellen auswirken kann.
123456789101112131415161718192021222324from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # Split data into train and test sets X_train, X_test, y_train, y_test = train_test_split(X_scaled, data.target, test_size=0.3, random_state=42) # Train on original data clf_orig = LogisticRegression(max_iter=200) clf_orig.fit(X_train, y_train) y_pred_orig = clf_orig.predict(X_test) acc_orig = accuracy_score(y_test, y_pred_orig) # Train on PCA-reduced data (2 components) pca = PCA(n_components=2) X_train_pca = pca.fit_transform(X_train) X_test_pca = pca.transform(X_test) clf_pca = LogisticRegression(max_iter=200) clf_pca.fit(X_train_pca, y_train) y_pred_pca = clf_pca.predict(X_test_pca) acc_pca = accuracy_score(y_test, y_pred_pca) print(f"Accuracy on original data: {acc_orig:.2f}") print(f"Accuracy after PCA (2 components): {acc_pca:.2f}")
Der obige Code teilt die Daten auf, trainiert ein Logistic Regression-Modell sowohl auf den originalen als auch auf den PCA-reduzierten Daten und vergleicht deren Genauigkeiten. Eine perfekte Genauigkeit von 1,0 auf den Originaldaten kann auf Overfitting hindeuten, wobei das Modell die Trainingsdaten zu genau abbildet und möglicherweise nicht gut generalisiert. Die Anwendung von PCA reduziert die Dimensionalität, was helfen kann, Overfitting zu verringern. Nach der Anwendung von PCA sinkt die Genauigkeit leicht auf 0,91, was ein besseres Gleichgewicht zwischen Leistung und Generalisierbarkeit sowie eine höhere Geschwindigkeit und Interpretierbarkeit zeigt.
Danke für Ihr Feedback!