概述
MOOC上的课程《用Python玩转数据分析》的学习笔记。
数据预处理之数据变换
数据变换就是把数据变成合适的形式,常见方式有规范化、连续属性离散化、特征二值化等。
数据规范化
数据规范化主要解决的问题是:数据间量纲不同、取值范围不同,进而难以比较、运算。最小-最大规范化/离差标准化
因为DataFrame支持矢量运算,所以可以直接用(df-df.min())/(df.max()-df.min())来实现。
或者借助preprocessing实现离差标准化也是可以的:
>>>from sklearn import preprocessing
>>>preprocessing.minmax_scale(df)
z-score规范化/零均值规范化
手工写代码直接实现:(df-df.mean())/df.std()
借助preprocessing实现:
>>>preprocessing.scale(df)
小数定标规范化
假如这一列数中绝对值最大的数是92,那么j=2,这一列所有的数都除以100,目的就是使所有的数落在[-1,1]之间,这就是小数定标规范化。
手工写代码直接实现:df/10**np.ceil(np.log10(df.abs().max())) (j的计算表示为 绝对值最大的数取10的对数后取更大的最近的整数 )
连续属性离散化
分箱法除了可以用来平滑噪声,还可以用来做连续属性离散化。分箱法(binning):等宽法
>>>pd.cut(df.属性, 5, label = range(5)) (对df.属性进行离散化,分为5个箱子,箱子的编号是range(5),也就是01234。等宽法使数据范围区间按照箱子个数等分。)
分箱法(binning):等频法
>>>pd.qcut(df.属性, 5, label = range(5)) (对df.属性进行离散化,分为5个箱子,箱子的编号是range(5),也就是01234。等频法使每一个箱子中的记录数一样。)
特征二值化
特征二值化的核心是设置一个阈值threshold,大于阈值的赋值1,小于等于阈值的赋值0。适用于把数据转化为二分类数据。处理方法之一:Binarizer
>>>from sklearn.preprocessing import Binarizer
>>>Binarizer(threshold = 5).fit_transform(数据属性列) (此处设置阈值为5,可自行调整)
最后
以上就是鳗鱼蜜蜂为你收集整理的南京大学用python玩转数据_用Python玩转数据分析11的全部内容,希望文章能够帮你解决南京大学用python玩转数据_用Python玩转数据分析11所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复