【机器学习】西瓜书-第2章模型评估与选择

评估方法

交叉验证

 

从“偏差-方差分解”去解释model的泛化性能

  • 这个model为什么具有如此性能呢?——那么就要从“偏差-方差分解”去解释model的泛化性能。(考过)

偏差-方差分解试图对model的期望泛化错误率进行拆解。泛化误差可以分解为偏差、方差、与噪声之和。

偏差度量了:pred与gt的差别,即刻画了model本身的拟合能力;

方差度量了:trainset样本内容不同但是样本大小相同所导致的学习性能的变化,即刻画了数据扰动所造成的影响;

噪声表达了:在当前任务上任何学习算法model所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

偏差-方差分解说明,model的泛化性能是由学习算法的能力、数据的充分性、学习任务本身的难度所公共决定的。

给定学习任务,为了取得好的泛化性能,则需使得偏差较小,即能够充分拟合数据,并使方差较小,即使得数据扰动产生的影响小。

特征穿越 

1、什么是特征穿越?可以举例子说明吗? - 斑马行空的回答 - 知乎

概括点说,就是你在训练模型的中使用了一些特征,而这些特征是你实际用模型去做预测时所获取不到的“未来信息”。

举个例子:

你要预测未来几天用户是否会购买某个商品,你却把未来几天用户的行为作为特征用来训练模型,实际在预测时,你在当天是获取不到未来几天的用户行为的。

2、什么是特征穿越?可以举例子说明吗? - 三和厂妹的回答 - 知乎
比如购买行为预测,给你前三个月的数据,预测后一周的用户购买行为,你用后一周的用户行为如点击率什么的,放进前三个月的特征中,就是特征穿越了。

3、什么是特征穿越?可以举例子说明吗? - Wenting的回答 - 知乎

简单说来:你可以这么去check你在评估某个机器学习算法的时候是否出现了“时间穿越”(最典型的穿越)问题:

对于每一个评估所用到的测试样本x,把时间点想象成为x需要被做出预测的当下时刻(时间t)。那么这种想象会限制你在预测x时所使用的模型(模型m)被训练时所依赖的信息/数据(数据D)。怎么限制呢,即D必定只包含发生在t时刻之前的信息。(在这里我假设你的模型的训练时间被忽略不计了,否则可能还要受到模型训练时间的限制)

好了,现在你应该已经明白,上面我聊到的关于“对x进行测试时,模型m对应的训练样本所包含的信息“的限制了。

那么如果你评估时用到了一个突破这个限制的模型,即它并不是严格由t时刻时刻之前的数据所学习到的。而训练数据是包含了t时刻时刻之后的数据,那么便出现了“时间穿越”的问题。这在一些场景下是会影响评估泛化性能的准确性的。

举一个例子,你现在要训练一个模型,它能帮助你在每天早上开盘的时候买股票。那么当然,它的表现就应该是在每天开盘(9:30)前,就把今天会上涨的股票列表给预测给你。那么在评估它的时候,若测试集就包括一个样本:(2月4日的股票A,上涨),那么你在评估时用的模型只能够由2月4日9:30前的数据所训练。若测试集就包括三个样本:(2月4日的股票A,上涨)(2月5日的股票A,下跌)(2月6日的股票A,上涨)。那么你在评估时用的模型要不只能够由2月4日9:30前的数据所训练。要不呢,你选择动态更新你的模型:即用2月4日9:30前的数据所训练的模型去预测第一个样本,用2月5日9:30前的数据所训练的模型去预测第二个样本,用2月6日9:30前的数据所训练的模型去预测第三个样本。然后将预测结果和真实标签做比较得到准确度。

值得注意的点:

我提过的,上面我假设了你的模型训练时间可以忽略不计。如果你还要考虑这一点的话,还要把训练时间给放进时间限制中才准确。

如同参考资料里所说的那样,“时间穿越”到底会不会对评估的效果产生严重的影响,是要衡量的。

其他一些类似的穿越(例如参考资料中的“会话穿越”)就要根据具体的场景来讨论。请记得一点,在评估中最好令到评估时所处的环境和真实应用时所处的环境是一致的。

 

### 回答1: 机器学习模型评估选择和验证是指评估模型的性能、从多个模型中选择最佳模型,并验证模型的泛化能力。常用的评估方法包括准确率、精确率、召回率、F1 分数、ROC 曲线和 AUC 等。常用的选择方法包括交叉验证、超参数调优、学习曲线分析等。 ### 回答2: 机器学习的目标是通过训练来构建模型,以便能够高效地预测未知数据。但是,模型的准确性不仅取决于所使用的算法,还取决于其它因素,例如数据和参数设置。 模型评估能够帮助我们了解模型性能的好坏。评估算法的过程通常涉及到数据划分、交叉验证和各种评估指标。一般来说,数据划分的过程将数据集拆分成训练集和测试集。用训练集来构建模型并进行参数调整,然后使用测试集来衡量模型的性能。交叉验证是在数据集合上的一个更安全和更可靠的方法,它将原始数据集划分成K个互斥的子集,并使用K-1个子集来训练模型,用剩余的子集来评估模型的性能。 选择正确的模型非常关键,因为模型的性能可以直接影响结果的准确性。选择模型的一个重要因素是如何表示数据集。数据可以使用多种方式表示,而不同的数据表示方式有不同的优劣。选择适当的模型是当然的,但是我们还应该使用技术来优化模型,并防止模型过度拟合或欠拟合。 模型验证是评估模型如何执行任务的最终步骤。验证后,我们可以使用模型进行预测并将其应用于新数据。如果模型的性能不符合要求,可以通过重新评估、更改数据集或改变模型参数来尝试改善。模型验证是机器学习流程中非常重要的一部分,可以确保我们的模型效果良好,从而为我们提供可靠的预测结果。 总之,机器学习是一种建立复杂模型的方法,不同的算法、数据表示方式和参数会影响其性能。为了找到最佳模型,我们需要进行模型评估选择和验证等工作。这些步骤是机器学习流程的关键组成部分,可以帮助我们构建高效且准确的模型,从而应对各种实际应用场景。 ### 回答3: 机器学习是一种人工智能领域的重要技术,它允许计算机从历史数据中学习,建立预测模型,并用于未来的数据预测和决策。模型评估选择与验证是机器学习过程中的重要一环,以保证模型的准确性、稳定性和泛化能力。 模型评估的目的是检验模型的表现,并度量其优劣。常用的评估指标包括精确度、召回率、F1值等,这些指标可以用于比较不同模型之间的性能表现。评估模型时,通常需要将数据集划分为训练集和测试集,训练集用于训练模型,而测试集用于评估模型性能。评估模型的结果可以指导我们调整模型的参数,提高模型的预测精度。 模型选择是在多个模型中选择最合适的模型。常用的模型选择方法包括交叉验证、留一法等。交叉验证是将数据集分成k个子集,每个子集轮流作为测试集进行模型评估,其余部分用于训练模型,最后将测试集误差取平均值作为综合误差来评估模型的性能。 模型验证是对模型的泛化能力的验证。泛化能力是指模型对未知数据的预测精度,即模型是否能够对新数据进行较好的预测。在模型验证中,需要将数据集划分为训练集、验证集和测试集。在训练集中训练模型,在验证集上调整模型参数,并在测试集上验证模型的泛化能力。常用的验证方法包括留存法、k折交叉验证等。 综上所述,模型评估选择与验证对于机器学习中的预测模型非常重要。这些技术可以保证模型的准确性和稳定性,并提高模型的泛化能力,为数据分析和预测提供可靠依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值