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))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 12,227评论 1 118
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,258评论 17 410
  • 前言 在大多数现实情况下,模型可以简化并通过模型对显式进行探索,本章可以学到的东西 数据分析中使用基础模型 使用积...
    欧呆哈哈哈阅读 10,221评论 0 2
  •   又到了年尾,是回顾这一年概况的时候了,回过头来看之前每一年的年度总结,并没有觉得幼稚和不成熟,反倒感觉每年的小...
    张明云阅读 7,841评论 14 51
  • 有一种孩子是被夸着聪明长大的。 老师见了家长说,您这孩子聪明,就是不努力/不认真/不细心…… 家长逢人就叹,我这孩...
    青兮欲雨阅读 2,755评论 0 1