博客
关于我
百面机器学习—3.逻辑回归与决策树要点总结
阅读量:277 次
发布时间:2019-03-01

本文共 1669 字,大约阅读时间需要 5 分钟。

逻辑回归与决策树分析

一、逻辑回归

1. 逻辑回归公式推导

逻辑回归是一种简单的线性分类模型,适用于二分类问题。其核心公式可以从以下四个方面展开:

  • 伯努利过程:输入特征向量 $x$,输出一个二元类别的概率分布。
  • 极大似然估计:通过最大化似然函数来确定参数 $\theta$,使得模型能够拟合数据。
  • 损失函数:采用交叉熵损失函数来衡量预测结果与真实结果的差异。
  • 梯度下降:通过优化算法不断更新参数,逐步逼近最优解。
  • 逻辑回归的预测结果可以表示为:

    $$\hat{y}(\theta_j) = \sigma(w^T x_j + b)$$

    其中 $\sigma$ 是sigmoid函数,$w$ 和 $b$ 是模型参数。

    2. 逻辑回归的优缺点

    优点:

  • 形式简单:模型易于理解,特征权重直观反映特征影响。
  • 模型效果:在特征工程合理的情况下,效果可接受且开发效率高。
  • 训练速度快:对特征数量敏感,适合小规模特征集。
  • 资源占用低:仅需存储特征值,适合内存有限的环境。
  • 结果调整方便:输出概率分数,可通过阈值直接分类。
  • 缺点:

  • 准确率有限:难以拟合复杂数据分布。
  • 特征工程依赖:难以处理不平衡数据。
  • 线性假设限制:无法处理非线性数据。
  • 特征选择有限:需要额外工具(如GBDT)辅助特征筛选。
  • 3. 为什么需要归一化?

    归一化的作用在于:

    • 收敛速度:使不同量纲特征处于同一范围,减少方差较大的特征影响。
    • 模型精度:提升预测结果的准确性。

    4. 连续特征离散化的作用

    离散化的好处包括:

    • 特征工程简化:将连续值转换为离散特征,便于模型训练。
    • 计算效率提升:稀疏向量运算加快,内存占用减少。
    • 异常处理:离散化后的特征对异常值鲁棒性更好。
    • 非线性表达:通过特征交叉提升模型表达能力。

    5. 逻辑回归能否解决非线性问题?

    是的,通过引入核技巧(Kernel Trick),逻辑回归可以处理非线性分类问题。然而,核方法通常隐式实现,无法直接从低维映射到高维。与SVM相比,逻辑回归的参数存储量较低,但在非线性分类中,SVM更常用。


    二、决策树

    1. 决策树算法总结

    1.1 ID3—信息增益

    ID3通过信息增益选择划分特征,信息增益计算公式为:$$IG(A,D) = H(D) - H(D|A)$$其中 $H(D)$ 为数据集 $D$ 的熵,$H(D|A)$ 为条件熵。

    1.2 C4.5—信息增益比

    C4.5改进了ID3,引入信息增益比:$$IGB(A,D) = \frac{IG(A,D)}{H(A,D)}$$信息增益比通过惩罚取值多的特征,避免过拟合。

    1.3 CART—基尼指数

    CART使用基尼指数最小化准则:$$Gini = p_l \cdot (1 - p_r) + p_r \cdot (1 - p_l)$$其中 $p_l$ 和 $p_r$ 分别为左、右子树的错误率。

    1.4 算法对比

  • C4.5 vs ID3:C4.5在小数据集上表现更好,信息增益比克服了ID3的偏向。
  • 连续型变量处理:C4.5和CART支持连续型变量,通过排序和二值划分转换为离散特征。
  • 多任务能力:CART支持分类和回归,适合多输出问题。
  • 2. 为什么需要剪枝?

    剪枝用于防止过拟合:

    • 预剪枝:在节点划分前估计划分性能,若无法提升则停止划分。
    • 后剪枝:自下而上检查节点,若改善泛化性能则剪枝。

    3. 为什么信息增益比信息增益更佳?

    信息增益比通过特征熵惩罚取值多的特征,避免对多值特征过度依赖。

    4. C4.5对ID3的改进

  • 信息增益率:解决信息增益偏向取值多的特征问题。
  • 连续属性离散化:通过排序划分转换为离散特征。
  • 缺失值处理:通过权重分配对缺失值样本进行划分。

  • 决策树常见问题解答

    1. 如何选择最优划分属性(存在缺失值)?

    信息增益计算时,考虑无缺失值样本的比例乘以信息增益。

    2. 如何划分缺失值样本?

    通过权重分配,将缺失值样本按比例划分到各分支。

    3. 测试样本属性值不完整时如何分类?

    在决策树构造完成后,采用插值或其他方法处理不完整属性,确保预测结果合理。

    转载地址:http://eysv.baihongyu.com/

    你可能感兴趣的文章
    ParameterizedThreadStart task
    查看>>
    Paramiko exec_命令的实时输出
    查看>>
    Spring security之管理session
    查看>>
    paramiko模块
    查看>>
    param[:]=param-lr*param.grad/batch_size的理解
    查看>>
    spring mvc excludePathPatterns失效 如何解决spring拦截器失效 excludePathPatterns忽略失效 拦截器失效 spring免验证拦截器不起作用
    查看>>
    Spring Cloud 之注册中心 EurekaServerAutoConfiguration源码分析
    查看>>
    Parrot OS 6.2 重磅发布!推出全新 Docker 容器启动器
    查看>>
    Parrot OS 6.3 发布!全面提升安全性,新增先进工具,带来更高性能
    查看>>
    ParseChat应用源码ios版
    查看>>
    Part 2异常和错误
    查看>>
    Pascal Script
    查看>>
    Spring Boot集成Redis实现keyspace监听 | Spring Cloud 34
    查看>>
    Spring Boot中的自定义事件详解与实战
    查看>>
    Passport 密码模式
    查看>>
    Spring Boot(七十六):集成Redisson实现布隆过滤器(Bloom Filter)
    查看>>
    passport 简易搭配
    查看>>
    passwd命令限制用户密码到期时间
    查看>>
    Spring Boot 动态加载jar包,动态配置太强了!
    查看>>
    Spring @Async执行异步方法的简单使用
    查看>>