zoukankan      html  css  js  c++  java
  • 机器学习与回归类算法

    一、分类问题(监督学习,选择题)

      1.根据数据样本上抽出的特征,判别其属于有限个类别中的哪一个

      2.垃圾邮件识别(结果类别:1、垃圾邮件;2、正常邮件)

      3.文本情感褒贬分析(结果类别:1、褒;2、贬)

      4.图像内容识别(选择题:结果类别:1、喵星人;2、汪星人;3、人类;4、草拟马;5、都不是)

      

    二、回归问题(监督学习,得分)

      1.根据数据样本上抽取出的特征,预测连续值的结果

      2.《芳华》票房值

      3.魔都放假具体值

      4.刘德华和吴彦祖的具体颜值得分

      

    三、聚类问题(无监督学习)

      1.根据数据样本上抽取出的特征,挖掘数据的关联模式

      2.相似用户挖掘/社区发现

      3.新闻聚类

    四、强化问题:

      1.研究如何基于环境而行动,以取得最大的预期利益

      2.游戏最高得分

      3.机器人完成的任务

    五.下图来自周志华老师西瓜书

      上图是一个监督学习。我们需要根据西瓜的色泽、根蒂和敲声来判断到底是一个好瓜还是一个坏瓜,最后的结果是两种情况,要么这个西瓜是一个好瓜,要么是一个坏瓜,依据是前面的三列。在上表中,每一行是一个西瓜样本每一列是一个属性、特征,如西瓜的颜色、敲声和根蒂都是一个特征。即每一行是一个样本,每一列是一个特征。最后一列是我们的标记空间或者输出空间。最后学习到的是一个从x到y的映射,每一种模型只是映射不一样。

    六、线性回归

      1.何为线性回归

        (1)有监督学习=>学习样本为

        (2)输出/预测的结果yi为连续值变量(连续纸是一个回归问题)

        (3)需要学习映射f:x->y(对于输入的x,可以输出连续值y)

        (4)假定输入x和输出y之间有线性相关关系

        (5)线性回归:准备了数据集(x,y),用线性表示完成x到y之间的映射f,目的是学习出这样的一个映射,

      2.测试/预测阶段

        (1)对于给定的x,预测其输出

      3.例子

      (1)你让一个六年级的孩子在不同同学具体体重多少的情况下,把班上的同学按照体重从轻到重排队。这个孩子会怎么做呢?她可能会通过观察大家的身高和体重来排队

      我们有一个样本,我们把身高和体重以横纵坐标的形式标到二维坐标系中,蓝色的坐标点是一个样本点,线性回归是根据图中随着身高增大,体重在不断增大的趋势,可以表示为下面一个简单的线性表达方式,用一条直线来拟合出一种变换,最终的线性回归如下图。

        (2)房价预测:

      

      (1)通过y=ax+b来进行数据的拟合,得到下面的图:

     

      (2)当我们考虑多个变量的 时候,比如房屋面积,卧室个数的时候,拟合的直线就从二维中的直线成为了高维中的平面或者超平面,能得到下面的式子:

      

      这个地方可以将 写成向量的表达形式,

      这个地方θ和x都是一个列向量,然后将θ做转置操作,就成为了行向量,

      

      上面的θ转置和x做内积,最后的形式就是这种形式

      (3)在大量的样本训练集中,总结出来的规律f用在这次未知的房价预估上,预估拿到结果

      

      如上图,我们需要学习这里的训练集,得到一个x到y的映射f,这个f可以有各种形态,在线性回归中,我们给出了一个最简单的线性组合的形态,f(x)=,对于这种形态,可以写成向量化的表达形式,在特征x中加一维X0=1来表示截距,

     4.机器学习所有的方法都是:数据驱动=数据+模型(算法)

      (1)模型=假设函数f(可能是一种计算的模型,可能是一种规则,可能是一种任何其他的东西)+优化(让θ一步步让模型朝着拟合更好拟合更准放入方向走),不要把每个模型当做孤立的模型来看待。这些模型能不能用好,取决于能不能在大的架子下,在给你的学习方法的基础上完成优化。如何让θ朝着 让模型变得更好,拟合更准的方向去走,这部分叫做优化。

    5.线性回归损失函数(loss function)

      (0)在监督学习中,优化=loss function(损失函数,cost function代价函数)+optimizy优化算法

      (1)找到最好的权重/参数[θ0,θ1,....θn]=θ

      (2)怎么去衡量“最好”?

        我们把x到y的映射函数f记为θ的函数hθ(x)

        定义损失函数为:通过模型预估的结果是hθ(x),真实值是y,是数据的标签。将预估的结果减去真实的结果,结果可正可负。平方就是数据之间的差值,除以m是数据的平均差距,这里的m是m个样本数,这里除以2是为了后面做数学优化的时候优化方便,没有过多的原因。这里x和y都是知道的只有θ是未知的

        

       J(θ)是用来衡量模型好坏的量,不同的θ有不同的偏离量,我们要找到θ,使得Jθ是最小值,使得预估值和标准值之间的差值是最小值。如下图,当θ在不断变大的时候,就成为了右边图描述的变化,下图中凸函数的最低点是我们想要找到的最低点。当找到这个点的时候,就可以说明模拟效果很好。

        

        对于多元情况,J(θ)的变化情况是下图的形式。目标数找到最小值,找到的是局部最低点。这个图是每取定一个θ,和标准答案差异的取值。

        

        在计算机中,我们使用迭代法计算,优化=损失函数+优化算法,损失函数最小化的算法,我们使用梯度下降。

        (3)梯度下降GD

          逐步最小化损失函数的过程。如同下山,找准方向(斜率),每次迈出一小步,直至山底。

          在起始位置开始,找到一个方向,会顺着方向向下滑动一段,然后再顺着方向再向下走,每一次都是这样的迭代,犹如一个下山的过程,找到最陡的方向往前迈出一步

          对于二元的情况,下面是一个碗,放一个球,让其滚动,一层一层的截,就是等高线,球是垂直于等高线的方向向里面走动。

        (4)多元梯度下降。下面的α是一个超参数,在模型学习之前需要敲定,需要自己选定。

          

          这里如果α过大,会直接跳过最低点,如果α非常大,

    六、回归与欠/过拟合

      

        0.通过多项式回归完成一个连续值的预估,标记了很多的样本点,最终的效果如上图。第一个线性模型不能够拟合好所有的样本,拟合能力很差,以至于不能拟合好所有的样本点。第二个抛物线可以穿过所有的点,而且离所有的点都比较近,第三图高次曲线能够很好的穿过所有的点,

        1.比较模型的好坏,就是比较谁的模型泛化能力更好,学习到的模式会更通用一点。

      2.过拟合问题:如果我们有非常多的特征/模型很复杂,我们的假设函数曲线可以对原始数据拟合非常好,但是丧失了一般性,从而导致对新给的待预测样本,预测效果差。

      3.所有的模型都有可能存在过拟合的风险,意味着有更强的能力,但也更可能无法无天,眼见不一定为实,你看到的内容不一定为全部真实的数据分布,死记硬背不太好。

      4.正则化。

        (0)在这之前的损失函数长成这个样子。只要模型拟合的很好就可以,但是抖动非常大,就说明非常的不平稳,等到新的样本来的时候,模型就挂掉了。

          

        (1)控制参数幅度,不能让模型“无法无天”

        (2)限制参数搜索空间,下式中,后面加的一项是θ的幅度,人是超参数,给后面这个幅度加多大的惩罚。这里误差项样本要加到m是因为有m个样本,惩罚项加到n是因为有n个θ,即有n个特征

        

    七、逻辑斯蒂回归

      1.解决分类问题。

        (1)线性回归+阈值。下图中横坐标是肿瘤的大小,纵坐标是是否是一个恶性肿瘤,现在肿瘤大小在0.5左侧就是良性肿瘤,在0.5右侧就是恶性肿瘤。

        

        但是上面的这个方法并不是一个很好的方法,如果来了两个异常值,肿瘤大小非常大,在这种情形下显然是恶性肿瘤,再去做线性回归会发现这条直线被拉偏了,因为它要兼顾到所有的样本,拉偏之后再取0.5做阈值,就发现有两个样本被错误的划分,健壮性不够,对噪声不太敏感。

        (2)sigmoid函数,数学特性很好。

        

       (3)g(x)的导函数:如果需要求导,可以一步求出来。

        g`(x)=g(x)[1-g(x)]

       (4)所有的分类问题,本质上式在空间中找到一个决策边界,完成这里的决策。如下图可以将样本点进行划分。

      

      

        (5)线性判定边界。如何由线性回归得到拟合的直线或者曲线变成这样的一条决策边界

        直线上方的点 代进去会大于0,

         (6)非线性判定边界。对于这个图,圆外的点是大于0的,圆内的点是小于0的,对应于sigmoid函数,圆外的是大于0.5的,圆内的点是小于0.5的

      损失函数:的数学特性不好,如下

      

      有很多最低点,损失函数凹凸不平,特性不好。我们使用下面的损失函数,

        

      hθ是属于正样本的概率p,hθ(x)=p,我们希望概率p越大越好,logp越大越好,-logp越小越好,损失函数如下。

      

      当它是负样本的时候,希望log(1-p)越大越好,-log(1-p)越小越好。同理如果是正样本的时候,我们希望log(1-p)越大越好。一个0到1之间的数,越乘越小,我们将其变为加法。于是就得到下面的损失函数(二院交叉熵损失):

      

      加上正则化项如下: 

      2.多分类:

        (1) one vs one 用二分类来解决多分类,在任意两个人类之间构建分类器,

        

         构建多个二分类器和构建一个多分类器,

        (2) one vs rest,同样会构建三个分类,是不是小三角形,是不是小叉叉,是不是小方块,在取得了三个分类器之后,会取得最大的概率p

         

    八、LR应用经验

      1.LR<SVM/GBDT/RandomForest>

      (1)模型没有好坏之分

          LR能以概率的形式输出结果,而非只有0,1判定

          LR可解释性强,可控度高

          训练快,feature engineering之后效果赞

          因为结果是概率,可以做ranking model

          添加feature太简单

      (2)应用

          CRT预估/推荐系统的learning to rank/各种分类场景

          某搜索引擎厂的广告CTR预估基线版是LR

          某电商搜索排序/广告CTR预估基线版是LR

          某电商的购物搭配推荐使用了大量的LR

          某现在一天广告赚1000w+的新闻app排序基线是LR  

         

  • 相关阅读:
    javaEE企业级基础介绍(一)
    SQL学习笔记系列(十)窗口函数
    SQL学习笔记系列(九)索引优化分析
    Tableau教程笔记
    淘宝用户行为分析--基于MySQL、Tableau
    Stop thinking,start living--《心灵奇旅》观后感
    SQL刷题
    SQL学习笔记系列(八)流程控制结构
    SQL学习笔记系列(七)存储过程和函数
    在超算系统上使用sbatch提交MXNet分布式训练任务
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/10313861.html
Copyright © 2011-2022 走看看