当前位置: 首页 » 综合知识 » it知识 » 正文

python模型的评估实例分析

发布时间:2023-07-31 以下文章来源于网友投稿,内容仅供参考!

除了使用estimator的score函数简单粗略地评估模型的质量之外,

sklearn.metrics模块针对不同的问题类型提供了各种评估指标并且可以创建用户自定义的评估指标,

使用model_selection模块中的交叉验证相关方法可以评估模型的泛化能力,能够有效避免过度拟合。

一,metrics评估指标概述

sklearn.metrics中的评估指标有两类:以_score结尾的为某种得分,越大越好,

以_error或_loss结尾的为某种偏差,越小越好。

常用的分类评估指标包括:accuracy_score,f1_score,

precision_score,recall_score等等。

常用的回归评估指标包括:r2_score,explained_variance_score等等。

常用的聚类评估指标包括:adjusted_rand_score,adjusted_mutual_info_score等等。

二,分类模型的评估

模型分类效果全部信息:

模型整体分类效果:

模型对某种类别的分类效果:

利用不同方式将类别分类效果进行求和平均得到整体分类效果:

仅仅适用于概率模型,且问题为二分类问题的评估方法:

三,回归模型的评估

回归模型最常用的评估指标有:

四,使用虚拟估计器产生基准得分

对于监督学习(分类和回归),可以用一些基于经验的简单估计策略(虚拟估计)的得分作为参照基准值。

DummyClassifier 实现了几种简单的分类策略:

DummyRegressor 实现了四个简单的经验法则来进行回归:

五,欠拟合,过拟合与交叉验证

在机器学习问题中,经常会出现模型在训练数据上的得分很高,

但是在新的数据上表现很差的情况,这称之为过拟合overfitting,又叫高方差high variance

而如果在训练数据上得分就很低,这称之为欠拟合underfitting,又叫高偏差high bias

留出法

为了解决过拟合问题,常见的方法将数据分为训练集和测试集,用训练集去训练模型的参数,用测试集去测试训练后模型的表现。有时对于一些具有超参数的模型(例如svm.SVC的参数C和kernel就属于超参数),还需要从训练集中划出一部分数据去验证超参数的有效性。

交叉验证法

在数据数量有限时,按留出法将数据分成3部分将会严重影响到模型训练的效果。为了有效利用有限的数据,可以采用交叉验证cross_validation方法。

交叉验证的基本思想是:以不同的方式多次将数据集划分成训练集和测试集,分别训练和测试,再综合最后的测试得分。每个数据在一些划分情况下属于训练集,在另外一些划分情况下属于测试集。

简单的2折交叉验证:把数据集平均划分成A,B两组,先用A组训练B组测试,再用B组训练A组测试,所以叫做交叉验证。

常用的交叉验证方法:K折(KFold),留一交叉验证(LeaveOneOut,LOO),留P交叉验证(LeavePOut,LPO),重复K折交叉验证(RepeatedKFold),随机排列交叉验证(ShuffleSplit)。

此外,为了保证训练集中每种标签类别数据的分布和完整数据集中的分布一致,可以采用分层交叉验证方法(StratifiedKFold,StratifiedShuffleSplit)。

当数据集的来源有不同的分组时,独立同分布假设(independent identical distributed:i.i.d)将被打破,可以使用分组交叉验证方法保证训练集的数据来自各个分组的比例和完整数据集一致。(GroupKFold,LeaveOneGroupOut,LeavePGroupsOut,GroupShuffleSplit)

对于时间序列数据,一个非常重要的特点是时间相邻的观测之间的相关性(自相关性),因此用过去的数据训练而用未来的数据测试非常重要。TimeSeriesSplit可以实现这样的分割。

六,交叉验证综合评分

调用 cross_val_score 函数可以计算模型在各交叉验证数据集上的得分。

可以指定metrics中的打分函数,也可以指定交叉验证迭代器。

cross_validate函数和cross_val_score函数类似,但功能更为强大,它允许指定多个指标进行评估,并且除返回指定的指标外,还会返回一个fit_time和score_time即训练时间和评分时间。

使用cross_val_predict可以返回每条样本作为CV中的测试集时,对应的模型对该样本的预测结果。

这就要求使用的CV策略能保证每一条样本都有机会作为测试数据,否则会报异常。

  • • Linux Ecdsa密钥长度选择有何依据

    在Linux

  • • Linux Khook在内核监控中的应用如何

    Linux

  • • Linux Gsoap是否支持异步通信

    GSOAP是

  • • Linux Coremail如何提升用户体验

    提升Linu

  • • Linux Ecdsa算法有哪些局限性

    ECDSA

  • 哎呀音乐钢琴键盘学习《 钢琴主人训练营》 西瓜学琴
    郭蝈 陪练钢琴 30节课时 考级刚需 让孩子每一次练琴都是高质量的
    30天轻松学会五线谱 流行钢琴自学初级教程 牙牙学琴
    流行爵士钢琴实战技巧VIP课 - 继伟 哎呀音乐
    【海上钢琴师】原版 MT1990钢琴谱
    百首经典流行钢琴实战曲集 - 继伟
    雷费尔德电钢琴重锤88键专业考级儿童初学者数码电子钢琴家用
    小练咖 真人钢琴陪练 1v1服务 2999随时退 1课时50分钟 考级刚需
    雅马哈电钢琴88键重锤CLP735智能数码电子钢琴家用专业初学者考级
    【原装进口】Yamaha/雅马哈钢琴 b121 SC2原声静音钢琴
  • 珠海专业调钢琴
  • 天津宝坻区调钢琴
  • 天津静海区钢琴调音
  • 成都简阳市钢琴调律
  • 大连瓦房店市钢琴调音
  • 眉山调钢琴联系方式
  • 惠州大亚湾钢琴调琴师
  • 长治调琴师
  • 厦门湖里区钢琴调音师
  • 上海普陀区钢琴调音师