Введение в три метода нормализации и денормализации в библиотеке sklearn

        Стандартизация данных часто является неизбежным шагом в математическом моделировании.В этой статье будут представлены три наиболее распространенных метода стандартизации, которые поставляются с библиотекой sklearn: нормализация Z-оценки, нормализация 0-1, робастизация RobustScaler и их денормализация. Без лишних слов, посмотрите код и примеры:

Сначала взгляните на исходные данные, использованные в этой статье:

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

        Поскольку столбец «Регион» в исходных данных не является содержимым, подлежащим стандартизации, этот столбец данных удаляется и сохраняется только часть, подлежащая стандартизации:

1. Стандартизация Z-показателя

Обработайте определенный столбец данных в данные со средним значением 0 и дисперсией 1. Преимущество состоит в том, что на него меньше влияют выбросы. Формула: (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)

В левой части рисунка ниже показаны стандартизированные результаты, а в правой — денормализованные результаты. Вы можете видеть, что денормализованные результаты согласуются с исходными данными.

           

 2. Нормализация 0-1

То есть масштабирование определенного столбца данных до диапазона [0,1] имеет тот недостаток, что на него влияют экстремальные значения. Формула: (X-мин)/(макс-мин).

#创建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. Робастскалер 

 Масштабирование по медиане и межквартильному размаху используется при наличии большого количества выбросов. Формула: (X-медиана)/межквартильный размах.

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

          

 

 

Guess you like

Origin blog.csdn.net/m0_56839722/article/details/126880250