zoukankan      html  css  js  c++  java
  • 模型调优与融合

    0.调优模型,让模型在给定的数据集上有更好的效果。

    一、前序工作流程

      0.数据清洗

        (1)不可信的样本丢掉

        (2)缺省值极多的字段考虑不用

      1.数据采样:

        (1)下/上采样

        (2)保证样本均衡 

      2.特征处理(特征工程)

        数值型

        类别型

        时间型

        文本型

        统计型

        组合特征

      3.特征选择(特征工程)

        (1)过滤型

        (2)包裹型

        (3)嵌入型

      4.数据处理

         5.特征工程

      6.模型选择

        交叉验证(cross validation),尽量的把数据集中所有的数据都拿出来都参与到所有的k折交叉验证的过程中

          交叉验证集做参数/模型选择

          测试集只做模型效果评估(只做评估的手段)

        K折交叉验证(k-fold cross validation)

      7.交叉验证

        交叉验证选取:sklearn.grid_search.GridSearchCV(网格搜索交叉验证,对候选参数组,每个都做一次交叉验证,验证效果好坏,用它在全部的数据上完成一次训练)

      8寻找最佳超参数

    二、模型优化

      1.模型状态

        (1)过拟合(overfitting/high variance)

        (2)欠拟合(underfitting/high bias)

        (3)模型效果优化1

          过拟合:

            找更多的数据来学习(最有效的方式,数据才是王道,数据驱动的解决方案)

            增大正则化系数

            特征选择

            差异化模型融合

          欠拟合:

            找更多特征

            减小正则化系数

        

      2.权重分析

        模型效果优化2:

          线性模型的权重分析

            线性或者线性kernel的model

            Linear Regression

            Logistic Regression

            Linear SVM

            .........

          对权重绝对值高/低的特征

            做更细化的工作

            特征组合

      3.bad-case分析

         (1)分类问题

         (2)回归问题

      4.模型融合

        (1)是什么?  把一组独立的学习器组合起来,如果学习器是同质的  

          Ensemble Learning是一组individual learner的组合

          如果individual learner同质,称为base learner

          如果individual learner 异质,那么称之为component learner

        (2)为什么?

        (3)Bagging

          模型很多时候效果不好的原因是什么?过拟合

          如何缓解过拟合?

          用一个算法,不用全部的数据集,每次取出一个子集训练一个模型

          分类:用这些模型的结果做vote

          回归:对这些模型的结果取出平均值

        用不同的算法:这些模型的结果做vote或者求出平均值(voting claafier)

        (4)Stacking:用多种predictor结果作为特征训练

        (5)Adaboost:调整样本权重的模型

        (6)Gradient Boosting Tree:和 Adaboost思路类似,解决回归问题

        

    三、案例讲解  

  • 相关阅读:
    使用 Spring data redis 结合 Spring cache 缓存数据配置
    Spring Web Flow 笔记
    Linux 定时实行一次任务命令
    css js 优化工具
    arch Failed to load module "intel"
    go 冒泡排序
    go (break goto continue)
    VirtualBox,Kernel driver not installed (rc=-1908)
    go运算符
    go iota
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/10427456.html
Copyright © 2011-2022 走看看