yznnnn

【人工智能】2 数据预处理

1. 拟合-插值与回归

   当获得的数据集中的一部分存在缺失或者异常时,除了无视和删除外,最好的方法是根据数据集的整体信息对其进行预测。拟合就是用来解决这一问题的。

   插值与回归都可以用来预测数据,但算法上是有区别的:

  • 插值:插值法构造的函数图像必须正好经过所有的数据点
  • 回归:拟合法构造的函数图像不需要正好经过所有数据点,只需要逼近就可以了

   好的拟合不应该出现下列两种情况:

  • 过拟合(over-fitting):拟合在训练样本集上的表现太好,但在测试样本集上表现的不好
  • 欠拟合(under-fitting):拟合在训练样本上表现的不好,缺失特征。

不论是过拟合还是欠拟合,都是要不得的!

   当然,现在最火的拟合是神经网络方法!

1.1. 插值

   这里介绍一下牛顿插值法

   已知有 \(n\) 个点对 \((x_0,y_0),(x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_n,y_n)\) 。他们的阶差商公式为:

\[f[x_i,x_j]=\frac{f(x_i)-f(x_j)}{x_i-x_j}\\ f[x,x_0]=\frac{f(x)-f(x_0)}{x-x_0}\\ f[x,x_0,x_1]=\frac{f[x,x_0]-f[x_0,x_1]}{x-x_1}\\ f[x,x_0,x_1,...,x_n]=\frac{f[x,x_0,...,x_{n-1}]-f[x_0,x_1,...,x_n]}{x-x_n}\\ \]

则插值多项式为:

\[\begin{align} f(x) = &f(x_0) +\\ & f[x_0,x_1](x-x_0)+ \\ & f[x_0,x_1,x_2](x-x_0)(x-x_1) +\\ & ...\ ...\ ... \ ...\ + \\ & f[x_0,x_1,x_2,...,x_n](x-x_0)(x-x_1)...(x-x_n) \\ \end{align} \]

   在编程时,应该先求出插商表:(假设有5对值)

\(x_i\) \(y_i\) 1阶插商 2阶插商 3阶插商 4阶插商
\(x_0\) \(y_0\)
\(x_1\) \(y_1\) \(f[x_0,x_1]\)
\(x_2\) \(y_2\) \(f[x_1,x_2]\) \(f[x_0,x_1,x_2]\)
\(x_3\) \(y_3\) \(f[x_2,x_3]\) \(f[x_1,x_2,x_3]\) \(f[x_0,x_1,x_2,x_3]\)
\(x_4\) \(y_4\) \(f[x_3,x_4]\) \(f[x_2,x_3,x_4]\) \(f[x_1,x_2,x_3,x_4]\) \(f[x_0,x_1,x_2,x_3,x_4]\)

然后将表中的值代入到 \(f(x)\) 中即可。

测试

1.2. 回归

   回归的算法有很多种,这里介绍最小二乘法非线性回归。

   现在给定一系列数据点 \(p_i(x_i,y_i),(i=1,2,3,..,n)\) ,假设对于这些点,有一个完美的曲线与之对应,即 \(y=f(x)(y_i=f(x_i))\) ,但这个曲线的方程我们无从得知,只好得出一个无限接近于这个完美曲线的近似曲线 \(z=g(x)\)

   为了评价 \(f(x)\)\(g(x)\) 的近似程度,引入了一个评价标准——偏差平方和:

\[E=\sum_{i=1}^n (g(x_i)-f(x_i))^2\\ \]

只要使 \(E\) 最小,就意味着 \(f(x)\)\(g(x)\) 的近似程度达到了我们能做到的极限。

   我们使用多项式曲线进行回归,\(k\) 阶多项式方程为:

\[\begin{align} g(x) & = \sum_{i=0}^k a_ix^i\\ & = a_0+a_1x+...+a_{k-1}x^{k-1}+a_kx^k \\ \end{align} \]

   现在问题的关键就是求参数 \(a_i\),抛开繁杂的求导法,从线性代数的角度来看:

\[A= \left[ \begin{matrix} a_k& a_{k-1}&...& a_2& a_1& a_0 \end{matrix} \right]_{1×k}\\ X= \left[ \begin{matrix} x_1^k & x_1^{k-1} & \cdots & x_1^2 & x_1 & 1\\ x_2^k & x_2^{k-1} & \cdots & x_2^2 & x_2 & 1\\ x_3^k & x_3^{k-1} & \cdots & x_3^2 & x_3 & 1\\ \vdots & \vdots & \ddots & \vdots & \vdots & \vdots\\ x_n^k & x_n^{k-1} & \cdots & x_n^2 & x_n & 1\\ \end{matrix} \right]_{n×k} \\ Y= \left[ \begin{matrix} y_1\\y_2\\y_3\\\vdots\\y_n \end{matrix} \right]_{n×1} \\ A=\frac{X^TY}{X^TX} \]

