• final 2


    1. inductive bias: 模型由于假定好的限制,不能跟真实的模型足够接近

    如linear regression:假设target function是线性的;使用尽可能减小MSE来作为优化方向

    nearest neighbor:假设function不能由一个简单的线性或非线性的function拟合;选取了唯一一种测量距离的方法

    2. Bayes Theorem

    P(D)通常被忽略

    3. 如何用Bayes理论进行判断:选取概率更高的

    a) MAP(Maximum a posterioir hypothesis), 即P(y=Ci|x)最大的即为所求

    b) ML(Maximum likelihood, 即P(x|Ci)最大的即为所求

    4. ∝表示正比例

    bayes optical classifier: 有多个分类器,每个分类器都有一定的概率是准确的

    举例来讲:

     

    首先将hn(x)转化成P(-|hn)与P(+|hn)  ———— 预测为正则+为1,-为0;反之相反

    然后分别求+,-的概率(+:1*0.4+0*0.3+0*0.3,-同理)

    比较+-中更大的那个的概率

    5. Naive Bayes Classifier

    x不仅有一个维度

    假设所有feature,attribute之间都是独立的

    假设总概率是不同维度下概率相乘

    p(Vj)代表先前数据,如计算明天是否会羽毛球,p(Vj)即打或不大的概率;likelihood跟前面的计算类似,打以及不打分别计算(天气状况,温度等不同维度不同情况下的打/不打概率)

    给出新的情况时,用先前概率乘对应情况下的概率,比较打与不大的概率,取最大值

    6. zero frequency: 为避免概率为0,在原有数据基础上,每个数据都加1

    7. 对于numeric attribute,与classification不同,先用高斯分布进行拟合,故而每个x都有与之对应的概率

    8. Naive Bayes最重要的应用——text classification

    bag of words: 忽略单词不同位置的影响,把句子理解为一个个set

    一般有两种model,分别为multinomial与multivariate Bernoulli models

    multivariate Bernoulli不考虑每个单词出现了几次,只关心是否出现过

    同样增加advanced smooth,方法是新增加两行全是1和全为0的数据

    Multinomial则需要对出现个数进行统计,对于相同类别内的数据进行混合,如class为+的情况有4种,a b c分别对应出现0,3,0次;0,3,3次;3,0,0次;2,3,0次。即class为+中,a出现5,b出现9次,c出现3次;同样增加advanced smooth,然后求概率

    对于新出现的数据,出现n次就是概率的n次方

    9. logestic regression

    10.  Occam's  Razor

    保证模型足够简单的前提下,越简单越好

    11. decision tree

    data是numeric features和discrete attribute的组合时,decision trees效果很好

    目标function是离散的(即分类问题,否则采用regression trees)

    12.  important algorithm in Decisison Tree:TDIDT(Top-Down INducion of Decision Trees)

    找到最好的一个feature进行split,在剩余的feature里,分别基于现有的两个class找到新的最好的feature

    a) ID3(Iterative Dichotomiser 3)

    针对categorical attribute

    b) CaRT(Classification & Regression Tree)

     支持categorical attribute与numerical attributes

    13. Entropy

    选取最好的feature的标准是希望结果尽量不均衡,即最好split之后的结果全为一类;衡量标准即为entropy(0 1之间)

    14. information gain

    比较原始数据的entropy与split之后所得数据的entropy的差值,越大越好

    每一层split的店不一定一致

    15. ID3优化可以得到gain ratio

    由于有的attribute可以划分的特别细,故而split效果就很好,但是这对别的attribute是不公平的

    增加splitEntropy: 划分的越细,SplitEntropy就越高

    用GainRatio平衡两者,越大越好(即gain尽可能大。SplitRatio尽可能小

    16. decision tree很容易overfitting

    即有h, h'两个算法;training data上h的error小于training data上h'的data;所有数据上h的error大于h'的error;则h是overfitting的

    17. overfitting的解决方法为pruning

    a) pre-pruning: training没结束前就停下来

    early stop,增添限制,如max_leaf_nodes; min_samples_split; max_depth

    b) post-pruning: tree构建完成后逐层向上pruning

    data分为train和valid两部分,用valid进行pruning

    post-pruningk可以细分成: reduced-error Pruning; Minimum error; Samllest tree

     reduced-error Pruning: 数据分为training与validation,通过training得到tree,然后在valid上逐层检测,如果某一点的split使效果反而变差了,则删除这个分支

    缺点是data很少的情况下还要分一部分给valid,会使效果不好

    minimum error:training时用cross-validation不断测试error,选取error最低的那个

    smallest tree:考虑error的同时也要考虑tree的大小,即在可以接受的错误率范围中找到一个最小的

    18. tree to rules

    19. decision trees也可以解决continuous valued attribute,尽可能使class相同的分在一起

     

    20. attr with costs

    如做测试需要花钱,可以将gain修改为原来gain的平方/cost

    21. windowing

    解决training set过大的问题,只用一部分training data构建tree,用剩余data测试,若所有的training data都测试通过则结束,否则将测试错误的data放入window里面进一步测试

    22. decision tree的inductive bias是只达到了局部最优,每一轮只选取了当前来讲最佳的;同时我们希望树的size越小越好,但是这种设定对于模型本身而言并不一定是最优解

    24. decision tree优点:interpretability可解释性;测试很快;可以处理数据丢失;可处理无关attribute(Gain = 0);categorical以及numerical data均可处理

    缺点是容易overfitting且不一定达到全局最优

    25. regression tree

    用weighted average variance做evaluation

    求weighted average variance即根据按照当前方法regression之后每个区间里data的占比,乘以对应MSE

    选择最小的

    26. model tree

    regression tree的升级版本,每一个节点split后在两边分别做一个linear regression即线性回归,传递到下一层

    用standard deviation reduction标准差evaluation,若拟合的足够好就不需要继续split了

    27. Perceptron Learning

    由一个加和与其判别函数组成(加和大于0输出1;否则输出-1)

    weight用w = w + yixi更新

    28. 一般用对偶方式解决:Duality

    29. Perceptron Learning用kernel trick解决非线性问题

    将x mapping到更高维上,如(x1, x2) --- (x2^2, x2^2, x1x2)

    但是如果对mapping后的两个point做乘积会很花时间,所以可以先将x1 x2相乘

    常见kernel trick有

    a) polynomial kernel: K(x, x') = (x*x' + c)^q

    b) RBF kernel: K(x, x') = exp(-||x-x'||^2/2a^2)

    30. SVM

    提高模型泛化能力,如果有很多limitation可以作为classifier,选取最宽的那个,宽度用margin表示

    假设边界线为wx = t, 可以平移到最远的两个边界分别为wx = t+m, wx = t-m, 用法向量可以帮助计算margin

    min 0.5*||w||^2化简得到yi(w*xi - t)>=1  即所有点都在线外,并使其最小化

    解决用到Largangian multipliers

    X'即x与y对应的乘在一起

    X'X'T表示了不同组合的乘积,将其代入argmax的公式里

     

    计算如下:

     

    将a3去掉,然后分别对a1, a2求导使其等于0,解出a1, a2

    然后求出w t(求t时需要support vector,即落在边界线上的一个点,这里即为an不为0的,把对应的xn代入,求t)

    31. SVM也有kernel形式

    32. Soft Margin SVM

    ai = 0, 点在边界外面

    0 < ai < C,support vector,边界上

    ai = 3, 在margin里面或者边界上

  • 相关阅读:
    rpc框架thrift
    rpc框架 SimpleXMLRP
    pyqt与拉勾网爬虫的结合
    python打造线程池
    python concurrent.futures包使用,捕获异常
    linux环境下pytesseract的安装和央行征信中心的登录验证码识别
    使用装饰器捕捉错误
    hbase 学习(十六)系统架构图
    大数据入门:各种大数据技术介绍
    How MapReduce Works
  • 原文地址:https://www.cnblogs.com/eleni/p/12812629.html
Copyright © 2020-2023  润新知