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

      

      

    回归问题:主要用于预测数值型数据,典型的回归例子:数据拟合曲线,回归算法中算法的最终结果是一个连续的数据值,输入值是一个d维度的属性/数值向量

    一.线性回归

      线性回归的定义:

      线性回归需要一个线性模型,属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数是否足够拟合训练集数据,然后挑选出最好的函数.

      

      最终要求是计算出θ的值,并选择最优的θ值构成算法公式

      怎么样能够看出线性函数拟合的好不好呢?

      答案是我们需要使用到Cost Function(代价函数),代价函数越小,说明我们线性回归的越好,和训练数据拟合的越好。

      线性回归、最大似然估计及二乘法

      似然函数:在英语语境里,likelihood 和 probability 的日常使用是可以互换的,都表示对机会 (chance) 的同义替代。但在数学中,probability 这一指代是有严格的定义的,即符合柯尔莫果洛夫公理 (Kolmogorov axioms) 的一种数学对象(换句话说,不是所有的可以用0到1之间的数所表示的对象都能称为概率)。而 likelihood (function) 这一概念是由Fisher提出,他采用这个词,也是为了凸显他所要表述的数学对象既和 probability 有千丝万缕的联系,但又不完全一样的这一感觉。  中文把它们一个翻译为概率(probability),一个翻译为似然(likelihood)也是独具匠心。

      似然函数的定义: L(θ|x) = f(x|θ)

      上式中,小x指的是联合样本随机变量X取到的值,即X= x;这里的θ是指未知参数,它属于参数空间;而  是一个密度函数,特别地,它表示(给定)θ下关于联合样本值x的联合密度函数。  从定义上,似然函数和密度函数是完全不同的两个数学对象:前者是关于θ的函数,后者是关于x的函数。所以这里的等号= 理解为函数值形式的相等,而不是两个函数本身是同一函数(根据函数相等的定义,函数相等当且仅当定义域相等并且对应关系相等)。

      两者的联系:

       如果X是离散随机变量,那么其概率密度函数可改写为:

      

      即代表了在参数为θ下,随机变量X取到x的可能性。并且,如果我们发现:

      

      那么似然函数就反应出这样一个朴素推测:在参数下随机向量X取到值x的可能性大于在参数下随机向量X取到值x的可能性。换句话说,我们更有理由相信相对于来说更有可能是真实值。这里的可能性是由概率来刻画。

      综上,概率(密度)表达给定下样本随机向量X = x的可能性,而似然表达了给定样本X = x下参数(相对于另外的参数)为真实值的可能性。 

      最大似然估计:

      在已知试验结果(即是样本)的情况下,用来估计满足这些样本分布的参数,把可能性最大的那个参数作为真实的参数估计。最大似然估计,最大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。

       求最大似然函数估计值的一般步骤: 
      (1) 写出似然函数
      (2) 对似然函数取对数,并整理
      (3) 求导数
      (4) 解似然方程

      最小二乘法(Least Square )的解析解可以用 Gaussian 分布以及最大似然估计求得

      首先假设线性回归模型具有如下形式:

      

      其中:,误差

      已知:

      

      如何求参数W呢?

      如果用最小二乘法的话,有误差函数:

      

      我们对W求偏导,然后令个偏导 = 0,联立解方程——这就是最小二乘法求W的过程。

      如果用最大似然函数求解的话:

      假设误差服从高斯正态分布:

      

      也就是说:

      

      则最大似然估计推导:

      

      对上式求偏导然后令个偏导 = 0,联立解方程。

      总结:两者的结果是一样的。

  • 相关阅读:
    安装tensorflow-gpu
    Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
    js,jq获取父,兄弟,子节点整理
    dos 命令
    用JavaScript实现自动点击由confirm弹出的对话框中的“确定”按钮
    解决UnicodeEncodeError: 'gbk' codec can't encode character u'u25aa' in position 344 : illegal multiby
    JS中的document.title可以获取当前网页的标题
    python中的3目运算(3元表达式)
    ajax 怎么重新加载页面
    python win32api 如何用代码模拟点击网页confirm框的确定按钮
  • 原文地址:https://www.cnblogs.com/pythonz/p/10012659.html
Copyright © 2011-2022 走看看