进入AI领域做产品 —— 我的自学之路(AI基础算法)

基础算法以及相关知识

        学习了产品认知,进行了需求分析,也做了技术预研,总算到了设计环节。

        AI产品经理只有理解算法原理,才能更好的帮助研发工程师快速实现目标。

        所以这章以基础的机器学习算法来梳理设计流程。

目的

  • 帮助研发工程师快速实现产目标;
  • 能够用非技术语言,将研发过程的技术原理以及出现的问题及时与领导和客户沟通,获得支持和认可。

数据采集

目的
  • 获取数据供算法进行学习。
获取方式
  • 直接购买行业数据;
  • 自行采集:
    • 自身积累;
    • 爬虫。
  • 第三方合作:
    • 交换;
    • 购买。

数据探查

类型:
  • 是结构化还是非结构化。
大小:
  • 数据的条数多少。
分布:
  • 是否有目标队列。
属性:
  • 是否有数据缺失以及乱码。

场景抽象

目的
  • 业务逻辑与算法进行匹配;
  • 不同的业务有不同的目标以及其优先级,需要产品经理对业务有清晰的认知,才能将业务场景的需求很好的转化为算法逻辑,并以此选择不同种类的算法进一步缩小范围,逐步接近最佳算法。
注意事项
  • 聚焦要解决的核心问题:
    • 需求与算法匹配;
    • 确认问题对精度的最低要求;
    • 确认问题对时效的最低要求。
  • 注意数据量的大小、数据质量和数据本身的特性。
基本机器学习算法

全监督学习(分类、回归):

  • 定义:
    • 学习将输入映射到输出的函数,且训练集中的数据样本都有标签或目标

线性分类器 —— K近邻:

  • 原理:
    • 从训练集中找到一些和新数据距离最近的K个数据,根据这些被找到数据的分类,来决定新数据的分类。
  • 实现:
    • 计算已知类别数据集中的点与当前点之间的距离;
    • 按照距离递增次序排序;
    • 交叉验证法(以K=1为基准),选取与当前点距离最小的K个点,K一般低于训练样本数的平方根;
    • 确定前K个点所在类别的出现频率;
    • 返回前K个点所出现频率最高的类别作为当前点的预测分类。
  • 优点:
    • 简单且高效:
      • 算法简单,无需训练,体现在计算时间开销上几乎为0。
    • 应用范围灵活:
      • 不但可以解决二分类问题,也可以解决多分类问题;
      • 适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型)。
    • 鲁棒性不错:
      • 对噪音数据不敏感,具有不错的鲁棒性。
  • 缺点:
    • 计算开销大:
      • 计算量大,内存开销大,执行起来很慢。需要遍历新的数据点与样本集中每个数据的“距离”,以判断是否是前K个邻居;
    • 受样本分布比例制约:
      • 在样本分布比例不均匀的情况下准确率不高。

线性分类器 —— 线性回归:

  • 原理:
    • 拟合出一条穿过连续数据的直线,且映射到直线上的点最接近预测值,得出连续变量之间的关系。
  • 实现:
    • 得出假设函数:
      • 用于拟合的函数,具有泛化能力:
        在这里插入图片描述
    • 得出代价函数:
      • 评估假设函数的拟合质量,任何能够衡量模型预测出来的值 h(θ)与真实值 y 之间的差异的函数都可以叫做代价函数;
      • 一旦有了这个函数,学习算法的目标就是找到代价函数的最小值,得到综合最小化的θ;
      • 均方误差:
        在这里插入图片描述
    • 梯度下降最优化:
      • 代价函数求偏导得到梯度,梯度的反方向决定了参数下降的方向,沿着最陡的方向下坡;
      • 通过不断迭代更新代价函数值,直到全局最优,收敛。
        在这里插入图片描述在这里插入图片描述
  • 优点:
    • 高效:
      • 学习速度快,在数据量大的情况下依然运行速度很快。
    • 建模速度快:
      • 建模速度快,不需要很复杂的计算。
    • 可读性强
      • 可读性强,可以根据系数给出每个变量的理解和解释。
  • 缺点:
    • 对非线性问题拟合能力差;
    • 对噪声数据很敏感。

线性分类器 —— 多项式回归:

  • 原理:
    • 复杂数据往往不能以一条直线来拟合,这时就要在线性回归方程的基础上增加多项式,让拟合函数变为曲线:
      在这里插入图片描述
  • 优点:
    • 灵活度高:
      • 灵活度高,能够模拟非线性可分的数据,线性回归不能做到这一点,它总体上更灵活,可以模拟一些相当复杂的关系。
  • 缺点:
    • 要手动设置变量的指数:
      • 指数调试具有一定难度,需要一些数据的先验知识才能选择最佳指数;
      • 容易过拟合,因为指数调试不当很容易导致这个问题。

