zoukankan      html  css  js  c++  java
  • 模型调优_七月算法4月机器学习班第7次课程笔记

     
      desc
    关于特征工程
    使用LR 回归,找出谁的权重大,
    1.比如 面积对房价的 权重大,那么就可以进一步细化:
    比如 面积 这个因素很重要,那么就着重操作这个因素,比如细化等
    比如 继续找:卧室面积,客厅面积,面积比例 ,平方,根号 等也作为 因素加进去
     
    2.再就是还可以这么来,这些特征,比如size,或size平方,或size开根号。这样特征不是相关了吗?
    (这相关,但是不是线性相关,而你的model 是线性model)
    所以 其平方根号都可以加进去
    一般不用三次方,因为维度高了,那么可能使得模型不够稳定
     
    这就是LR解释性强的原因老大们能听懂 
    模型融合
    比如 bagging,比如 adaboost
    bagging (空间)其实就是训练多个模型,然后 vote,不同的模型 吃不同的数据,都是一个子集
    adaboost (时间)则是在时间轴上操作的, 每次更改样本权重,着重学习错误
     
    adaboost
    two key point: 每一轮都
    1. 给本弱分类器配上一个系数
    2. 每次样本权重更改
    boosting 算法 的方法容易过拟合
     
    boosting 与 bagging 的方法对比
    AdaBoost是每个子分类器结果对后面的有影响,bagging是独立的
    ada 的好处就是 每次都是 面对 all 数据,bagging 每次是又放回的抽样,取的是数据子集
     
    adaboost 可以是多分类
    if adaboot 的弱分类器是多分类,那么 adaboost 就可以多分类
     
    boosting 和 bagging 是两个思想,对应的实现有:
    adaboost 和 RandomForest
     
    boosting 算法都可能 过拟合 :
    bagging 下的 树深度
    boosting 的迭代次数
    都是防止过拟合的方式
    high variance 和 
    high bias
    模型状态 有两种:
    过拟合(overfitting/high variance)
    欠拟合(underfitting/high bias)
     
    训练好了模型,需要关心的是:模型的是状态
     
    欠拟合 为什么叫做 high bias ?这个的翻译是:高偏差,
    而不是高截距(intercept),即 很多样本离它很远
    而 high variance 就是高方差,即 模型上下抖动,为了串上数据点而过度拟合
    DT 可以选特征
    因为每次 选哪个作为 分支,是按照熵排序的:即 这里有一个次序关系
    因此 决策树可以 feature select的
    CTR 预估 使用 AUC 作为通用的评价指标 
    神经网络过拟合 会用正则化,防止过拟合
    xgboost 既用 boosting 又用 bagging: BGDT
    百度纠错功能示例
    一个【观点】这是在考察你 贝叶斯
    比如用户输入  米月传,那么你能纠正为 芈月传
    why Python 快
    Python 很多库的实现是C,所以你本质是在用 C 的, map reduce 也可以 Python
     
    ipython notebook
    全部.ipynb放在桌面 然后cmd下切换到桌面
    然后运行 ipython notebook
    梯度提升树
    Gradient boost tree
    先拟合一下,然后对 残差,再次拟合,模型叠加,在对残差再次拟合
    直到收敛
     
    专门对差值做一个 连续值的预测
    如何分析模型
    1. 看状态,是 high variance 还是 high bias
    variance and bias,李诚经常说的两个词,原来是实在评价训练好的 model 状态
    2. case study,尤其是分错的 sample
        1.一 一找出来,这些分错的例子(回归中 哪些样本 bias 大)
        2.它归为这一错类,是哪个因素特征导致的
        3. bad case 之间有没有共性
        4. 是不是缺新的特征
    找到共性处理措施就是:比如分错的可能是新上市的商品, 此时的应对 可能就是一些规则
    工业界线性的应用
    线性回归,LR,LinearSVM 都是线性核,即 kernel 是线性的
    工业界很多是线性模型,对于权重大的 那个因素,做细化的工作
    就是 重要因素,多方面挖掘,着重挖掘,即:
    重要特征的 组合变异 比哪些本征的小权重因素还要重要
     
    过拟合是不能降维
    确实防止了过拟合,但是准确率不会提升
    降维是在损失信息
    验证集和测试集
    交叉验证集做参数/模型选择# 选 LR 还是 SVM ,可以从这里得到
     
    测试集只做模型效果评估,即 百分之多少的准确率 应该说是从 test data 上得到的
    # 这个可以视为:convention
    一些经验
    数据量太大 不适合用SVM
    SVM 一般比其他的分类器健壮,作为首选
    一般不用KNN,因为需要保存所有的 样本的feature,占用内存和时间去遍历 
    样本量少需要 拉长时间窗口,即 再等等
    一个新的结论
    从这个角度说:validate data 就是 train data!!!
    模型前工作
    数据预处理:数据清洗与(上下采样以上的非倾斜)
    特征选择
    模型选择
    交叉验证 选出超参数
    模型选择
     
    1. 路线图
    2. 验证集 
    模型优化的角度
     
    1. 模型现在处于什么状态 
    2. 找出有用 weight 的feature
    3. bad case 分析
    4. 模型融合 bagging or boosting
    我想这个是 那个 淘宝面试官想问的问题
    这才人家想问的问题
    其实还是在看你的 经验
    降维 LDA ,PCA  都可以视为 降维
    特征选择的 嵌入式方法
    正则化
    决策树
    深度学习
    聚类也有一个重要问题
    即:到底聚为几类?
    知道几类,用Kmeans 
    或者使用 层次聚类法
    搜索的种类
    完全式搜索
    启发式搜索
    随机搜索
  • 相关阅读:
    [LeetCode]*124.Binary Tree Maximum Path Sum
    HDU3336-Count the string(KMP)
    各种配置环境变量总结
    数据结构与算法-为什么要使用算法
    request 对象
    Codeforces 15B Laser
    使用jq工具在Shell命令行处理JSON数据
    Android中的FrameLayout帧布局
    iOS 8 设置导航栏的背景颜色和背景图片
    Creating HTML table with vertically oriented text as table header 表头文字方向
  • 原文地址:https://www.cnblogs.com/jianzhitanqiao/p/5528026.html
Copyright © 2011-2022 走看看