欠拟合是数据科学中的一种情况,在这种情况下,数据模型无法准确地捕捉输入和输出变量之间的关系,对训练集和不可见的数据都会产生很高的错误率。 当模型过于简单时,就会发生欠拟合的情况,这可能是因为模型需要更长的训练时间、更多的输入特征或更少的正则化所致。 就像过拟合一样,当模型欠拟合时,它将无法在数据中建立主导趋势,从而导致训练错误和差强人意的模型性能。 如果模型不能很好地归纳新数据,就不能用于分类或预测任务。 将模型泛化至新数据最终可支持我们每天使用机器学习算法进行预测并对数据进行分类。
高偏差和低方差是欠拟合的主要特征。 由于这种行为可以在使用训练数据集时被看到,因此,欠拟合模型通常比过度拟合模型更容易被识别。
简单说,过拟合与欠拟合正好相反,当模型被过度训练或当模型中包含太多的复杂性时,会发生过拟合,导致测试数据的高错误率。 过拟合模型比欠拟合模型更常见,欠拟合通常是在为了避免过拟合而实施“早停法”时出现的。
如果训练不足或缺乏复杂性而导致欠拟合,那么,合理的预防策略应是延长训练的持续时间或增加更多的相关输入。 然而,如果对模型训练过多或添加了太多特征,可能会导致模型过拟合,从而带来低偏差但高方差(即偏差-方差权衡)问题。 在这种情况下,统计模型与其训练数据太过接近,导致其无法很好地泛化到新的数据点。 需要注意的是,某些类型的模型可能比其他类型更容易过拟合,比如决策树或 KNN。
识别过拟合可能比欠拟合更困难,因为与欠拟合不同,训练数据在过拟合模型中具有较高的准确性。 评估算法的准确性通常使用名为 k-折交叉验证的技术。
在 K 折交叉验证中,数据被拆分为 k 个大小相等的数据包,这些子集也称为"折"。 其中一个"k 折"将充当测试集(也称为留出集或验证集),其余"折"将训练模型。 一直重复这个过程,直到每"折"都用作留出。 每次评估后,都会保留一个分数,在完成所有迭代后,将对分数求平均值以评估整个模型的性能。
拟合模型时最理想的情况是在过拟合和欠拟合之间找到均衡。 确定两者之间的“甜点”可以让机器学习模型准确地做出预测。
因为我们可以根据训练集来检测欠拟合,因此,我们可以在一开始便帮助在输入和输出变量之间建立更好的主导关系。 通过保持足够的模型复杂性,我们可以避免欠拟合,从而做出更准确的预测。 下面是一些可以用来减少欠拟合的技术:
正则化通常用于通过对输入参数施加惩罚来减少模型的方差。 L1 正则化、Lasso 正则化和 dropout 等许多方法都有助于降低模型中的噪声和异常值。 但是,如果数据特征过于一致,模型就无法识别出主导趋势,导致欠拟合。 通过减少正则化的数量,在模型中引入更多的复杂性和变异性,可对模型进行成功训练。
如前所述,过早地停止训练也会导致欠拟合模型。 因此,通过延长训练的持续时间,可以避免发生欠拟合。 但您必须知道过度训练会导致过拟合。 在这两种情况之间找到均衡点是关键。
对于任何模型,都使用指定特征来确定给定的结果。 如果没有足够的预测特征,则应该引入更多的特征或更重要的特征。 对于示例,在神经网络中,您可以添加更多的隐藏神经元,或者在随机森林中,您可以添加更多的树。 这个过程会给模型注入更多的复杂性,产生更好的训练结果。
IBM Watson Studio 是开放数据平台,允许数据科学家在任何云上建立、运行、测试和优化人工智能 (AI) 模型。 IBM Watson Studio 支持您将随时随地将 AI 融入 IBM Cloud Pak® for Data。 通过 PyTorch、TensorFlow 和 scikit-learn 等开源框架以及 Python、R 和 Scala 等流行语言,您可以将工作团队连接在一起、简化 AI 生命周期管理、加速实现价值。
要想准确构建机器学习模型,请立即注册 IBMid 并 创建您的 IBM Cloud 账户 。