预处理流程:数据清洗、集成、转换、规约
一、数据清洗
(1)缺失值处理
* 均值等插补
* 固定值
* 最近值插补
* 回归拟合
* 函数插值(拉格朗日插值法、牛顿插值法 )
def insert(x,n,k=5):
y=x[list(range(n-k,n)+list(range(n+1,n+1+k))]
y=y[y.isnotnull()]
return lagrange(y.index,list(y))(n) #返回第n个数的拉格朗日值
for i in data.columns:
for j in range( len(data)):
if (data[i].isnull())[j]:
data[i][j]=insert(data[i],j)
二、数据集成
定义:多个数据源合并存放在一个一致的数据存储(如:数据仓库)的过程
实体识别、冗余属性识别(相关性检测)
三、数据转换
- 函数转换(数字大:对数转换)
- 规范化(消除量纲和取值范围差异的影响:将数据缩放到同一个区间)
1. 最小-最大规范化
2. 零-均值规范化 均值为0,标准差为1
3. 小数定标规范化 - 连续属性离散化(分类算法):等频法、等宽法、聚类法
- 属性构造(新属性)
- 小波变换
四、数据规约
- 属性规约(合并/主成分、逐步向前/逐步向后/决策树)
主成分:降维:pca=PCA(n) pca.fit(data)
low_d=pca.transform(data) - 数值规约(有参数方法:线性回归、多元回归;
无参数方法:直方图、聚类、抽样)
五、python主要预处理函数
pca/isnull/notnull/interpolate/unique/random