Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Data Normalization | Normalization & Standardization
Preprocessing Data

book
Data Normalization

Data Normalization & Standardization provides rescaling numerical data into the appropriate interval. For example, ML models usually process the values in the interval [0; 1]. It's much more convenient to process the finite data, and also the data that all scaled to the same interval. There are two approaches:

  • to normalize data: move it to the interval [0; 1]

  • to standartizate data.

Data normalization

After normalization, each value will be represented as the value from the interval [0;1]. This allows us to easily understand how close the value is to the left or right bound. There is a quick demo.

For example, you got the 4th value from column fare:

python
data['Fare'][3]
x = 53.1

How can you know, how many it is? How close is it to the mean value? Is it many or not?

You have to know the bounds for the fare price. If you normalized the data, you would get the value:

python
x = 0.103644

which is more informative: the value is small enough, only 10% out of the max price.

Normalization formula is:

Let's implement it manually:

x_min, x_max = data['Fare'].min(), data['Fare'].max()
normalized_fare = (data['Fare'] - x_min) / (x_max-x_min)
print(normalized_fare[3])
# output: 0.10364429745562033
1234
x_min, x_max = data['Fare'].min(), data['Fare'].max() normalized_fare = (data['Fare'] - x_min) / (x_max-x_min) print(normalized_fare[3]) # output: 0.10364429745562033
copy

Great! Now we see that 4th value is 0.10364, so this price is only 10% out of the maximum one.

Of course, there is a built-in way that does all the work: let's use the MinMaxScaler() from sklearn.

import pandas as pd
from sklearn.preprocessing import MinMaxScaler
# reading data
# creating a scaler
scaler = MinMaxScaler()
data_scaled = scaler.fit_transform(data)
# now the data is normalized
1234567
import pandas as pd from sklearn.preprocessing import MinMaxScaler # reading data # creating a scaler scaler = MinMaxScaler() data_scaled = scaler.fit_transform(data) # now the data is normalized
copy
Tâche

Swipe to start coding

Use the fit_transform() method with Fare data as an argument. Compare if the normalized fare value of 4th record is equal to the received manually one.

Note that your data should be a 2D-array.

Solution

import pandas as pd
from sklearn.preprocessing import MinMaxScaler

data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/10db3746-c8ff-4c55-9ac3-4affa0b65c16/titanic.csv')
scaler = MinMaxScaler()
fare_data = pd.DataFrame(data['Fare']).values
data_scaled = scaler.fit_transform(fare_data)
print(data_scaled[3])

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 1
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/10db3746-c8ff-4c55-9ac3-4affa0b65c16/titanic.csv')

fare_data = pd.DataFrame(data['Fare']).values # converted into 2D-array
data_scaled = _ _ _ _ _
print(data_scaled[3])

Demandez à l'IA

expand
ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

We use cookies to make your experience better!
some-alt