Python'da veriler nasıl normalleştirilir?


Genellikle istatistik ve makine öğreniminde değişkenleri, değer aralığı 0 ile 1 arasında olacak şekilde normalleştiririz .

Değişkenleri normalleştirmenin en yaygın nedeni, bir tür çok değişkenli analiz yapmamızın (örneğin, birkaç yordayıcı değişken ile bir yanıt değişkeni arasındaki ilişkiyi anlamak istememiz) ve her değişkenin analize eşit katkıda bulunmasını istememizdir.

Değişkenler farklı ölçeklerde ölçüldüğünde çoğu zaman analize eşit katkı sağlamazlar. Örneğin bir değişkenin değerleri 0 ile 100.000 arasında değişiyorsa ve başka bir değişkenin değerleri 0 ile 100 arasında değişiyorsa, aralığı daha büyük olan değişkene analizde daha fazla ağırlık verilecektir.

Değişkenleri standartlaştırarak her değişkenin analize eşit katkıda bulunduğundan emin olabiliriz.

0 ile 1 arasındaki değerleri normalleştirmek için aşağıdaki formülü kullanabiliriz:

x norm = (x ben – x min ) / (x maks – x min )

Altın:

  • x normu : veri kümesindeki i’inci normalleştirilmiş değer
  • x i : veri kümesinin i’inci değeri
  • x max : Veri kümesindeki minimum değer
  • x min : Veri kümesindeki maksimum değer

Aşağıdaki örnekler Python’da bir veya daha fazla değişkenin nasıl normalleştirileceğini gösterir.

Örnek 1: NumPy dizisini normalleştirme

Aşağıdaki kod, bir NumPy dizisindeki tüm değerlerin nasıl normalleştirileceğini gösterir:

 import numpy as np 

#create NumPy array
data = np. array ([[13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71]])

#normalize all values in array
data_norm = (data - data. min ())/ (data. max () - data. min ())

#view normalized values
data_norm

array([[0. , 0.05172414, 0.10344828, 0.15517241, 0.17241379,
        0.43103448, 0.5862069, 0.74137931, 0.77586207, 0.86206897,
        0.89655172, 0.98275862, 1. ]])

Normalleştirilmiş dizideki değerlerin her biri artık 0 ile 1 arasındadır.

Örnek 2: Pandas DataFrame’deki tüm değişkenleri normalleştirin

Aşağıdaki kod, bir pandanın DataFrame’indeki tüm değişkenlerin nasıl normalleştirileceğini gösterir:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#normalize values in every column
df_norm = (df-df. min ())/ (df. max () - df. min ())

#view normalized DataFrame
df_norm

        points assists rebounds
0 0.764706 0.125 0.857143
1 0.000000 0.375 0.428571
2 0.176471 0.375 0.714286
3 0.117647 0.625 0.142857
4 0.411765 1.000 0.142857
5 0.647059 0.625 0.000000
6 0.764706 0.625 0.571429
7 1.000000 0.000 1.000000

Her sütundaki değerlerin her biri artık 0 ile 1 arasındadır.

Örnek 3: Pandas DataFrame’de belirli değişkenleri normalleştirin

Aşağıdaki kod, bir pandas DataFrame’de belirli bir değişkenin nasıl normalleştirileceğini gösterir:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

define columns to normalize
x = df. iloc [:,0:2]

#normalize values in first two columns only
df. iloc [:,0:2] = (xx. min ())/ (x. max () - x. min ())

#view normalized DataFrame
df

	points assists rebounds
0 0.764706 0.125 11
1 0.000000 0.375 8
2 0.176471 0.375 10
3 0.117647 0.625 6
4 0.411765 1.000 6
5 0.647059 0.625 5
6 0.764706 0.625 9
7 1.000000 0.000 12

Yalnızca ilk iki sütundaki değerlerin normalleştirildiğini unutmayın.

Ek kaynaklar

Aşağıdaki eğitimler veri normalleştirme hakkında ek bilgi sağlar:

0 ile 1 arasındaki veriler nasıl normalleştirilir?
0 ile 100 arasındaki veriler nasıl normalleştirilir
Standardizasyon veya normalizasyon: fark nedir?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir