数据预处理是大数据处理流程中必不可少的关键步骤,更是进行数据分析和数据挖掘前必不可少的重要工作。由于种猪生产的原始数据比较散乱,一般不符合数据分析和数据挖掘所要求的规范和标准,因此必须对这些原始数据进行预处理,以改进数据质量,并提高数据挖掘过程的效率、精度和准确性。
一般情况下,数据预处理的流程是:数据的清洗、数据的集成、数据的变换、数据的规约。本文将从数据变换开始介绍。
数据变换数据变换(data transformation)也叫数据转换,是数据处理中最常用的技术,广泛用于数据分析与数据挖掘。简单的函数变换包括平方、开方、取对数差分运算等,可以将不具有正态分布的数据变换成具有正态分布的数据,对于时间序列分析,有时简单的对数变换和差分运算就可以将非平稳序列转换成平稳序列。数据变换通过数据平滑、数据聚集、数据概化和数据规范化等方式将数据转换成适用于数据挖掘的形式。
数据平滑
去除数据中的噪声,将连续数据离散化,可采用分箱、聚类和回归的方式进行数据平滑。
分箱法是通过考察数据的“紧邻”即周围的值来光滑有序数据值。这些有序数据值被分布到一些“桶”或“箱”中。回归法是通过已有的相关数据拟合一个函数来光滑数据,如线性回归、多元线性回归等找出适合数据的数学方程,来消除噪声。聚类法是将类似的值组织成群或能,将落在簇集合之外的点视为离群点。一般这种离群点是异常的数据。最终会影响整体数据的分析结果,因此对离群点的操作就是删除。例如,在建立美系母猪分娩背膘厚与产健仔数的关系时,首先要划分背膘厚的范围,即“分箱”,分为<15mm、15~17mm、18~20mm、21~24mn和>24mm5个“数据箱”;再对每个“数据箱”的健仔数据求平均值,用平均值代替箱子中的所有数据;然后通过回归分析通过发现分娩背膘厚与产健个数两个相关变量之间的相关关系,构造一个回归函数,使得该函数能够更大系度地满足两个变量之间的关系,使用这个函数来平滑数据。
通过数据平滑建立分娩背膘厚与产健仔数之间的关系
数据聚集
数据聚集是指对数据进行汇总和集中。例如,每头母猪每个胎次的产仔数据,或计算一年和终身的产仔数。通常,这一步骤用于为多个抽象层的数据分析构造数据立方体。
数据概化
数据概化是指将数据由较低的概念抽象成为较高的概念,减少数据复杂度。例如,对于公猪的月龄这种数值属性,“原始数据”可能包含10、12、16、18、20、24、28、30、36等,可以将上述数据映射到较高层的概念,如青年公猪、成年公猪和老年公猪。
数据规范化
数据规范化是指使属性数据按比例缩放,将原来的数值映射到一个新的特定区域中。常用方法包括Min-max 规范化、Z-score规范化和小数定标规范化等,
Min-max 规范化将原始数据变换到[0,1]的空间中。新数值=(原数值-极小值)/(极大值-极小值)。
scikit-learn 中调用:preprocessing. MinMaxScaler()
Z-score 规范化新数值=(原数值-均值)/标准差,其优点是算法简单、不受量纲影响、结果易于比较;缺点是需要数据整体平均值和方差、结果没有实际意义,仅用于比较。
scikit-learn 中调用:preprocessing.scale()
小数定标规范化通过移动小数点的位置来进行规范化。小数点移动多少位取决于属性A的取值中的最大绝对值。
以.Min-max 规范化为例,假设关于属性公猪射精量一组数据的最小值与最大值分别为100mL和500mL,根据Min-max规范化,射精量值300mL将转化为:(300-100)/(500—100)=0.5。