No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aplicando PCA para clustering

20/27
Recursos

Aportes 6

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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()
No se si la base esta contruida para que "pca.explained\_variance\_ratio\_" me de las varianzas de mayor a menor o que la función las ordena de mayor a menor.
Al final no se podía simplemente volver a usarlo pero con 4 componentes? `pca = PCA(``n_components``=4)`