Temel bileşen analizi (PCA), çok değişkenli istatistiklerde bir veri madenciliği tekniğidir. Verinin bütünlüğünden ödün vermeden, veri içindeki bilgilerin çoğunu korurken, boyutsallık azaltma yoluyla yüksek boyutlu verileri düşük boyutlu verilere dönüştürür
PCA, yüksek boyutlu veriyi anlamlandırmak için temel bileşenlere indirgeme yöntemidir.
import plotly.express as px
from sklearn.decomposition import PCA
import pandas as pd
df = pd.read_csv("https://bilisimkitabi.com/files/kimyasal_bilesenler_dummy.csv")
#df = px.data.iris()
X = df[['NDF', 'ADF', 'ADL', 'CP', 'Ash', 'CT']]
#STANDARTLAŞTIRMA
from sklearn.preprocessing import StandardScaler
sc=StandardScaler()
X=sc.fit_transform(X)#fit_transform
pca = PCA(n_components=3)
components = pca.fit_transform(X)
total_var = pca.explained_variance_ratio_.sum() * 100
fig = px.scatter_3d(
components, x=0, y=1, z=2, color=df['HarvestTime'],
title=f'Total Explained Variance: {total_var:.2f}%',
labels={'0': 'PC 1', '1': 'PC 2', '2': 'PC 3'}
)
fig.show()

import plotly.express as px
from sklearn.decomposition import PCA
import pandas as pd
df = pd.read_csv("https://bilisimkitabi.com/files/kimyasal_bilesenler_dummy.csv")
features = ['NDF', 'ADF', 'ADL', 'CP', 'Ash', 'CT']
#STANDARTLAŞTIRMA
from sklearn.preprocessing import StandardScaler
sc=StandardScaler()
df_scaled=sc.fit_transform(df[features])#fit_transform
pca = PCA()
components = pca.fit_transform(df_scaled)
labels = {
str(i): f"PC {i+1} ({var:.1f}%)"
for i, var in enumerate(pca.explained_variance_ratio_ * 100)
}
fig = px.scatter_matrix(
components,
labels=labels,
dimensions=range(3),
color=df["HarvestTime"]
)
fig.update_traces(diagonal_visible=False)
fig.show()

Kaynaklar
- https://www.youtube.com/watch?v=WAuN4eOiN9U
- https://www.youtube.com/watch?v=9rDjwuJT0Nc
- https://www.youtube.com/watch?v=omwchiJCIdQ