python 数据分析基础 day17-对模型自变量进行标准化

今天是读《python数据分析基础》的第17天,读书笔记的内容为变量的标准化。
在进行
在建模的时候,会遇到不同的自变量之间的量纲差距很大的情况,如输入变量有年龄和身高(身高以m为单位)时,年龄的范围为(0-100],而身高的范围则是(0,2.5]。此时两个变量之间的取值范围差了一个数量级。若采用这两个变量进行建模,则有可能出现这样的情况:年龄对预测值的影响远高于身高。这意味着年龄的影响程度被高估,身高的影响程度被低估。
为使得变量的影响程度能被正确估计,提高模型的预测精度,对自变量进行标准化是一个有效且可行的方式。
以下将用python演示对自变量进行标准化的操作:

注:数据来源于https://github.com/cbrownley/foundations-for-analytics-with-python/tree/master/statistics/winequality-both.csv

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))
    原文作者:billyang916
    原文地址: https://www.jianshu.com/p/fdc98f39d3c1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