interactive-pca
🔬 Interactive PCA Analysis Tool - Upload any CSV file and explore Principal Component Analysis step-by-step with interactive visualizations. | Herhangi bir CSV dosyasına PCA analizi yapan, adım adım matematiksel işlemleri gösteren interaktif web aracı.
🔬 İnteraktif PCA Analizi
Herhangi bir CSV dosyasına Principal Component Analysis (PCA) uygulayan, adım adım matematiksel işlemleri gösteren ve sonuçları interaktif grafiklerle görselleştiren web tabanlı bir araç.
🌟 Özellikler
📊 Veri İşleme
- Esnek CSV Desteği: Virgül, noktalı virgül veya tab ile ayrılmış dosyaları destekler
- Otomatik Tip Algılama: Sayısal ve kategorik sütunları otomatik olarak tanır
- Sütun Seçimi: Analiz için hangi sütunların kullanılacağını seçebilirsiniz
- Veri Önizleme: Yüklenen verinin ilk 5 satırını gösterir
📐 Adım Adım PCA Analizi (12 Adım)
Ham Veri İstatistikleri
- N, ortalama, standart sapma, min, max, medyan, aralık
Ortalama Merkezleme (Mean Centering)
- Her değişken için ortalama hesaplaması
- Merkezlenmiş veri tablosu
Standartlaştırma (Z-Score)
- Standart sapma hesaplaması
- Z-score dönüşümü
Kovaryans Matrisi
- Değişkenler arası kovaryans değerleri
- Interaktif heatmap
Korelasyon Matrisi
- Standartlaştırılmış korelasyon değerleri
- Interaktif heatmap
Özdeğer ve Özvektör Hesaplaması
- Eigenvalue ve eigenvector tabloları
- Kaiser kriteri önerisi
Açıklanan Varyans & Boyut İndirgeme
- Bireysel ve kümülatif varyans yüzdeleri
- Dirsek Noktası (Elbow Point) Grafiği
- Scree Plot
- Kümülatif varyans grafiği
- %80 varyans önerisi
Ana Bileşen Skorları
- PC skorları tablosu
Yüklemeler (Loadings)
- Loading matrisi
- Loadings heatmap
Özellik Önem Analizi (Feature Importance) 🆕
- Her özelliğin PCA'ya katkısının hesaplanması
- Önem sıralaması bar grafiği
- Otomatik bulgular ve öneriler
- En önemli ve en az önemli özellikler
PCA Sezgiselliği: Varyansı Maksimize Eden Yön
- Sinyal-Gürültü Oranı (SNR) açıklaması
- PC1 ve PC2 yönlerinin görselleştirilmesi
- Varyans maksimizasyonu grafiği
Bakış Açısını Değiştirmek: Önce ve Sonra
- Orijinal eksenler (Naïve Baz) görünümü
- Temel bileşenler bazı görünümü
- Dönüşüm karşılaştırması
İnteraktif Görselleştirmeler
- 2D Scatter Plot (seçilebilir eksenler)
- 3D Scatter Plot (interaktif döndürme)
- Biplot (skorlar + yüklemeler)
📥 Export Seçenekleri
- PC Skorları (CSV): Ana bileşen skorlarını indir
- Yüklemeler (CSV): Loading matrisini indir
- Özdeğerler (CSV): Eigenvalue tablosunu indir
- Tam Rapor (JSON): Tüm analiz sonuçlarını JSON formatında indir
- PDF Raporu: Yazdırılabilir format
🚀 Kullanım
Online Kullanım
https://cagatayuresin.github.io/interactive-pca/
Lokal Kullanım
Repoyu klonlayın:
git clone https://github.com/cagatayuresin/interactive-pca.gitKlasöre gidin:
cd interactive-pcaindex.htmldosyasını tarayıcınızda açın veya bir lokal sunucu başlatın:# Python ile python -m http.server 8000 # Node.js ile npx serveTarayıcınızda
http://localhost:8000adresine gidin
📁 Proje Yapısı
interactive-pca/
├── index.html # Ana HTML dosyası
├── css/
│ └── style.css # Stil dosyası
├── js/
│ ├── utils.js # Yardımcı fonksiyonlar
│ ├── csvParser.js # CSV işleme modülü
│ ├── pca.js # PCA hesaplama motoru
│ ├── visualizations.js # Grafik modülü (Plotly.js)
│ ├── export.js # Export fonksiyonları
│ └── app.js # Ana uygulama
├── sample_data/
│ └── iris.csv # Örnek veri seti
└── README.md
🧮 Matematiksel Açıklama
PCA Adımları
Ortalama Merkezleme: $$X_{centered} = X - \mu$$
Standartlaştırma: $$Z = \frac{X - \mu}{\sigma}$$
Kovaryans Matrisi: $$Cov(X,Y) = \frac{\sum(X_i - \bar{X})(Y_i - \bar{Y})}{n-1}$$
Özdeğer Denklemi: $$Cov \cdot v = \lambda \cdot v$$
Açıklanan Varyans: $$\text{Explained Variance} = \frac{\lambda_i}{\sum\lambda} \times 100%$$
Ana Bileşen Skorları: $$PC = Z \times V$$
🛠️ Teknolojiler
- HTML5 / CSS3: Modern, responsive tasarım (Navy & Egg White tema)
- Vanilla JavaScript: Bağımlılık olmadan saf JS
- Plotly.js: İnteraktif grafikler
- Math.js: Matris işlemleri ve özdeğer hesaplaması
- Font Awesome: İkonlar
🎨 Tasarım
Proje, profesyonel Navy Blue & Egg White renk paleti kullanmaktadır:
- Primary: Navy (#1e3a5f)
- Background: Egg White (#faf8f5)
- Accent: Gold (#c9a227)
- Secondary: Soft Green (#3d8b6e)
📊 Örnek Veri Setleri
Test etmek için kullanabileceğiniz veri setleri:
- Iris Dataset
- Wine Dataset
- Boston Housing Dataset
- MNIST (küçültülmüş)
🤝 Katkıda Bulunma
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature') - Branch'i push edin (
git push origin feature/amazing-feature) - Pull Request açın
📝 Lisans
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
👤 Yazar
Çağatay Üresin
- GitHub: @cagatayuresin
🙏 Teşekkürler
- Plotly.js - İnteraktif grafikler
- Math.js - Matematiksel hesaplamalar
- Font Awesome - İkonlar
- UCI Machine Learning Repository - Iris veri seti
- R.A. Fisher - Iris veri setinin orijinal yaratıcısı (1936)
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!
cagatayuresin