22、数据建模中的过拟合问题与数据拉直的重要性

数据建模中的过拟合问题与数据拉直的重要性

1. 过拟合问题概述

过拟合是与模型不准确类似的问题,和模型构建本身一样古老,因为它是建模过程的一部分。过拟合的模型试图重现用于构建模型的训练数据,其结果是模型不准确。

1.1 过拟合的背景

过拟合的模型通过利用训练数据的特性来接近重现训练数据,它会包含额外的变量、交互项和变量构造,导致模型过于复杂,变量过多。从另一个角度看,过拟合的模型就像是对数据中主要模式的过于完美的描绘,它记住了训练数据,而不是捕捉到期望的模式。当基于验证数据的模型准确性与基于训练数据的模型准确性相差较大时,就出现了过拟合问题。随着模型拟合度的提高(看似是好事),模型在验证数据上的预测性能反而下降,这就是过拟合的悖论。此外,过拟合模型的预测误差方差较大,即预测误差的置信区间较宽。

1.2 过拟合和欠拟合的形象定义

为了更好地理解过拟合和欠拟合的概念,可以进行如下形象定义:
- 过拟合 :模型的目的是表示训练数据,而不是重现训练数据。如果验证数据中的一个“访客”(个体数据点)在模型中感觉不适应,因为他或她在概率上与训练数据中的典型数据点不同,那么这个模型就是过拟合的。
- 欠拟合 :欠拟合的模型变量太少,过于简单,就像是对主要模式的糟糕描绘,无法很好地捕捉到期望的模式。欠拟合模型会影响误差偏差,预测分数与真实分数相差甚远。

1.3 过拟合和欠拟合的图形示例

假设有两个模型:左边图中的简单模型 g(x) 和右边图中的锯齿模型。我们希望找到一个能最好地表示由圆圈数据点描绘的抛物线主要模式的模型。简单模型 g(x) 只使用一个变量,明显过于简单,无法很好地拟合数据,也不能很好地预测新数据点,这是欠拟合的模型。而锯齿模型使用过多变量来拟合每个数据点,虽然能完美重现数据点,但在预测新数据点时表现不佳,这是过拟合的模型。我们需要的是一个介于两者之间的模型,能够有力地表示抛物线的明显模式。

1.4 模型准确性的讨论

一个拟合良好的模型能够忠实地表示数据中寻求的主要模式,忽略训练数据中的特性。拟合良好的模型通常由少数几个变量定义,验证数据中的个体能够适应模型对主要模式的忠实描绘。拟合良好的模型在验证/保留数据上的准确性与基于训练数据的模型准确性相近。相反,过拟合模型在验证数据上的准确性会与基于训练数据的模型准确性相差较大。

2. GenIQ 模型解决过拟合问题

2.1 GenIQ 模型的步骤

基于 GenIQ 模型的数据挖掘特性,提出了一种解决过拟合问题的新方法,具体步骤如下:
1. 识别特性的复杂性 :确定特性的变量及其构造。
2. 删除导致数据复杂性的个体 :从考虑的数据集中删除这些个体。
3. 构建拟合良好的模型 :在清理后的数据上构建模型,以诚实地表示主要模式。

2.2 案例研究:Overfit 数据集

使用流行的随机分割验证方法,创建一个变量 RANDOM_SPLIT (R - S),将数据集随机分成两半(50% - 50%)。以下是在 Overfit 数据集中构建 RANDOM_SPLIT 的 SAS 代码:

data Overfit;
    set Overfit;
    RANDOM_SPLIT = 0;
    if uniform(12345) = le 0.5 then RANDOM_SPLIT = 1;
run;

Overfit 数据集的变量及其类型如下表所示:
| # | Variable | Type |
| — | — | — |
| 1 | RANDOM_SPLIT | Num |
| 2 | REQUESTE | Num |
| 3 | INCOME | Num |
| 4 | TERM | Num |
| 5 | APPTYPE | Char |
| 6 | ACCOMMOD | Num |
| 7 | CHILDREN | Num |
| 8 | MOVES5YR | Num |
| 9 | MARITAL | Num |
| 10 | EMPLOYME | Num |
| 11 | DIRECTDE | Char |
| 12 | CONSOLID | Num |
| 13 | NETINCOM | Num |
| 14 | EMPLOY_1 | Char |
| 15 | EMAIL | Num |
| 16 | AGE | Num |
| 17 | COAPP | Num |
| 18 | GENDER | Num |
| 19 | INCOMECO | Num |
| 20 | COSTOFLI | Num |
| 21 | PHCHKHL | Char |
| 22 | PWCHKHL | Char |
| 23 | PMCHKHL | Char |
| 24 | NOCITZHL | Char |
| 25 | EMPFLGHL | Char |
| 26 | PFSFLGHL | Char |
| 27 | NUMEMPLO | Num |
| 28 | BANKAFLG | Char |
| 29 | EMPFLGML | Char |
| 30 | PFSFLGML | Char |
| 31 | CIVILSML | Char |
| 32 | TAXHL | Num |
| 33 | TAXML | Num |
| 34 | NETINCML | Num |
| 35 | LIVLOANH | Num |
| 36 | LIVCOSTH | Num |
| 37 | CARLOAN | Num |
| 38 | CARCOST | Num |
| 39 | EDLOAN | Num |
| 40 | EDCOST | Num |
| 41 | OTLOAN | Num |
| 42 | OTCOST | Num |
| 43 | CCLOAN | Num |
| 44 | CCCOST | Num |
| 45 | EMLFLGHL | Char |
| 46 | PHONEH | Num |
| 47 | PHONEW | Num |
| 48 | PHONEC | Num |
| 49 | REQCONSR | Num |
| 50 | TIMEEMPL | Num |
| 51 | AGECOAPP | Num |
| 52 | APPLIEDY | Num |
| 53 | GBCODE | Num |

2.3 基于 Overfit 数据集的建模事件

根据 Overfit 数据集的情况,有三种可能的建模事件:
1. 无噪声情况 :如果 Overfit 没有噪声,以 RANDOM_SPLIT 为因变量构建模型是不可能的。十分位数表中的累积提升值从顶部到底部十分位数都等于 100。此时 Overfit 数据没有特性,使用该数据构建模型可以得到准确的预测。
2. 噪声可忽略情况 :如果 Overfit 的噪声可忽略,构建模型很可能是可行的。十分位数表中前几个十分位数(如前三个)的累积提升值在 [98, 102] 范围内。此时 Overfit 数据几乎没有特性,使用该数据构建模型很可能得到准确的预测。
3. 噪声不可接受情况 :如果 Overfit 的噪声不可接受,构建模型是可行的。十分位数表中前几个十分位数(如前三个)的累积提升值在 [98, 102] 范围之外。此时 Overfit 数据存在导致严重过拟合的特性,通过删除累积提升值在 [98, 102] 范围之外的十分位数中的个体来清理数据。清理后的 Overfit 数据可以构建出拟合良好的模型,从而得到准确的预测。

2.4 RANDOM_SPLIT GenIQ 模型

GenIQ 模型由树状显示和计算机代码两部分组成。使用 Overfit 数据集,以 RANDOM_SPLIT 为因变量构建 GenIQ 模型。RANDOM_SPLIT GenIQ 模型的树状显示(Figure 27.4)可以识别 Overfit 数据中特性的复杂性,其计算机代码如下:

x1 = EDCOST;
If DIRECTDE = “N” Then x2 = 1; Else x2 = 0;
x3 = INCOME;
If x2 NE 0 Then x2 = x3 / x2; Else x2 =1;
x2 = Sin(x2);
x3 = INCOME; 
x2 = x3 - x2; x2 = Sin(x2);
x2 = Cos(x2); x2 = Cos(x2);
If x1 NE 0 Then x1 = x2 / x1; Else x1 =1;
x2 = MARITAL;
If x1 NE 0 Then x1 = x2 / x1; Else x1 =1; 
x1 = Sin(x1);
x2 = EMPLOYME;
If BANKAFLG = “N” Then x3 = 1; Else x3 = 0; 
If x2 NE 0 Then x2 = x3/x2; Else x2 = 1;
x3 = GBCode; 
x2 = x2*x3; x2 = Cos(x2); 
x3 = CON SOLID;
x4 =-.3223163;
If APPTYPE = “B” Then x5 = 1; Else x5=0; 
Lf x4 NE 0 Then x4 = x5/x4; Else x4 = 1; 
x3 = x3 * x4; x3 = Sin(x3); 
x2 = x2 + x3; 
x1 = x1 + x2;
GenlQvar = x1;

2.5 RANDOM_SPLIT GenIQ 模型的十分位数分析

基于 Overfit 数据构建的 RANDOM_SPLIT GenIQ 模型的十分位数分析表明,Overfit 数据存在不可接受的噪声:
1. 十分位数表情况 :十分位数表(Table 27.2)中,前两个十分位数的累积提升值在 [98, 102] 范围之外,这些十分位数中的个体导致了严重的过拟合。十分位数 4、7 和 8 中累积提升值为 103 的个体可能存在问题,需要通过准 N - 分位数分析来进一步确定。
2. 十分位数表的局限性 :十分位数表是通过简单地将数据分成 10 个大小相等的行构建的,不考虑个体模型得分。由于模型得分经常会溢出到较低的十分位数,这种简单的十分位数表通常会对模型性能产生有偏差的评估。
3. 得分溢出问题 :在 Table 27.2 中,第一个十分位数的最低得分(2.09)溢出到了第二个十分位数。由于不知道得分 2.09 的数据点在第二个十分位数中的具体数量,只能猜测具有 2.09 噪声的数据百分比在 (0%, 20%) 范围内。
4. 准 N - 分位数分析的作用 :准 N - 分位数分析可以揭示得分在连续十分位数中的溢出情况。

2.6 准 N - 分位数分析

为了了解模型得分在连续十分位数中的分布情况,需要进行准 N - 分位数分析。准 N - 分位数分析将模型得分分成得分组或 N - 分位数,每个 N - 分位数内的个体具有不同的得分,不同的 N - 分位数之间得分也不同。这种智能分析可以消除模型得分的溢出,从而对模型性能进行无偏评估。对 RANDOM_SPLIT 十分位数表的准分析结果如下:
| Select Number of Tiles | 20 |
| — | — |
| N.TILE | NUMBER OF INDIVIDUALS |
| Top | 56 |
| 2 | 23 |
| 3 | 16 |
| 4 | 33 |
| 5 | 44 |
| 6 | 503 |
| N.TILE | NUMBER OF Random_Split |
| Top | 40 |
| 2 | 15 |
| 3 | 8 |
| 4 | 20 |
| 5 | 19 |
| 6 | 240 |
| N.TILE | Random_Split RATE (%) |
| Top | 71.43 |
| 2 | 65.22 |
| 3 | 50.00 |
| 4 | 60.61 |
| 5 | 43.18 |
| 6 | 47.71 |
| N.TILE | CUM Random_Split RATE (%) |
| Top | 71.43 |
| 2 | 69.62 |
| 3 | 66.32 |
| 4 | 64.84 |
| 5 | 59.30 |
| 6 | 50.67 |
| N.TILE | CUM% of SAMPLE |
| Top | 04.00 |
| 2 | 05.64 |
| 3 | 06.79 |
| 4 | 09.14 |
| 5 | 12.29 |
| 6 | 48.21 |
| N.TILE | CUM LIFT (%) |
| Top | 143 |
| 2 | 139 |
| 3 | 133 |
| 4 | 130 |
| 5 | 119 |
| 6 | 101 |

从上述分析可以看出:
1. 智能分析只产生了六个 N - 分位数,因为显然只有六个不同的得分。
2. 前五个 N - 分位数的累积提升值在 [98, 102] 范围之外。
3. 这些 N - 分位数中共有 170(56 + 23 + 16 + 33 + 44)个个体。
4. 第五个得分组的累积提升值为 119,之后累积提升值在 [100, 102/103] 范围内。
5. 删除这 170 个个体可以消除 Overfit 数据中的噪声源。

清理后的 Overfit 数据再次运行 GenIQ 模型,得到的十分位数表(Table 27.4)显示累积提升值在 [100, 101] 范围内,说明 Overfit 数据已清理干净,可以用于构建拟合良好的模型。

3. 数据拉直的重要性

3.1 数据拉直的原因

有五个原因说明数据拉直的重要性:
1. 线性关系的简单性 :两个连续变量(如 X 和 Y)之间的直线(线性)关系是最简单的。当 X 的值增加(减少)时,Y 的值也相应增加(减少),则称 X 和 Y 正相关;反之则为负相关。例如,爱因斯坦的 E 和 m 具有完美的正线性关系。
2. 便于数据分析 :使用线性数据,数据分析师可以轻松了解数据内部的情况。线性数据是良好模型构建实践的理想元素。
3. 营销模型的要求 :大多数营销模型属于统计线性模型的众多变体,需要因变量与模型中的每个预测变量以及所有预测变量联合起来(将它们视为具有多元分布的预测变量数组)之间存在线性关系。
4. 非线性模型的表现 :虽然非线性模型在非直线数据上也能给出较好的预测,但实际上在直线数据上表现更好。
5. 对称性与直线性的关系 :直线性和对称性往往是相辅相成的。拉直数据通常会使数据具有对称性,反之亦然。统计中标志性的对称数据分布是钟形分布。

3.2 重新表达 INCOME 变量

在 PROFIT - INCOME 平滑图中,尽管平滑轨迹显示有四个严重的弯曲,但可以设想有一条潜在的正斜率直线贯穿 10 个数据点。基于一般关联测试,TS(测试统计量)值为 6,几乎等于临界值 7,因此可以得出 PROFIT 和 INCOME 之间几乎存在明显的直线关系,相关系数为 0.763。尽管有这些直线性的指标,但这种关系仍需要一些拉直处理,不过显然“凸起规则”不适用。

使用 GenIQ 模型重新表达 INCOME 变量,通过以下公式定义重新表达的 INCOME 变量 gINCOME:

gINCOME = sin(sin(sin(sin(INCOME)))*INCOME) + log(INCOME)

该结构使用三角函数正弦函数(四次)和对数(以 10 为底)函数的非线性重新表达,来缓解 PROFIT - INCOME 关系中的“弯曲”。重新表达后,PROFIT 和 INCOME(通过 gINCOME)之间的关系确实得到了平滑,平滑轨迹显示没有严重的弯曲。再次基于 TS 值为 6(几乎等于临界值 7),可以得出 PROFIT - gINCOME 之间几乎存在明显的直线关系,相关系数为 0.894。

从视觉上看,GenIQ 程序在拉直数据方面的效果很明显,原始 PROFIT 平滑图中的尖锐峰谷与重新表达后的平滑波形形成鲜明对比。从数量上看,基于 gINCOME 的关系相比基于 INCOME 的关系,相关系数提高了 7.24%(= (0.894 - 0.763)/0.763)。

3.3 GenIQ 模型在重新表达 INCOME 变量中的细节

GenIQ 模型用于 gINCOME 的树状显示和计算机代码如下:

GenIQ Model Tree
Profit
GenIQ Model Computer Code
x1 = INCOME;
x2 = x2 + x3;
x1 = x1 + x2;
x2 = sin (x2);
x2 = sin (x2);
x2 = INCOME;
x3 = INCOME;
GenIQvar = x1;
gINCOME = GenIQvar;
x2 = sin (x2);
x1 = Log (x1);
x2 = sin (x2);

3.4 数据挖掘 (xx3, yy3) 变量对

使用机器学习方法(基于遗传编程的进化计算)对配对变量 (xx3, yy3) 进行数据挖掘,挖掘结果得到了相应的散点图。基于遗传编程的数据挖掘(GP - DM)是一种机器学习自适应智能过程,在拉直数据方面非常有效。使用的挖掘软件是 GenIQ 模型,它将数据挖掘后的变量重命名为以 GenIQvar 为前缀,数据挖掘后的 (xx3, yy3) 被重新标记为 (xx3, GenIQvar(yy3))。

3.5 GenIQ 模型在 (xx3, yy3) 变量对挖掘中的细节

GenIQ 模型用于 GenIQvar(yy3) 的树状显示和计算机代码如下:

GenIQ Model Tree
GenIQ(yy3)
GenIQ Model Computer Code
x1 = 0.6550772;
x2 = x2 + x3;
x1 = x1 + x2;
x2 = xx3;
x2 = Cos (x2);
If x1 ne 0 then x1 = x2/x1;
x3 = xx3;
GenIQvar (yy3) = x1;
Else x1 = 1;
x2 = xx3;

综上所述,过拟合是数据建模中常见的问题,通过 GenIQ 模型可以有效地解决过拟合问题。同时,数据拉直对于数据建模也非常重要,GenIQ 模型在数据拉直方面也展现出了良好的效果。在实际的数据建模过程中,我们应该充分考虑这些因素,以构建出准确、有效的模型。

4. GenIQ 模型解决过拟合问题的流程梳理

为了更清晰地展示使用 GenIQ 模型解决过拟合问题的过程,下面通过 mermaid 流程图来呈现:

graph TD
    A[开始] --> B[识别特性复杂性]
    B --> C[删除导致复杂性个体]
    C --> D[构建拟合良好模型]
    D --> E[使用随机分割验证]
    E --> F{Overfit 数据情况}
    F -->|无噪声| G[以 RANDOM_SPLIT 为因变量构建模型不可行]
    F -->|噪声可忽略| H[构建模型可行,累积提升值在[98, 102]范围]
    F -->|噪声不可接受| I[构建模型可行,累积提升值在[98, 102]范围外]
    I --> J[删除累积提升值在范围外十分位数个体]
    J --> K[清理后数据构建拟合良好模型]
    G --> L[得到准确预测]
    H --> L
    K --> L
    L --> M[结束]

从这个流程图可以清晰地看到,使用 GenIQ 模型解决过拟合问题是一个系统的过程,从最初的特性识别,到数据清理,再到模型构建和验证,每个步骤都紧密相连,最终目的是得到一个能够准确预测的拟合良好的模型。

5. 数据拉直操作的关键要点总结

5.1 数据拉直操作步骤

数据拉直操作在实际应用中具有重要意义,以下是使用 GenIQ 模型进行数据拉直操作的具体步骤:
1. 确定需要拉直的数据关系 :例如 PROFIT 和 INCOME 之间的关系,通过观察图形和相关统计指标(如 TS 值、相关系数)来判断是否需要拉直以及拉直的必要性程度。
2. 选择合适的拉直方法 :对于具有非线性特征的数据,如 PROFIT - INCOME 关系中的严重 kinks,选择 GenIQ 程序这种基于机器学习、遗传算法的数据挖掘方法。
3. 执行数据重新表达 :根据 GenIQ 模型的规则,对数据进行重新表达。如对 INCOME 变量,使用公式 gINCOME = sin(sin(sin(sin(INCOME)))*INCOME) + log(INCOME) 进行重新表达。
4. 评估拉直效果 :通过观察重新表达后的数据关系图形(如平滑轨迹)和统计指标(如相关系数)来评估拉直效果。例如,PROFIT - gINCOME 关系的相关系数从 0.763 提高到 0.894,说明拉直效果显著。

5.2 不同数据关系拉直示例对比

为了更直观地理解数据拉直的效果,下面通过表格对比不同数据关系拉直前后的情况:
| 数据关系 | 拉直前相关系数 | 拉直后相关系数 | 提升百分比 | 拉直方法 |
| — | — | — | — | — |
| PROFIT - INCOME | 0.763 | 0.894 | 7.24% | GenIQ 模型重新表达 INCOME 为 gINCOME |
| (xx3, yy3) | 未提及 | 未提及 | 未提及 | 使用 GenIQ 模型进行数据挖掘,重命名为 (xx3, GenIQvar(yy3)) |

从这个表格可以看出,GenIQ 模型在不同数据关系的拉直操作中都具有一定的效果,能够提高数据之间的线性关系,从而为后续的模型构建提供更好的数据基础。

6. 过拟合与数据拉直的综合应用思考

6.1 过拟合问题与数据拉直的关联

过拟合问题和数据拉直看似是两个不同的概念,但实际上它们在数据建模过程中是相互关联的。过拟合问题主要是由于模型过于复杂,过度拟合了训练数据中的特性,导致在验证数据上表现不佳。而数据拉直则是将数据中的非线性关系转化为线性关系,使数据更加易于分析和建模。如果数据没有进行有效的拉直处理,可能会导致模型在构建过程中为了拟合复杂的非线性关系而变得过于复杂,从而增加过拟合的风险。例如,在 PROFIT - INCOME 关系中,如果不进行数据拉直,模型可能会引入过多的变量和复杂的交互项来拟合这种非线性关系,进而导致过拟合。

6.2 综合应用的实践建议

在实际的数据建模过程中,为了避免过拟合问题,同时实现数据的有效拉直,可以采取以下实践建议:
1. 数据预处理阶段 :在构建模型之前,对数据进行全面的分析,判断数据中是否存在非线性关系。如果存在,优先使用数据拉直方法(如 GenIQ 模型)对数据进行处理,使数据更加线性化。
2. 模型构建阶段 :在使用处理后的数据构建模型时,结合 GenIQ 模型解决过拟合问题的方法,识别数据中的特性复杂性,删除导致过拟合的个体,构建一个简单而有效的模型。
3. 模型评估阶段 :使用验证数据对构建好的模型进行评估,观察模型在验证数据上的准确性和稳定性。如果发现模型仍然存在过拟合问题,进一步检查数据拉直的效果和特性删除的情况,进行必要的调整。

通过综合应用过拟合问题的解决方法和数据拉直技术,可以提高数据建模的准确性和可靠性,为实际应用提供更有价值的预测结果。

7. 总结与展望

7.1 总结

本文围绕数据建模中的过拟合问题和数据拉直的重要性展开了详细的讨论。过拟合是数据建模中常见的问题,它会导致模型在验证数据上的表现不佳,影响预测的准确性。通过 GenIQ 模型,我们可以识别数据中的特性复杂性,删除导致过拟合的个体,从而构建出拟合良好的模型。数据拉直则是提高数据质量和建模效果的重要手段,GenIQ 模型在数据拉直方面具有独特的优势,能够将非线性数据转化为线性数据,提高数据之间的相关性。

7.2 展望

在未来的数据建模领域,随着数据量的不断增加和数据复杂性的不断提高,过拟合问题和数据拉直的重要性将更加凸显。我们需要不断探索和改进现有的方法,提高 GenIQ 模型的性能和适用性。例如,可以进一步研究如何更准确地识别数据中的特性复杂性,如何优化数据拉直的方法,以适应不同类型和规模的数据。同时,还可以将 GenIQ 模型与其他先进的机器学习算法相结合,构建更加智能和高效的数据建模系统,为各个领域的决策提供更加准确和可靠的支持。

提供了一个基于51单片机的RFID门禁系统的完整资源文件,包括PCB图、原理图、论文以及源程序。该系统设计由单片机、RFID-RC522频射卡模块、LCD显示、灯控电路、蜂鸣器报警电路、存储模块和按键组成。系统支持通过密码和刷卡两种方式进行门禁控制,灯亮表示开门成功,蜂鸣器响表示开门失败。 资源内容 PCB图:包含系统的PCB设计图,方便用户进行硬件电路的制作和调试。 原理图:详细展示了系统的电路连接和模块布局,帮助用户理解系统的工作原理。 论文:提供了系统的详细设计思路、实现方法以及测试结果,适合学习和研究使用。 源程序:包含系统的全部源代码,用户可以根据需要进行修改和优化。 系统功能 刷卡开门:用户可以通过刷RFID卡进行门禁控制,系统会自动识别卡片并判断是否允许开门。 密码开门:用户可以通过输入预设密码进行门禁控制,系统会验证密码的正确性。 状态显示:系统通过LCD显示屏显示当前状态,如刷卡成功、密码错误等。 灯光提示:灯亮表示开门成功,灯灭表示开门失败或未操作。 蜂鸣器报警:当刷卡或密码输入错误时,蜂鸣器会发出报警声,提示用户操作失败。 适用人群 电子工程、自动化等相关专业的学生和研究人员。 对单片机和RFID技术感兴趣的爱好者。 需要开发类似门禁系统的工程师和开发者。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值