El yazısıyla yazılmış rakamları sınıflandırmak için KNN kullanıyorum. Artık boyutsallığı azaltmak için şimdi PCA'yı uyguladım. 256'dan 200'e gittim. Ama sadece% 0.10 oranında bilgi kaybı olduğunu fark ettim. 56 boyutu sildim. Kayıp daha büyük olmamalı mı? Sadece 5 boyuta düştüğümde ~% 20'lik bir kayıp olur. Bu normal mi?PCA ve KNN algoritması
cevap
56 boyutu kaldırdıktan sonra neredeyse hiç bilgi kaybetmediğinizi mi söylüyorsunuz? Tabii ki, bu PCA'nın noktası! Principal Component Analysis, ad devletleri olarak, hangi boyutların bilgiyi taşıdığını belirlemenize yardımcı olur. Ve geri kalanını kaldırabilirsin, ki bunun en büyük kısmını yapar.
Bazı örnekler istiyorum, gen analizinde, PCA ile boyutun 40'000'den 100'e düştüğü kağıtları okudum, sonra bazı büyülü şeyler yapıyorlar ve 19 boyutta mükemmel bir sınıflandırıcıya sahipler. Bu, 39'900 boyutlarını kaldırdıklarında neredeyse hiç bilgi kaybetmediklerini söylüyor!
tamam teşekkürler. Makine öğrenmeye yeni başlıyorum –
Bu normal, evet (ve Fezvez, yaptığınız şeyin noktasını söyledi). Durumunuz aslında bunun nasıl mümkün olduğunu görebileceğiniz iyi bir örnektir.
Verilerinize bir göz atın (makine öğrenmede her zaman önemlidir, verinizi bildirin). Beyaz üzerine siyah elle yazılmış rakamların görüntüleri varsa, bazı köşelerdeki piksellerin tüm örnekler için beyaz olması ihtimali yüksektir (bir elimde, el yazısıyla yazılmış rakamları öğrenirken bir köşede vardı). Yani aslında bu pikselde hiçbir bilgi yoktur. Bunu KNN veya ANN'niz için girdi olarak bırakırsanız veya aynı sonucu alırsanız, aynı sonuçları elde edersiniz.
- 1. PCA
- 2. KNN üst N komşular
- 3. Boyutları scikit-learn PCA kullanarak en yüksek varyansla bulma PCA
- 4. OpenCV PCA Compute Python
- 5. PCA Boyut Azaltma
- 6. KNN train(), cv2 ile birlikte opencv 3.0
- 7. Eppstein'ın algoritması ve en kısa yollar için Yen algoritması
- 8. Matplotlib ile PCA için temel örnek
- 9. Seyrek Matriste Boyut Azaltma (TSNE/PCA)
- 10. KNN tarafından görüntü tarafından hesaplanan resim eşleştirmeleri ve olası hata, Features2DToolbox.DrawMatches
- 11. Daha fazla analiz için PCA eksenlerinin ayıklanması
- 12. Randomize algoritması
- 13. OpenGL GLSL Cel Gölgelendirme ve Anahat algoritması
- 14. Boyer ve Moore algoritması, vardiya tablosu hesaplaması
- 15. gauss newton algoritması ve matrisyal ürün
- 16. Diyagram konektörü algoritması
- 17. Boole Satisfiability - algoritması
- 18. Portre Yaş Progresyon Algoritması
- 19. Çok Desenli Eşleme Algoritması
- 20. Python'da Gauss-Legendre Algoritması
- 21. Kuyruk azaltma algoritması?
- 22. Dijkstra'nın algoritması Neo4j'de Cypher
- 23. Mathematica antialiasing algoritması
- 24. Kısmi ayırma algoritması
- 25. dize gruplama algoritması C#
- 26. Temel öneri motoru algoritması
- 27. seçim algoritması sorun
- 28. iOS simge jiggle algoritması
- 29. Yağmur akışı sayma algoritması
- 30. Bradley uyarlamalı eşikleme algoritması
Pek çok uygulama türünde bu tür bir şey yaygındır. Bu azalan getiriler noktası denir. –