数据获取与预处理
训练神经网络的步骤
数据搜集->数据预处理->数据分析->训练算法->测试算法
数据搜集
- 手动搜集
- 公开可用的数据集
- 第三方数据许可
原始数据往往是垃圾数据,存在着几个问题:不一致,重复,含噪声,不完整,维度高,Garbage in,garbage out.数据很烂,无疑模型输出就很烂.
数据预处理
数据清洗
对数据进行重新审查和校验的过程,目的在于删除重复信息、纠正存在的错误,并提供数据一致性
数据清洗中常见问题及解决方法
- 数据缺失
- 对某一属性值,缺失的数据占比很小,可以简单的去除这些缺失数据
- 对某一属性值,缺失的数据占比很大
- 可以去除这个属性
- 用其他属性值来填补
- 对缺失值
- 可以用特定的内容填充,例如0,null,未知等,不过这个要根据实际来判断这样的填充是否有利于后期的数据分析
- 一些可推断的数值可以用均值,中位数这些来填充,比如按照时间序列排序的数据
- 还有一些统计学上更为复杂的填充方式,比如贝叶斯,回归
- 缺失值不影响结果,也可以忽略
- 重复
重复这个问题也是需要对数据做一个初步的判断,有些重复数据是无用的,需要查重并删除,但是有些情况,比如主题模型当中,需要统计词频,此时不但不能去重,而且相同词根的词也要做出处理,使其在统计时叠加,否则主题概率会出现问题
噪声
- 数据可视化,最直观的方法(适用于可以在空间中表示出来的低维数据)
- 简单的统计,已知一个属性值的特定范围,就可以简单地把范围以外的数据筛选出去。比如是一个城市中的一些建筑位置统计,你知道该城市的经纬度范围,在此之外的点一定是有错误的
- 3*数据符合正态分布,那么与均值的差超过三倍标准差的都可视作异常值
- 基于距离,在数据量不大,而且距离易于计算的时候可以使用
- 基于箱型图分析
- 删除
- 不处理
- 均值替代
- 手工更正
维度高(这里针对的是一些可以合并的属性或是对分类或聚类无影响的属性)
- 特征选择
特征选择即数据中包含大量无关变量,我们要在其中找出主要变量。代表方法为 LASSO 算法
- 特征提取
特征提取即将高维数据转化为低维数据,可能舍弃原有数据,也可能创建新的变量,代表方法就是很常见的主成分分析(PCA)了
不一致
数据集成
数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中
数据集成常见问题
- 模式匹配
- 数据冗余
- 数据值冲突
数据变换
在对数据进行统计分析时,要求数据必须满足一定的条件
数据分箱和平滑
数据分箱
- 等深分箱(将数据集按记录行数分箱,每箱具有相同的记录数,每箱记录数称为箱子的深度)
- 等宽分箱(统一区间,也称等宽分箱法,使数据集在整个属性值的区间上平均分布,即每个箱的区间范围是一个常量,称为箱子宽度)
- 最小熵法(需要使总熵值达到最小,也就是使分箱能够最大限度地区分因变量的各类别)
- 用户自定义区间法(用户可以根据需要自定义区间,当用户明确希望观察某些区间范围内的数据分布时,使用这种方法可以方便地帮助用户达到目的)
数据平滑(用特定值代替箱中数据)
- 按平均值平滑
- 按边界值平滑
- 按中值平滑
聚集
数据概化
规范化
由于所用的度量单位可能影响数据分析,为了避免对度量单位的依赖性,数据应该规范化或标准化。这涉及变换数据,是指落入较小的公共区间,如[-1,1]或者[0.0,1.0]
A是属性值,具有N个观测值,v1,v2,…vN
- 最小-最大规范化
- Z分数规范化/零均值规范化
- 小数定标
属性构造
数据规约
数据归约是指在尽可能保持数据原貌的前提下,最大限度地精简数据量
文章较偏向理论,缺乏实际演示,内容比较浅显
Any question please contact 1-riverfish