参考文献:《Python数据分析与挖掘实战》
数据清洗
数据清洗:删除数据集中无关数据,重复数据,平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值和异常值。
- 缺失值处理:删除记录、数据插补。
插补方法 | 方法描述 |
---|---|
均值/中位数/众数插补 | 按照属性值的类型取值 |
使用固定值 | 用常量替换 |
最近临插补 | 用缺失样本最接近的样本的属性值 |
回归方法 | 建立拟合模型预测缺失的属性值 |
插值法 | 根据已有数据建立插值函数f(x)计算f(xi) |
拉格朗日插值法:
inputfile = '../data/catering_sale.xls'
outputfile = '../data/sales.xls'
data = pd.read_excel(inputfile)
data[(data[u'销量'] < 400) | (data[u'销量'] > 5000)] = None
def ployinterp_column(index, df, k=5):
y = df[list(range(index - k, index)) + list(range(index + 1, index + 1 + k))]
y = y[y.notnull()]
return lagrange(y.index, list(y))(index)
df = data[data[u'销量'].isnull()]
index_list = df[u'销量'].index
for index in index_list:
data[[u'销量']][index] = ployinterp_column(index, data[u'销量'])
data.to_excel(outputfile)
- 异常值处理:删除异常记录,视为缺失值,用均值修正
数据集成
将多个数据源合并在一个一致的数据存储的过程(冗余属性识别、实体识别)
数据变换
对数据进行规范化处理,转化为适当的形式
(1) 简单函数变化:将不具有正态分布的数据变换成具有正态分布的数据。在时间序列分析中,简单的对数变换或者差分运算可以将非平稳序列转换为平稳序列。使用对数变换还可以对数据进行压缩。
(2) 规范化:也称归一化,消除指标之间的量纲和取值范围差异的影响进行标准化处理,将数据按比例缩放,使其在一个特定范围&