No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aplicando PCA para clustering

20/27
Recursos

Aportes 5

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

D谩ndole un poco mas de contexto a la imagen:

cum_var = np.cumsum(np.round(var, decimals=4)*100)
components = list(range(0,9))
plt.figure(figsize=(5,5))
for s,d in zip(components,cum_var):
    plt.annotate(np.round(d,decimals=2), xy=(s,d-2.5))

plt.plot(components,cum_var, 'r-x')
plt.title("PCA Decomposition")
plt.xlabel('PCA components')
plt.ylabel('% Variance')

Si desea obtener la cantidad de componentes necesarias para una determinada varianza us茅 el siguiente c贸digo:

  • Quiero obtener la cantidad de componentes que expliquen una varianza del 85%.
pcs_needed = np.where(np.cumsum(pca.explained_variance_ratio_) >=.85)[0][0]
print("PC's are needed to explain 85% of the variance for data: ", pcs_needed)
[Output]
"PC's are needed to explain 85% of the variance for data:  3"

Casi que no logro entender PCA, practicamente toda la ruta de ciencia de datos me ense帽aron PCA pero hasta ahora logre comprender su importancia, muchas gracias.

from sklearn.decomposition import PCA
from sklearn.decomposition import IncrementalPCA
import plotly.graph_objects as go
import plotly.express as px

n = 6

principal_components = {
    'PCA': PCA(n_components=n),
    'IncrementalPCA': IncrementalPCA(n_components=n, batch_size=10)
}

fig = go.Figure()

for name, principal_component in principal_components.items():
    principal_component.fit(df_country_scaled)

    cum_var = np.cumsum(np.round(pca.explained_variance_ratio_, decimals=4)*100) 

    # Aqui anexamos a la misma figura cada trazo
    fig.add_trace(go.Scatter(
        x=list(range(1, len(principal_component.explained_variance_) + 1)),
        y=cum_var,
        name=name,
        mode='lines+markers',
    ))

    # Aqui verificamos que varianza de datos esta agrupando el metodo usado para nuestros features
    components = principal_component.fit_transform(df_country_scaled)

    total_var = principal_component.explained_variance_ratio_.sum() * 100
    print(f"Total Explained Variance: {total_var:.2f}%, para {n} componentes con {name}")

# Aqui ejecutamos el plot de nuestra grafica
fig.update_layout(showlegend=True)

fig.show()