logo

Sklearn'de StandardScaler

StandardScaler Ne Zaman ve Nasıl Kullanılır?

Verilen veri setinin özellikleri kendi aralıkları içerisinde önemli ölçüde dalgalandığında veya çeşitli ölçüm birimlerinde kaydedildiğinde, StandardScaler devreye girer.

Veriler, StandardScaler aracılığıyla ortalama 0'a düşürüldükten sonra 1 varyansına ölçeklendirilir. Ancak verilerin ampirik ortalamasını ve standart sapmayı belirlerken, verilerde bulunan aykırı değerlerin, karakteristik değerlerin spektrumunu azaltan önemli bir etkisi vardır.

Birçok makine öğrenimi algoritması, başlangıç ​​özelliklerindeki bu farklılıklar nedeniyle sorunlarla karşılaşabilir. Mesafeyi hesaplayan algoritmalar için, örneğin veri kümesinin özelliklerinden herhangi birinin büyük veya tamamen farklı aralıklara sahip değerleri varsa, veri kümesinin bu belirli özelliği mesafe hesaplamasını kontrol edecektir.

Sklearn'in StandardScaler fonksiyonu, değerleri farklı aralıklarda bulunan veri seti değişkenlerinin, modelin uyum parametrelerine ve eğitim fonksiyonuna eşit katkı sağlamadığı ve hatta o modelle yapılan tahminlerde yanlılığa yol açabileceği teorisine dayanmaktadır.

Bu nedenle özellikleri makine öğrenme modeline dahil etmeden önce verileri normalleştirmemiz gerekir (μ = 0, σ = 1). Özellik mühendisliğinde standardizasyon, bu potansiyel sorunu çözmek için yaygın olarak kullanılır.

Sklearn kullanarak standartlaştırma

 sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True) 

Özelliklerden ortalamayı çıkararak ve bunları birim varyansa ölçeklendirerek, özellikler bu fonksiyon kullanılarak standartlaştırılır.

aşk ve hoşlanma arasındaki fark

Bir özelliğin standart puanını hesaplama formülü z = (x - u) / s'dir; burada u, eğitim özelliğinin ortalamasıdır (veya with_mean = False ise sıfırdır) ve s, numunenin standart sapmasıdır (veya with_std = False ise birdir) ).

Eğitim setindeki özelliklere ilişkin istatistikler hesaplanarak her özelliğe bağımsız olarak merkezleme ve ölçeklendirme uygulanır. Daha sonra, transform() kullanılarak daha sonraki örneklerde kullanılmak üzere fit() yöntemi, ortalamayı ve standart sapmayı saklar.

Parametreler:

    kopyala (bool, varsayılan = Doğru): -Bu parametre Doğru olarak ayarlanmışsa kopyalardan uzak durmaya çalışın ve bunun yerine örnekleri yerinde ölçeklendirin. Bunun mutlaka yerinde çalışması garanti edilmez; örneğin, giriş bir NumPy dizisi veya scipy.sparse CSR matrisi biçiminde değilse işlev yine de bir kopya döndürebilir.with_mean (bool, varsayılan = Doğru): -Parametre Doğru olarak ayarlanmışsa verileri ortaladıktan sonra ölçeklendirin. Seyrek matrislere uygulandığında bu başarısız olur (ve bir istisna oluşturur), çünkü onları merkezlemek, çoğu kullanım koşulunda koça sığmayacak kadar büyük olması beklenen yoğun bir matrisin inşasını gerektirir.with_std (bool, varsayılan = Doğru): -Bu parametre, eğer true olarak ayarlanmışsa (ya da birim standart sapmasını yaptığını söyleyebiliriz) giriş verilerini birim varyansa ölçeklendirir.

Öznitellikler:

    Scale_ ((n_features,) veya Hiçbiri şeklinde olan ndarray): -Veriler her özellik için sıfır ortalama ve birim varyansla göreceli olarak ölçeklendirilir.ortalama_ ((n_features,) şeklinde olan ndarray veya Hiçbiri): -Her özellik için eğitim veri kümesinin ortalama değeridir. with_mean bağımsız değişkeni Yanlış olarak ayarlandığında bu değer Yok'a eşittir.var_ ((n_features,) şeklinde olan ndarray veya Hiçbiri): -Eğitim veri kümesindeki her bir özelliğin varyansının değeridir. Özelliklerin ölçeğini belirlemek için kullanılır. with_std bağımsız değişkeni Yanlış olarak ayarlandığında bu değer Yok'a eşittir.n_features_in_ (_int türünden): -Bu özellik, montaj sırasında tespit edilen özelliklerin sayısını verir.feature_names_in_ ((n_features_in_,) şeklinde olan ndarray):-Bu özellik, montaj sırasında isimlerle tanımlanan özelliklerdir. X yalnızca tüm özellik adlarının veri türü dizesinden olması durumunda tanımlanır.n_samples_seen_ ( int türünden veya (n_features,) şeklinde olan bir ndarray): -Bu, tahmincinin her bir özellik için incelediği örnek sayısını verir.

StandardScaler Sınıfının Yöntemleri

fit(X[, y, örnek_ağırlık]) Bu yöntem, daha sonra verileri ölçeklendirmek için kullanılacak ortalamayı ve standart sapmayı hesaplar.
fit_transform(X[, y]) Bu yöntem, verinin parametrelerine uyar ve ardından onu dönüştürür.
get_feature_names_out([input_features]) Bu yöntem, dönüşüm için özellik adlarını elde eder.
get_params([derin]) Bu yöntem belirli bir tahmincinin parametrelerini verir.
inverse_transform(X[, kopyala]) Verinin boyutunu orijinal formuna uyacak şekilde küçültür.
kısmi_fit(X[, y, örnek_ağırlık]) X'in ortalama ve standart sapması daha sonraki ölçeklendirme için çevrimiçi olarak hesaplanır.
set_params(**paramlar) Bu yöntem tahmincinin parametrelerinin değerini ayarlamak için kullanılır.
transform(X[, kopyala]) Bu yöntem, sınıfta önceden depolanan parametreleri kullanarak verileri dönüştürür.

StandardScaler örneği

Öncelikle gerekli kütüphaneleri import edeceğiz. StandardScaler fonksiyonunu kullanmak için Sklearn kütüphanesini içe aktarmamız gerekiyor.

Daha sonra iris veri setini yükleyeceğiz. IRIS veri setini sklearn.datasets kütüphanesinden içe aktarabiliriz.

StandardScaler sınıfından bir nesne yaratacağız.

Bağımsız ve hedef özelliklerin ayrılması.

Dönüşümü veri kümesine uygulamak için fit transform() yöntemini kullanacağız.

Sözdizimi:

 object_ = StandardScaler() object_.fit_transform(features) 

Yukarıda belirtilen sözdizimini izleyerek başlangıçta StandardScaler() yönteminin bir örneğini oluşturduk. Ek olarak, sağlanan nesneyle birlikte fit_transform() işlevini kullanarak verileri standartlaştırıyoruz.

Kod

 # Python program to standardize the data # Importing the required library from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Printing 3 rows of original data print(X[:3, :]) # Creating an object of the StandardScaler class std_scaler = StandardScaler() # Printing 3 rows of the transformed data print(std_scaler.fit_transform(X)[:3, :]) print(std_scaler.mean_) 

Çıktı

 [[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2]] [[-0.90068117 1.01900435 -1.34022653 -1.3154443 ] [-1.14301691 -0.13197948 -1.34022653 -1.3154443 ] [-1.38535265 0.32841405 -1.39706395 -1.3154443 ]] [5.84333333 3.05733333 3.758 1.19933333]