Introducción a tres métodos de normalización y desnormalización en la biblioteca sklearn

        La estandarización de datos es a menudo un paso inevitable en el modelado matemático. Este artículo presentará los tres métodos de estandarización más comunes que vienen con la biblioteca sklearn: normalización de puntuación Z, normalización 0-1, robustez RobustScaler y su desnormalización. Sin más preámbulos, mira el código y los ejemplos:

Primero, eche un vistazo a los datos originales utilizados en este artículo:

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

        Debido a que la columna 'Región' en los datos originales no es el contenido que se va a estandarizar, esta columna de datos se elimina y solo se conserva la parte que se va a estandarizar:

1. Estandarización del puntaje Z

Procese una determinada columna de datos para convertirlos en datos con una media de 0 y una varianza de 1. La ventaja es que se ve menos afectado por los valores atípicos. La fórmula es: (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)

El lado izquierdo de la figura a continuación muestra los resultados estandarizados y el lado derecho muestra los resultados desnormalizados. Puede ver que los resultados desnormalizados son consistentes con los datos originales.

           

 2. Normalización 0-1

Es decir, escalar una determinada columna de datos al rango de [0,1] tiene la desventaja de verse afectada por valores extremos. La fórmula es (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. Escalador robusto 

 La escala por mediana y rango intercuartílico se utiliza cuando hay muchos valores atípicos. La fórmula es (X-mediana)/rango intercuartil.

#创建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)

          

 

 

Supongo que te gusta

Origin blog.csdn.net/m0_56839722/article/details/126880250
Recomendado
Clasificación