【机器学习笔记三】回归分析 - 岭回归

参考资料

【1】    http://blog.csdn.net/google19890102/article/details/27228279

【2】    讲讲共线性问题 http://www.jianshu.com/p/ef1b27b8aee0?from=timeline

【3】    最小二乘法的矩阵形式推导 http://blog.csdn.net/monsterhoho/article/details/46753673

【4】    Spark MLlib 机器学习实践

1、共线性及多重共线性问题

对于最小二乘法,我们有矩阵形式的推导如下:

此时对x求导,有,得到

对于上述解,当x中存在二个或多个线性相关形式,就会接近于0,造成很大的误差,因此为了解决这个误差我们在代价函数中增加了扰动项,类似矩阵形式变为:

2、岭回归模型

所谓的岭回归就是在线性回归的基础上增加了正则项,通常为lasso回归(L1回归)和岭回归(L2回归)。岭回归公式如下:

3、岭回归Spark Mlib下例子

package com.fredric.spark.lr

import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.{RidgeRegressionWithSGD, LinearRegressionWithSGD, LabeledPoint}
import org.apache.spark.{SparkContext, SparkConf}

import scala.util.Random

/*-
 * 回归分析 岭回归
 * Fredric 2017
 */
object lrl2 {
  def main(args:Array[String]): Unit ={
    val conf = new SparkConf().setMaster("local").setAppName("Rr01")
    val sc   = new SparkContext(conf)

    //以二元线性回归y = 7*x1 + 5*x2 + 3为例,初始化数据
    val Array = new Array[LabeledPoint](500)

    for(t <- 1 to 500){

      val random = new Random();

      val x1 = random.nextInt(4) + random.nextDouble()
      val x2 = random.nextInt(3) + random.nextDouble()
      val y = 7 * x1 + 5 * x2 + (new Random()).nextDouble() + 3

      Array(t-1) = new LabeledPoint(y,  Vectors.dense(x1, x2, 1))
    }

    val data = sc.makeRDD(Array)

    //采用岭回归模型
    val model = new RidgeRegressionWithSGD()
    model.optimizer.setNumIterations(100);//迭代100次

    val res = model.run(data)

    //输出结果为 [7.016836776795048,5.045698277235657,3.3398441790354525]
    println(res.weights)
  }
}

原文地址:https://www.cnblogs.com/Fredric-2013/p/8495999.html

时间: 2024-10-12 13:38:03

【机器学习笔记三】回归分析 - 岭回归的相关文章

Coursera机器学习-第三周-逻辑回归Logistic Regression

Classification and Representation 1. Classification Linear Regression (线性回归)考虑的是连续值([0,1]之间的数)的问题,而Logistic Regression(逻辑回归)考虑的是离散值(例如只能取0或1而不能取0到1之间的数)的问题.举个例子,你需要根据以往季度的电力数据,预测下一季度的电力数据,这个时候需要使用的是线性回归,因为这个值是连续的,而不是离散的.而当你需要判断这个人抽烟还是不抽烟的问题时,就需要使用逻辑回

机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)> 2.<机器学习笔记02:多元线性回归.梯度下降和Normal equation> 3.<机器学习笔记03:Normal equation及其与梯度下降的比较> 说明:本文章所有图片均属于Stanford机器学课程,转载请注明出处 面对一些类似回归问题,我们可

机器学习笔记(3):多类逻辑回归

仍然是 动手学尝试学习系列的笔记,原文见:多类逻辑回归 — 从0开始 . 这篇的主要目的,是从一堆服饰图片中,通过机器学习识别出每个服饰图片对应的分类是什么(比如:一个看起来象短袖上衣的图片,应该归类到T-Shirt分类) 示例代码如下,这篇的代码略复杂,分成几个步骤解读: 一.下载数据,并显示图片及标签 1 from mxnet import gluon 2 from mxnet import ndarray as nd 3 import matplotlib.pyplot as plt 4

机器学习之线性回归、岭回归、Lasso回归

1.回归算法分类算法的目标值是标称型数据,而回归的目标变量是连续型数据,主要包括线性回归,岭回归,lasso回归,前向逐步回归. 2.线性回归线性回归主要用于处理线性数据,结果易于理解,计算复杂度不高,但是处理不了非线性数据.线性回归用最适直线(回归线)去建立因变量Y和一个或多个自变量X之间的关系.可以用公式来表示:Y = wX + b.其中w为权重,也称为回归系数,b为偏置顶. 3.理解线性回归线性回归从高中数学就接触过了,不过我们主要学习二维形式的线性回归,即y = kx + b.其中斜率k

机器学习笔记(三)- from Andrew Ng的教学视频

week four: Non-linear hypotheses:Neural Networks -->x1 and x2 x1 XNOR x2 ->a1->x1 and x2;a2->(not x1) and (not x2);->h(x),a1 OR a2 the method is a new approach cost function: 总的来说,后向传播的神经网络中的delt的求解就是对于cost函数对每个参数求偏导的过程,所以具有理论上的可行性.

R语言统计分析技术研究——岭回归技术的原理和应用

岭回归技术的原理和应用 作者马文敏 岭回归分析是一种专用于共线性分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息,降低精度为代价获得回归系数更为符合实际,更可靠的回归方法,对病态数据的耐受性远远强于最小二乘法. 回归分析:他是确立两种或两种以上变量间相互依赖的定量关系的一种统计分析法.运用十分广泛,回归分析按照设计量的多少,分为一元回归和多元回归分析,按照因变量的多少,可分为简单回归分析和多重回归分析,按照自变量和因变量的多少类型可分为线性回归

机器学习-正则化(岭回归、lasso)和前向逐步回归

机器学习-正则化(岭回归.lasso)和前向逐步回归 本文代码均来自于<机器学习实战> 这三种要处理的是同样的问题,也就是数据的特征数量大于样本数量的情况.这个时候会出现矩阵不可逆的情况,为什么呢? 矩阵可逆的条件是:1. 方阵 2. 满秩 X.t*X必然是方阵(nxmxmxn=nxn,最终行列数是原来的X矩阵的列数,也就是特征数),但是要满秩的话,由于线性代数的一个结论,X.t*X的秩不会比X大,而X的秩是样本数和特征数中较小的那一个,所以,如果样本数小于特征数的话,X.t*X就不会是可逆的

机器学习3-课后题:使用岭回归与lasso算法选择变量

题目 准备 1准备安装和加载包 2读入数据 多重共线性检查 1全部变量参与线性回归 2全部变量参与线性回归 岭回归 1全部变量做岭回归 1去掉X3再做岭回归 使用linearRidge自动做岭回归 lasso 1变量选择顺序 2选择哪些变量 1.题目 分别使用岭回归和Lasso解决薛毅书第279页(PDF为p331)例6.10的回归问题 2.准备 2.1.准备安装和加载包 使用到R语言的函数和对应包 函数 功能 包 lm.ridge 提供岭回归函数 ridge linearRidge 自动进行岭

机器学习第3周---炼数成金-----岭回归

多元线性回归的最小二乘解(无偏估计) 岭回归(Ridge Regression,RR) 当自变量间存在复共线性时,|X′X|≍0,我们设想给X′X加上一个正常数矩阵kI,(k>0), 那么X′X+kI接近奇异癿程度就会比X′X接近奇异癿程度小得多.岭回归做为β癿估计应比最小二乘估计稳定,当k=0时癿岭回归估计就是普通癿最小二乘估计.