1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import scale
from sklearn.decomposition import PCA
# Analyse de composantes principales afin de réduire la dimension du problème
X_scaled = scale(X)
covar_matrix = PCA(n_components=12)
covar_matrix.fit(X_scaled)
variance = covar_matrix.explained_variance_ratio_
print(variance)
# Determination du nombre de composantes à conserver au minimum. Pour cela
# on trie les variances par ordre décroissant, on calcul la somme cumulée et on
# détermine les indices des composantes permettant d'atteindre 90% (arbitrairement)
n_comps = np.where(np.cumsum(sorted(variance)[::-1]) > 0.9)[0][0]
comp_idx = [variance.index(v) for v in sorted(variance)[::-1][:n_comps+1]]
print(comp_idx) |
Partager