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?