「数据预处理」04数据集成与数据变换

2020-01-24  本文已影响0人  林拂晓

1.数据集成

(1)概述:数据集成就是把不同来源的数据放在一起。但是来自多个地方的数据一定要做好实体识别与冗余属性识别,避免数据整合错误及数据重复。

(2)过程:

①观察数据源,发现其中关系,详细查看是否有同名不同意,同意不同名的情况;

②进行数据读取与整合;

③去除重复数据。

(3)实例:

【注】数据集成numpy.concatenate()

import numpy

a=numpy.array([[1,9,3],[5,9,2]])

b=numpy.array([[7,4,1],[4,2,7]])

c=numpy.concatenate((a,b))

>>> c

array([[1, 9, 3],

       [5, 9, 2],

       [7, 4, 1],

       [4, 2, 7]])

2.数据变换

数据变换的目的是将数据转换为更方便分析的数据。

(1)简单变换:通常使用函数变换的方式进行,常见的函数变换包括:开方、平方、对数等。

(2)数据规范化

导入数据:

>>>data=pda.read_sql(sql,conn)

①离差标准化(最小-最大标准化)——消除量纲(单位)影响以及变异大小因素的影响。

x1=(x-min)/(max-min)

>>>licha=(data-data.min())/(data.max()-data.min())

离差标准化结果

②标准差标准化(0-均值标准化)——消除单位影响以及变量自身变异影响。

x1=(x-平均数)/标准差

>>>bzc=(data-data.mean())/data.std()

标准差标准化结果

【注】数据中心化与标准化的区别:数据中心化是指变量减去它的均值;数据标准化是指数值减去均值,再除以标准差。通过中心化和标准化处理,得到均值为0、标准差为1的服从标准正态分布的数据。

体现在二维坐标中的结果如下:

数据中心化和标准化

从上图可以看出,数据中心化的几何意义是将原始数据进行平移处理,数据标准化的几何意义是将原始数据进行标准化处理(类似单位化)。

(详细内容参考博文https://blog.csdn.net/lilong117194/article/details/78561013)

③小数定标规范化——消除单位影响

x1=x/10**(k)

k=log10(x的绝对值的最大值)

>>>xsdb=data/10**(npy.ceil(npy.log10(data.abs().max())))

小数定标规范化结果

(3)离散化

①等宽离散化(按区间划分)

pdata=data["price"].copy()

npdata=pdata.T.values

dk=pda.cut(npdata,3,labels=["便宜","适中","贵"])

>>> dk

[便宜, 适中, 贵, 便宜, 便宜, ..., 便宜, 便宜, 便宜, 便宜, 便宜]

Length: 42

Categories (3, object): [便宜 < 适中 < 贵]

【注】等宽离散化:pda.cut(data,等分份数,labels=["差","良","优"])

非等宽离散化:pda.cut(data,[a,a+b,a+b+c],labels=["差","良","优"])

fdk=pda.cut(npdata,[0,100,1000,npdata.max()],labels=["便宜","适中","贵"])

>>> fdk

[NaN,贵, 贵, 适中, 适中, ..., NaN, 适中, 便宜, NaN, NaN]

Length: 42

Categories (3, object): [便宜 < 适中 < 贵]

②等频率离散化(按频数划分)

③一维聚类离散化(先聚类后划分)

(4)属性构造

实例:构造销售量为100时的总价属性

csvdata=pda.read_csv("G:/DA/product.csv",engine="python")

sx=csvdata["price"]*100

csvdata["num"]=100

csvdata["sum"]=sx

file="G:/DA/product.csv"

csvdata.to_csv(file,index=False)

属性构造结果
上一篇 下一篇

猜你喜欢

热点阅读