Modelprestaties Vergelijken Vóór en Na PCA
PCA kan worden gebruikt als een pre-processing stap vóór het trainen van machine learning-modellen. In dit hoofdstuk wordt de prestatie van een LogisticRegression-classifier vergeleken op de originele gestandaardiseerde data en op data die is teruggebracht tot twee hoofdcomponenten. Deze praktische benadering laat zien hoe dimensionaliteitsreductie zowel de effectiviteit als de efficiëntie van modellen kan beïnvloeden.
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}")
De bovenstaande code splitst de data, traint een logistische regressie-model op zowel de originele als de PCA-gereduceerde data, en vergelijkt hun nauwkeurigheid. Merk op dat een perfecte nauwkeurigheid van 1.0 op de originele data kan wijzen op overfitting, waarbij het model te nauw aansluit op de trainingsdata en mogelijk niet goed generaliseert. Het toepassen van PCA vermindert de dimensionaliteit, wat kan helpen om overfitting te beperken. Na PCA daalt de nauwkeurigheid licht naar 0.91, wat een betere balans laat zien tussen prestaties en generalisatie, met verhoogde snelheid en interpretatie.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 8.33
Modelprestaties Vergelijken Vóór en Na PCA
Veeg om het menu te tonen
PCA kan worden gebruikt als een pre-processing stap vóór het trainen van machine learning-modellen. In dit hoofdstuk wordt de prestatie van een LogisticRegression-classifier vergeleken op de originele gestandaardiseerde data en op data die is teruggebracht tot twee hoofdcomponenten. Deze praktische benadering laat zien hoe dimensionaliteitsreductie zowel de effectiviteit als de efficiëntie van modellen kan beïnvloeden.
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}")
De bovenstaande code splitst de data, traint een logistische regressie-model op zowel de originele als de PCA-gereduceerde data, en vergelijkt hun nauwkeurigheid. Merk op dat een perfecte nauwkeurigheid van 1.0 op de originele data kan wijzen op overfitting, waarbij het model te nauw aansluit op de trainingsdata en mogelijk niet goed generaliseert. Het toepassen van PCA vermindert de dimensionaliteit, wat kan helpen om overfitting te beperken. Na PCA daalt de nauwkeurigheid licht naar 0.91, wat een betere balans laat zien tussen prestaties en generalisatie, met verhoogde snelheid en interpretatie.
Bedankt voor je feedback!