通过矩阵运算,就可以将满足 \(E\) 最小的 \(A\) 求出来了,\(g(x)\) 自然也就求出来了。

   Matlab代码:

function [answer,test_x,test_y]=LeastSquaresCurveFitting(n,x,y)
%%最小二乘法曲线拟合
%输入:1.拟合阶数n
%      2.拟合点值x,y
%输出:1.拟合系数answer
%      2.模拟点值
%%
%构造x矩阵
x0=ones(length(x),n);
for i=1:length(x)
    for j=n+1:-1:1
        x0(i,j)=x(i)^(j-1);
    end
end
%构造y矩阵
y0=y\';
%计算系数矩阵
answer=(x0\'*x0)\(x0\'*y0);

answer=fliplr(answer);

test_x=2:0.01:16;
test_y=ones(1,length(test_x));
for i=1:length(test_x)
    for j=n+1:-1:1
        test_y(i)=test_y(i)+(test_x(i)^(j-1))*answer(j);
    end
end
z=1
end

2. 数据规范化

   不同评价指标往往具有不同的量纲,数值见的差别可能很大,不进行处理可能会影响到数据分析的结果。为了消除指标之间的量纲和取值范围差异的影响,需要进行标准化处理,将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。

  数据根据性质的不同可以分为两种:

  1. 成本型数据:数据值越小越好
  2. 效益型数据:数据值越大越好

2.1. 基本线性变换

  现有一组未规范化的数据 \(X\),对应的规范数据为 \(Y\)

\[X=\left[ \begin{matrix} x_1 & x_2 & x_3 &......&x_n \\ \end{matrix} \right]\\ Y=\left[ \begin{matrix} y_1 & y_2 & y_3 &......&y_n \\ \end{matrix} \right]\\ \]

\(X\) 属于成本型数据

\[y_i=1-\frac{x_i}{X_{max}} \]

\(X\) 属于效益型数据

\[y_i=\frac{x_i}{X_{max}} \]

2.2. 最小-最大规范化

  经过变换的最佳属性值不一定为1,最差属性值为0。
  该方法亦称为 离散标准化 或者 标准0-1变换,是对原始数据的线性变换,将数据值映射到 \([0, 1]\)之间。
  现有一组未规范化的数据 \(X\),对应的规范数据为 \(Y\)

\[X=\left[ \begin{matrix} x_1 & x_2 & x_3 &......&x_n \\ \end{matrix} \right]\\ Y=\left[ \begin{matrix} y_1 & y_2 & y_3 &......&y_n \\ \end{matrix} \right]\\ \]

\(X\) 属于成本型数据

\[y_i=\frac{x_i-X_{max}}{X_{max}-X_{min}} \]

\(X​\) 属于效益型数据

\[y_i=\frac{X_{max}-x_i}{X_{max}-X_{min}} \]

  在不涉及距离度量、协方差计算、数据不符合正太分布的时候,使用该方法比较好

2.3. 零-均值规范化(z-score标准化)

  0均值归一化方法将原始数据集归一化为均值为0、方差1的数据集(\([0, 1]\) 范围)
  现有一组未规范化的数据 \(X\),对应的规范数据为 \(Y​\)

\[X=\left[ \begin{matrix} x_1 & x_2 & x_3 &......&x_n \\ \end{matrix} \right]\\ Y=\left[ \begin{matrix} y_1 & y_2 & y_3 &......&y_n \\ \end{matrix} \right]\\ \]

\[y_i=\frac{x_i-\bar{x}}{S} \]

其中 \(\bar{x}\)\(X\) 的平均值,\(S\)\(X​\) 的标准差。

分类:

技术点:

相关文章:

  • 2021-08-07
  • 2021-08-23
  • 2021-06-27
  • 2021-12-19
  • 2021-06-01
  • 2021-12-02
  • 2021-12-05
  • 2022-02-08
猜你喜欢
  • 2021-08-28
  • 2021-08-06
  • 2021-12-11
  • 2021-09-17
  • 2021-12-15
  • 2022-01-13
  • 2021-09-25
相关资源
相似解决方案