python 数据分析基础 day17-对模型自变量进行标准化
2018-03-30 本文已影响13人
billyang916
今天是读《python数据分析基础》的第17天,读书笔记的内容为变量的标准化。
在进行
在建模的时候,会遇到不同的自变量之间的量纲差距很大的情况,如输入变量有年龄和身高(身高以m为单位)时,年龄的范围为(0-100],而身高的范围则是(0,2.5]。此时两个变量之间的取值范围差了一个数量级。若采用这两个变量进行建模,则有可能出现这样的情况:年龄对预测值的影响远高于身高。这意味着年龄的影响程度被高估,身高的影响程度被低估。
为使得变量的影响程度能被正确估计,提高模型的预测精度,对自变量进行标准化是一个有效且可行的方式。
以下将用python演示对自变量进行标准化的操作:
min-max标准化(又名离差标准化)
公式如下:
x*=(x-min)/(max-min)
代码如下:
import pandas as pd
#导入数据
inputFile='数据文件路径'
wine=pd.read_csv(inputFile)
#将'tpye'和'quality'字段以外的字段进行标准化
#去除'tupe'和'quality'字段
wineInd=wine[wine.columns.difference(['type','quality'])]
#min-max标准化
wineIndMinMax=(wineInd-wineInd.mean())/wineInd.std()
print(wineIndMinMax.head(5))
z-score 标准化(又名标准差标准化)
公式如下:
x*=(x-mean)/std
其中,mean按为样本均值,std为样本标准差
代码如下:
#自变量标准化
import pandas as pd
#导入数据
inputFile=‘数据文件路径’
wine=pd.read_csv(inputFile)
#将'tpye'和'quality'字段以外的字段进行标准化
#去除'tupe'和'quality'字段
wineInd=wine[wine.columns.difference(['type','quality'])]
#z-score标准化
wineIndZScore=(wineInd-wineInd.min())/(wineInd.max()-wineInd.min())
print(wineIndZScore.head(5))