数据标准化之最大最小归一化(原理+Pyhon代码)

一、原理介绍

通常情况下,在建模之前,都需要对数据进行标准化处理,以消除量纲的影响。如果对未标准化的数据直接进行建模,可能会导致模型对数值大的变量学习过多,而对数值小的变量训练不够充分,往往模型效果会不好。常用的数据标准化方法有最大最小归一化、均值方差标准化、小数定标法、定量特征二值化等。

最大最小归一化,顾名思义,就是利用数据列中的最大值和最小值进行标准化处理,标准化后的数值处于[0,1]之间,计算方式为数据与该列的最小值作差,再除以极差。
具体公式为: x ′ = x − m i n m a x − m i n x'=\frac{x-min}{max-min} x=maxminxmin
公式中,x’表示单个数据的取值,min是数据所在列的最小值,max是数据所在列的最大值。

最大最小归一化容易受极端值的影响,当某列数据中存在极端值时,可以根据实际的业务场景,考虑事先将极端值或异常值剔除,或者是对标准化后的数据进行变换,如取对数等,使得变换后的数据接近于正态分布。

二、代码实现

#加载模块
from sklearn.preprocessing import StandardScaler
import warnings
warnings.filterwarnings("ignore") #过滤掉警告的意思
from pyforest import *
import pandas as pd
import numpy as np
#读入数据
data=pd.read_csv("F:/data/data.csv",encoding='gbk') #bgk表示中文编码
#查看数据前五行
data.head()
(1)资产负债率(2)剔除预收款项后的资产负债率(3)长期资本负债率(4)长期资产适合率(5)权益乘数
00.6557990.6067080.6138650.4949600.791971
10.7520610.7054980.8416391.0000000.932990
20.9573910.9415430.0000000.4934650.988630
30.8070460.7807090.9846960.5306370.958086
40.8052350.7960710.8614800.5412990.957462
from sklearn.preprocessing import MinMaxScaler
#区间缩放,返回值为缩放到[0, 1]区间的数据
Standard_data=MinMaxScaler().fit_transform(data)
#查看标准化后的数据
Standard_data

array([[0.65608912, 0.60990114, 0.61386483, 0.49495976, 0.79739631],
[0.75239351, 0.70921165, 0.84163884, 1. , 0.93938095],
[0.95781436, 0.9464991 , 0. , 0.49346475, 0.99540256],
…,
[0.73319974, 0.65164941, 0.51791243, 0.50922178, 0.92607276],
[0.66202637, 0.56413243, 0.75722411, 0.49343682, 0.81677841],
[0.88919966, 0.85747254, 0. , 0.49297322, 0.98517934]])

#由于标准化后的数据是array格式,故将其转化为数据框
Standard_data = pd.DataFrame(Standard_data) #转为dataframe
#将数据写成csv文件,方便后续的建模
Standard_data.to_csv("F:/data/Standard_data.csv",index=False) 
最大最小归一化是一种常用的数据归一化方法,可以将数据映射到[0, 1]的区间内。以下是最值归一化Python代码实例: ```python from sklearn.preprocessing import MinMaxScaler # 加载数据 data = pd.read_csv("F:/data/data.csv", encoding='gbk') # 创建MinMaxScaler对象并进行数据缩放 scaler = MinMaxScaler() normalized_data = scaler.fit_transform(data) # 打印归一化后的数据 print(normalized_data) ``` 在这段代码中,首先导入MinMaxScaler类并创建一个对象。然后,使用fit_transform()方法对数据进行归一化处理,并将结果保存在normalized_data变量中。最后,通过打印normalized_data来查看归一化后的数据。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [机器学习数据归一化](https://download.csdn.net/download/weixin_38605604/13752206)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [数据标准化最大最小归一化原理+Pyhon代码)](https://blog.csdn.net/weixin_45481473/article/details/113797850)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [数据归一化 - MinMaxScaler()/MaxAbsScaler() - Python代码](https://blog.csdn.net/weixin_40683253/article/details/81508321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值