线性分类器 —— 逻辑回归:

  • 原理:
    • 判别模型,拟合出曲线将正负样本分割的二分类算法,输出值永远在[0,1]之间。
  • 实现:
    • 得出假设函数:
      • 基于线性方程,以及sigmoid函数,将结果限制在S型曲线中,达到分类目的。
        在这里插入图片描述在这里插入图片描述
    • 划出决策边界:
      • G(θx1+θx2+C);
      • 决策边界,也称为决策面,是用于在N维空间,将不同类别样本分开的平面或曲面,在坐标轴中可视化分类结果;
      • 决策边界是假设函数的属性,由参数决定,而不是由数据集的特征决定。
    • 得出代价函数:
      在这里插入图片描述
    • 梯度下降最优化:
      在这里插入图片描述
  • 优点:
    • 高效:
      • 计算代价不高,在时间和内存需求上相当高效。它可以应用于分布式数据,并且还有在线算法实现,用较少的资源处理大型数据。
    • 稳定:
      • 对于数据中小噪声的鲁棒性很好,并且不会受到轻微的多重共线性的特别影响。
    • 理解难度低。
  • 缺点:
    • 容易欠拟合,分类精度不高:
      • 模型复杂度不高;
      • 正则化的影响。
    • 数据特征有缺失或者特征空间很大时表现效果并不好。

线性分类器 —— 支持向量机:

  • 原理:
    • 判别模型,通过间隔最大化原则,寻找一个超平面将正负样本分割,最终转化为一个凸二次规划问题来求解支持向量,达到二分类目的的算法。
  • 实现:
    • 计算几何超平面:
      • W*x+b=0,W代表法向量即平面的倾斜程度,b是截距,求得W和b就能得到几何超平面。
    • 计算几何间隔:
      • 通过确认几何间隔,即可得到支持向量到超平面的距离;
      • 一个点距离超平面的远近可以表示分类预测的确信度,越远则表示确信度越高;
      • SVM的目标是寻找一个超平面,使得离超平面较近的异类点之间能有更大的间隔,保证确信度最高,同时不必考虑所有样本点,只需让求得的超平面使得离它近的点间隔最大:
      1. 间隔最大化求得的解,是唯一的,此时的超平面是最优的;
      2. 此时的分隔超平面所产生的分类结果是最鲁棒的,泛化能力最强。
    • 求解最优支持向量:
      • 通过数据点,找到支持向量距离分隔超平面的最大值,可以理解为梯度下降的作用;
      • 基于求最大间隔的思想,得到SVM的基本型;
      • 而这个基本型是一个基本型目标函数是二次的,约束条件是线性的,这是一个凸二次规划问题。可以直接用现成的优化计算包求解,利用“对偶问题”来求解:
      1. 用对偶问题求解更加高效;
      2. 可以自然引入核函数,进而推广到非线性可分问题。
  • 优点:
    • 计算成本低:
      • 因为,最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。
    • 模型性能好:
      • 因为,少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本,剔除大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。
  • 缺点:
    • 对多分类问题的处理不灵活:
      • 主要应用于有监督的二分类场景。
    • 对非线性问题没有通用解决方案,必须要谨慎选择核函数:
      • 为什么要引入核函数:
      1. 原始空间线性不可分时,可以将样本映射到高维空间实现可分;
      2. 而引入这样的映射之后,所要求解的对偶问题中,无需求解真正的映射函数,而只需要知道其核函数。
      • SVM核函数之间的区别:
      1. 线性核:参数少,速度快,对于一般的数据分类效果已经很理想了;
      2. RBF核:主要用于线性不可分的情况,参数度,分类结果非常依赖参数;
      3. 如果特征数小,样本数量不多,可以选择RBF核。
    • 对缺失数据敏感:
      • 缺失数据指的是某些特征数据,向量数据不完整;
      • SVM没有处理失值的策略,而SVM希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。

逻辑回归与支持向量机的区别:

  • 相同点:
    • LR和SVM都是判别模型;
    • LR和SVM都是监督学习算法;
    • LR和SVM都是用于分类场景;
    • 如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的;
    • 说明:LR也是可以用核函数的,但LR通常不采用核函数的方法.(计算量太大)。
  • 不同点:
    • LR采用log损失,SVM采用合页(hinge)损失;
    • LR对异常值敏感,SVM对异常值不敏感(抗噪音能力,SVM要强);
    • 计算复杂度不同。对于海量数据,SVM的效率较低,LR效率比较高;
    • 对非线性问题的处理方式不同,LR主要靠特征构造,必须组合交叉特征,特征离散化。SVM也可以这样,还可以通过kernel(因为只有支持向量参与核计算,计算复杂度不高);
    • SVM的损失函数就自带正则,损失函数中的1/2||w||^2项),这就是为什么SVM是结构风险最小化算法的原因,而LR必须另外在代价函数上添加正则项。

贝叶斯 —— 朴素贝叶斯:

  • 原理:
    • 生成模型,它通过学习已知样本,计算出联合概率,再求出条件概率;
    • 朴素,即特征数据之间彼此独立,在求解联合概率P(XY)时,需要求解P(X|Y),朴素贝叶斯做了一个很强的条件独立假设(当Y确定时,X的各个分量取值之间相互独立)。
  • 生成模型与判别模型:
    • 生成模型:
      • 先学习得到联合概率分布P(XY),即特征X和标记Y共同出现的概率,然后求条件概率分布,能够学习到数据生成的机制。
    • 判别模型:
      • 学习得到条件概率分布P(Y|X),即在特征X出现的情况下标记Y出现的概率。
  • 实现:
    • 条件概率公式:
      • 条件概率是指事件A在另外一个事件B已经发生条件下的发生概率:
        在这里插入图片描述在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值