Nom : BENIDIRI
Prénom : GAYA
Le script :
import pandas as pd
import numpy as np
import [Link] as plt
from [Link] import PCA
from [Link] import StandardScaler
# Charger les données depuis le fichier texte
data_file = "[Link]"
data = pd.read_csv(data_file, sep="\t")
# Prévisualiser les données
print("Aperçu des données :")
print([Link]())
# Sélectionner les colonnes numériques (exclure les noms de wilayas)
features = [Link][1:] # Supposons que la 1ère colonne est la wilaya
X = data[features]
# ACP non normée
pca_non_normee = PCA()
X_non_normee_transformed = pca_non_normee.fit_transform(X)
# Variance expliquée (non normée)
explained_variance_non_normee = pca_non_normee.explained_variance_ratio_
print("Variance expliquée (non normée) :", explained_variance_non_normee)
# ACP normée (standardisation des données)
scaler = StandardScaler()
X_normee = scaler.fit_transform(X)
pca_normee = PCA()
X_normee_transformed = pca_normee.fit_transform(X_normee)
# Variance expliquée (normée)
explained_variance_normee = pca_normee.explained_variance_ratio_
print("Variance expliquée (normée) :", explained_variance_normee)
# Visualisation des variances expliquées
[Link](figsize=(12, 6))
[Link](1, 2, 1)
[Link](range(1, len(explained_variance_non_normee) + 1), explained_variance_non_normee)
[Link]("Variance expliquée - ACP non normée")
[Link]("Composantes principales")
[Link]("Variance expliquée")
[Link](1, 2, 2)
[Link](range(1, len(explained_variance_normee) + 1), explained_variance_normee)
[Link]("Variance expliquée - ACP normée")
[Link]("Composantes principales")
[Link]("Variance expliquée")
plt.tight_layout()
[Link]()
# Cercle des corrélations (ACP normée)
def cercle_corr(pca, X, features):
pcs = pca.components_
[Link](figsize=(8, 8))
[Link]([Link]([Link][1]), [Link]([Link][1]), pcs[0, :], pcs[1, :],
angles='xy', scale_units='xy', scale=1, color="r")
for i, feature in enumerate(features):
[Link](pcs[0, i], pcs[1, i], feature, color='blue', ha='center', va='center')
[Link]([-1, 1])
[Link]([-1, 1])
[Link]("Composante principale 1")
[Link]("Composante principale 2")
[Link]()
[Link]("Cercle des corrélations")
[Link]()
cercle_corr(pca_normee, X_normee, features)
# Projection des observations (ACP normée)
[Link](figsize=(8, 8))
[Link](X_normee_transformed[:, 0], X_normee_transformed[:, 1], alpha=0.7)
for i, wilaya in enumerate([Link][:, 0]):
[Link](X_normee_transformed[i, 0], X_normee_transformed[i, 1], wilaya, fontsize=8)
[Link]("Composante principale 1")
[Link]("Composante principale 2")
[Link]("Projection des observations (ACP normée)")
[Link]()
[Link]()