简单函数变换
在某些情况下,采取一些简单的函数变换对我们的建模会有所帮助。 比如:
当使用线性回归模型无法很好地拟合数据时,先对数据做一个 log 变换(转换成 非线性模型),再进行拟合往往会有不错的效果;
当数据跨度非常大时,数据较为稀疏,不便于计算机处理,此时对数据做一个 log10 变换可以使数据跨度变小,数据更为密集,方便运算。
标准化变换
标准化,又称规范化,目的是将原来的度量值转换为无量纲的值,使得不同量纲 的指标可以在同一水平线上进行比较,而且除了概率模型(树模型)之外,其他模型如神经网络、最邻近分类和聚类算法等,都需要先对数据进行标准化,以消除量纲,缩放数据,加快算法的收敛速度。
MATLAB 提供了 normalize 函数对数据进行标准化,语法格式如下:
N = normalize(A, dim, method, methodtype)
A: 输入数据,指定为标量、向量、矩阵、多维数组、表或时间表。
dim: 运算维度,默认为 1,按列进行标准化; 设为 2 则按行进行标准化。
method: 字符型参数,默认为‘zscore’法,具体选项见下表:
连续属性离散化: 也即离差标准化,公式如下: