机器学习(Basic Concept)
video | ppt | blog |
---|
Where does the error come from?
在前面我们讨论误差的时候,我们提到了Average Error On Testing Data是最重要的
A more complex model does not lead to better performance on test data
Bias And Variance
Bias(偏差)
偏差指的是模型在训练过程中对于真实关系的错误假设或简化程度。当模型具有较高的偏差时,它倾向于对问题进行过于简单的建模,从而忽略数据中的一些复杂特征或模式。这可能导致模型在训练数据上表现较差,并且很可能在测试数据上也表现不佳,即出现欠拟合的现象。通常,高偏差的模型过于刚硬,难以适应数据的变化和复杂性.
偏差:
整体预测值与真实值之间的误差,具体表现为预测的整体与正确预测的偏离程度。
Variance(方差)
方差指的是模型在不同训练集上预测结果的变化程度。当模型具有较高的方差时,它对于训练数据中的噪声和随机性非常敏感,从而导致在不同的训练集上表现差异较大。这可能表现为在训练数据上表现很好,但在测试数据上表现较差的现象,即出现过拟合。过拟合意味着模型过于复杂,过于适应训练数据的细节,而无法很好地泛化到新数据。
方差:
预测值离期望值的距离,具体表现为数据的分散程度。
来源
多项式拟合次数 | 模型复杂度 | 方差 | 偏差 | 过/欠拟合 |
---|---|---|---|---|
低 | 低 | 低 | 高 | 欠拟合 |
中 | 中 | 中 | 中 | 适度 |
高 | 高 | 高 | 低 | 过拟合 |
区别:
- 偏差关注的是模型对问题的刻画能力,即是否能够捕捉到数据的真实规律,过高的偏差导致欠拟合。
- 方差关注的是模型对训练数据的敏感性,即是否过度适应了训练数据,导致在新数据上泛化能力差,过高的方差导致过拟合。
- 偏差和方差都是希望降低的,因为它们都可能导致模型在不同情况下表现不佳。优化模型的目标是在偏差和方差之间找到一个平衡点,从而提高模型的泛化能力。
Noise(噪声)
噪声指的是数据中的随机性和不可预测性,它来源于许多现实世界的因素,比如测量误差、数据收集的不完美等。噪声是不可避免的,并且可能会对模型的性能产生影响。机器学习的目标是找到真实关系,并尽可能减少噪声的影响。模型的偏差和方差会影响其对噪声的敏感性。
在模型优化过程中,通常通过调整模型的复杂度(例如,增加或减少特征、调整模型的深度和宽度等)来平衡偏差和方差。较复杂的模型可能会降低偏差但增加方差,而简单的模型则相反。同时,采用交叉验证等技术来评估模型的性能,以便更好地理解模型的泛化能力。
The Balence Between Bia And Variance
Underfitting
Due To Large Bias
欠拟合是指模型在训练数据上表现不佳,无法很好地捕捉数据中的模式和关系。
一般原因:模型过于简单,数据集中,与真实值误差较大
- redesign your model:
- Add more features as input
- A more complex model
Overfitting
Due To Large Variance
过拟合是指模型在训练数据上表现优秀,但在未见过的新数据上表现不佳。
一般原因:模型过于复杂,整体数据偏差较小,预测值较为分散
- More data(Very effective,but not always practical)
- Regularization(Make your function more smooth)
Cross Validation
交叉验证(Cross-validation)是机器学习中一种常用的技术,用于评估模型的性能和泛化能力。它帮助我们检验模型在未见过的数据上的表现,并提供比单一训练集和测试集划分更可靠的性能评估。
基本思想:将数据集进行划分,如何使用这些数据集多次进行模型训练和测试。
步骤:
- 数据划分:将整个数据集随机分成K个子集(折叠),每个子集的大小大致相等。
- 训练与验证:对于每个折叠,使用K-1个子集作为训练集,剩余的一个子集作为验证集。
- 性能指标:用选定的评估指标(如准确率、均方误差等)在验证集上评估模型的性能。
- 平均性能:将K次验证得到的性能指标取平均,得到模型的整体性能评估结果。
N-fold Cross Validation
在N折交叉验证中,将数据集划分为N个子集,每个子集只包含一个样本。然后,依次将每个子集作为验证集,其他N-1个子集作为训练集进行模型训练和验证。这样,每个样本都将作为单独的验证集,并且模型将在所有样本上进行N次训练和验证。
步骤:
- 将数据集划分为N个子集,每个子集只包含一个样本。
- 对于每个子集,将其作为验证集,其他N-1个子集作为训练集。
- 在训练集上训练模型,并在验证集上进行性能评估。
- 重复步骤2和3,直到所有子集都被用作验证集。
- 计算N次验证的性能指标的平均值,得到模型的性能评估结果。