1、泛华误差的分解
训练模型的目的——最小化损失函数——泛化误差可以分解为偏差(Biase)、方差(Variance)和噪声(Noise)。
bias:拟合值和真实值之间有较大的偏差。用所有可能的训练数据集训练出的所有模型的输出的平均值与真实模型的输出值之间的差异。
varience:反映的是拟合值波动的情况。不同的训练数据集训练出的模型输出值之间的差异。
Noise:噪声的存在是学习算法所无法解决的问题,数据的质量决定了学习的上限。假设在数据已经给定的情况下,此时上限已定,我们要做的就是尽可能的接近这个上限。
2、偏差、方差与过拟合、欠拟合的关系?
偏差(Bias)与方差(Variance) - 知乎 (zhihu.com)
3、trade-off between bias and variance
泛华误差=偏差(Biase)+方差(Variance)+噪声(Noise)。
从本质上讲,如果你使模型更复杂并添加更多变量,你将会失去一些 Bias 但获得一些 Variance,这就是我们所说的权衡(tradeoff)。这也是为什么我们在建模的过程中,不希望这个模型同时拥有高的偏差和方差。
4、KNN对比K-means
有监督和无监督。
都是基于距离的。
KNN算法(K-Nearest Neighbors)是一种基本的分类和回归方法。它的基本思想是:对于给定的训练样本集,对新的输入实例,在训练样本集中找到与该实例最近邻的K个实例,这K个实例的多数属于某个类别,则把该输入实例分为这个类别。 KNN算法的实现很简单,但是对于特征较多的数据集,计算开销会比较大。
5、过拟合和欠拟合
- 过拟合:模型过度适应训练数据,导致在未见过的数据上表现不佳。这意味着模型学习到了训练数据中的噪声和异常特性,而不是泛化到整个数据集的真实模式。过拟合通常发生在模型过于复杂、训练数据量不足或者数据噪声过多的情况下。
- 欠拟合:模型未能很好地拟合训练数据,导致在训练数据和测试数据上都表现不佳。这表示模型没有捕获数据中的真实模式,通常是由于模型过于简单或者特征不足的原因。
解决过拟合和欠拟合的方法包括:
过拟合的解决方法:
- 增加数据量:提供更多的训练数据可以帮助模型更好地泛化。
- 简化模型:减少模型的复杂度,如减少参数数量、使用正则化等。
- 数据清洗:去除噪声或异常值,以减少模型对这些不相关特性的过度拟合。
- 交叉验证:使用交叉验证技术评估模型在不同数据子集上的性能,避免仅依赖单一的训练-测试数据集划分。
欠拟合的解决方法:
- 增加模型复杂度:增加模型的参数数量或者使用更复杂的模型架构。
- 添加新特征:增加更多相关的特征,以帮助模型更好地捕获数据中的模式。
- 减小正则化程度:如果使用了正则化技术,可以尝试减小正则化的程度。
- 特征工程:通过特征转换、降维等方法提取更有用的特征。
识别过拟合和欠拟合的方法:
1. 观察学习曲线:绘制模型的学习曲线,包括训练集和验证集的损失(或准确率)随着训练样本数量的变化。过拟合的模型在训练集上表现较好但在验证集上表现较差,而欠拟合的模型在两者上都表现较差。
2. 交叉验证:使用交叉验证技术,例如 k 折交叉验证,来评估模型在不同数据子集上的表现。如果模型在训练集上表现很好但在验证集或测试集上表现差,则可能存在过拟合问题。
3. 使用验证集:将数据集划分为训练集、验证集和测试集。训练模型时使用训练集,调整超参数和模型结构时使用验证集,最后评估模型性能时使用测试集。
4. 正则化技术:如果使用了正则化方法(如 L1 正则化、L2 正则化),观察正则化项的权重,过大的正则化项可能导致欠拟合,过小的正则化项可能导致过拟合。
5. 特征重要性分析:通过分析模型中特征的重要性或权重,可以了解模型是否过于依赖某些特征,从而判断是否存在过拟合或欠拟合问题。