Libsvm, ölçekleme verileri için araçlar sağlarken, Scikit-Learn (SVC sınıflandırıcı için libSVM'ye dayalı olmalıdır) ile verilerimi ölçeklendirmenin bir yolunu bulmuyorum.scikit-learn'de ölçekleme verileri SVM
Temel olarak, 0 ile 1 arasında 3 aralık olan ve sonuncusu "büyük" yüksek derecede değişken bir sayı olan 4 özelliği kullanmak istiyorum.
LibSVM'de dördüncü özelliği eklediyseniz (verileri otomatik olarak ölçeklendiren easy.py komut dosyasını kullanarak) çok güzel sonuçlar elde ederim (% 96 doğruluk). Scikit-Learn'de dördüncü değişkeni dahil edersem, doğruluk% ~ 78'e düşer - ancak bunu hariç tutarsam, bu özelliği hariç tuttuğumda, aynı sonuçları elde ederim. Bu nedenle, ölçekleme eksik bir sorun olduğundan eminim.
SVM'nin ölçeklendirme işlemini program aracılığıyla nasıl (örneğin svm-scale çağırmadan) çoğaltırım?
Bilmekte fayda var, teşekkürler. Test verisini tren verileriyle birlikte standartlaştırmalı ve sonradan dilimlemeli mi yoksa sadece test verilerini kendim mi yapmalıyım? – luke14free
[dokümantasyon] 'da bahsedilmiştir (http://scikit-learn.org/stable/modules/preprocessing.html#standardization-or-mean-removal-and-variance-scaling). Bunu ayrı ayrı yapmalısınız, aksi takdirde eğitim verileri test örneklerinden etkilenecektir. Scaler sınıfı ile eğitim verilerinin ortalama ve standart sapmasını hesaplayabilir ve daha sonra test verilerine aynı dönüşümü uygulayabilirsiniz. – Maehler
Bunun için bir “Scaler” kullanmalısınız, serbest fonksiyon 'scale' değil. Bir "Scaler", bir "Boru Hattı" içine takılabilir, örn. scaling_svm = Boru Hattı ([("ölçekleyici", Ölçekleyici()), ("svm", SVC (C = 1000))]) '. –