Introduction à trois méthodes de normalisation et de dénormalisation dans la bibliothèque sklearn

        La normalisation des données est souvent une étape inévitable dans la modélisation mathématique. Cet article présentera les trois méthodes de standardisation les plus courantes fournies avec la bibliothèque sklearn : la normalisation du score Z, la normalisation 0-1, la robustesse RobustScaler et leur dénormalisation. Sans plus tarder, consultez le code et les exemples :

Tout d’abord, jetez un œil aux données originales utilisées dans cet article :

import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import RobustScaler

datas=pd.read_excel(r"C:\Users\86177\Desktop\农林牧渔业产值占比(2014-2019年).xlsx")
datas.drop(['地区'],axis=1,inplace=True)#删除地区列的数据,只保留要标准化的内容
columns=datas.columns.tolist()#将数据列的名称以列表形式保存,为后续重建DataFrame准备
datas

        La colonne 'Région' des données d'origine n'étant pas le contenu à normaliser, cette colonne de données est supprimée et seule la partie à normaliser est conservée :

1. Standardisation du score Z

Traite une certaine colonne de données en données avec une moyenne de 0 et une variance de 1. L’avantage est qu’il est moins affecté par les valeurs aberrantes. La formule est : (X-μ)/σ

#创建StandardScaler()实例
standard_s1=StandardScaler()
#将DataFrame格式的数据按照每一个series分别标准化
standard_s1_data=standard_s1.fit_transform(datas)
#将标准化后的数据改成DataFrame格式
standard_s1_data_pd=pd.DataFrame(standard_s1_data,columns=columns)
#将标准化的数据反标准化
standard_s1_data_inverse=standard_s1.inverse_transform(standard_s1_data)
#将反标准化的数据改成DataFrame格式
standard_s1_data_inverse_pd=pd.DataFrame(standard_s1_data_inverse,columns=columns)

print(standard_s1_data_pd)
print(standard_s1_data_inverse_pd)

Le côté gauche de la figure ci-dessous montre les résultats standardisés et le côté droit montre les résultats dénormalisés. Vous pouvez voir que les résultats dénormalisés sont cohérents avec les données d'origine.

           

 2. Normalisation 0-1

Autrement dit, la mise à l'échelle d'une certaine colonne de données dans la plage [0,1] présente l'inconvénient d'être affectée par des valeurs extrêmes. La formule est (X-min)/(max-min).

#创建MinMaxScaler()实例
standard_s2=MinMaxScaler()
#将DataFrame格式的数据按照每一个series分别标准化
standard_s2_data=standard_s2.fit_transform(datas)
#将标准化后的数据改成DataFrame格式
standard_s2_data_pd=pd.DataFrame(standard_s2_data,columns=columns)
#将标准化的数据反标准化
standard_s2_data_inverse=standard_s2.inverse_transform(standard_s2_data)
#将反标准化的数据改成DataFrame格式
standard_s2_data_inverse_pd=pd.DataFrame(standard_s2_data_inverse,columns=columns)

print(standard_s2_data_pd)
print(standard_s2_data_inverse_pd)

            

3. RobustScaler 

 La mise à l’échelle par médiane et intervalle interquartile est utilisée lorsqu’il existe de nombreuses valeurs aberrantes. La formule est (médiane X)/intervalle interquartile.

#创建RobustScaler()实例
standard_s3=RobustScaler()
#将DataFrame格式的数据按照每一个series分别标准化
standard_s3_data=standard_s3.fit_transform(datas)
#将标准化后的数据改成DataFrame格式
standard_s3_data_pd=pd.DataFrame(standard_s3_data,columns=columns)
#将标准化的数据反标准化
standard_s3_data_inverse=standard_s3.inverse_transform(standard_s3_data)
#将反标准化的数据改成DataFrame格式
standard_s3_data_inverse_pd=pd.DataFrame(standard_s3_data_inverse,columns=columns)

print(standard_s3_data_pd)
print(standard_s3_data_inverse_pd)

          

 

 

Je suppose que tu aimes

Origine blog.csdn.net/m0_56839722/article/details/126880250
conseillé
Classement