week 4 ridge regression
coursera 上的 华盛顿大学 machine learning: regression 第四周笔记
通常, 过拟合的一个表现是拟合模型的参数很大。
为了防止过拟合
Total cost = measure of fit + measure of magnitude of coefficients
前者描述训练集拟合程度,后者评估回归模型系数大小,小则不会过拟合。
评估训练集拟合程度( measure of fit ):

RSS(w) 越小,拟合程度越好。
评估回归模型系数(measure of magnitude of coefficients):
(1)系数绝对值之和 |w|, L1范数
(2)系数平方和 ||w||2,L2范数
岭回归:计算回归系数时使( RSS(w)+λ||w||2 )最小
其中λ为平衡训练集拟合程度 和 拟合系数大小 的调整参数。
在λ的选择上体现了 bias-variance tradeoff:
对于大的λ:high bias, low variance
对于小的λ:low bias, high variance
如何确定 λ 大小?
理想条件下(数据集足够大):

training set: 训练集用于拟合回归模型
validation set: 检测系数大小,用于确定λ
test set: 测试集,计算泛化误差(generalization error)
实际情况下,数据集有限,常用方法有:
K - fold cross validation
步骤:
对于每一个需要评估的 λ:
将数据集分为training set 和 test set;
将其中training set 打乱顺序(随机排序),分成 k 等分。
k 次循环,每次将k等份中其中一份作为 validation set, 剩下部分作为 training set
每次根据validation set 计算 error (λ), 结果为k次计算的平均值。
average (error (λ))最小的为最合适的λ
梯度下降法求回归系数:
total cost = RSS(w)+λ||w||2
Cost(w)= SUM[ (prediction - output)^2 ]+ l2_penalty*(w[0]^2 + w[1]^2 + ... + w[k]^2).
求导:
derivative = 2*SUM[ error*[feature_i] ] + 2*l2_penalty*w[i].
(其中没有2*l2_penalty*w[0]这一项)
每次迭代:
predictions = predict_output(feature_matrix, weights)
errors = predictions - output
for i in xrange(len(weights)):
feature = feature_matrix[:, i]
derivative = compute_derivative_ridge(errors, feature, weights[i], l2_penalty)
weights[i] = weights[i] - step_size * derivative
week 4 ridge regression的更多相关文章
- Ridge Regression(岭回归)
Ridge Regression岭回归 数值计算方法的"稳定性"是指在计算过程中舍入误差是可以控制的. 对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这 ...
- support vector regression与 kernel ridge regression
前一篇,我们将SVM与logistic regression联系起来,这一次我们将SVM与ridge regression(之前的linear regression)联系起来. (一)kernel r ...
- Jordan Lecture Note-4: Linear & Ridge Regression
Linear & Ridge Regression 对于$n$个数据$\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\},x_i\in\mathbb{R}^d,y ...
- Ridge Regression and Ridge Regression Kernel
Ridge Regression and Ridge Regression Kernel Reference: 1. scikit-learn linear_model ridge regressio ...
- How and when: ridge regression with glmnet
@drsimonj here to show you how to conduct ridge regression (linear regression with L2 regularization ...
- ISLR系列:(4.2)模型选择 Ridge Regression & the Lasso
Linear Model Selection and Regularization 此博文是 An Introduction to Statistical Learning with Applicat ...
- 再谈Lasso回归 | elastic net | Ridge Regression
前文:Lasso linear model实例 | Proliferation index | 评估单细胞的增殖指数 参考:LASSO回歸在生物醫學資料中的簡單實例 - 生信技能树 Linear le ...
- 岭回归(Ridge Regression)
一.一般线性回归遇到的问题 在处理复杂的数据的回归问题时,普通的线性回归会遇到一些问题,主要表现在: 预测精度:这里要处理好这样一对为题,即样本的数量和特征的数量 时,最小二乘回归会有较小的方差 时, ...
- Kernel ridge regression(KRR)
作者:桂. 时间:2017-05-23 15:52:51 链接:http://www.cnblogs.com/xingshansi/p/6895710.html 一.理论描述 Kernel ridg ...
- 机器学习方法:回归(二):稀疏与正则约束ridge regression,Lasso
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. "机器学习方法"系列,我本着开放与共享(open and share)的精神撰写,目的是 ...
随机推荐
- 测试网站页面网速的Python脚本
一.测试网站页面网速脚本 [root@salt ~]# cat check_url.py #!/usr/bin/python # coding: UTF-8 import StringIO,pycur ...
- 我使用过的Linux命令之swig - 把C/C++的代码嵌入Java等语言的开发工具
用途说明 SWIG是Simplified Wrapper and Interface Generator的缩写,其官方站点是http://www.swig.org/.SWIG是个帮助使用C或者C++编 ...
- Android画图系列(二)——自己定义View绘制基本图形
这个系列主要是介绍下Android自己定义View和Android画图机制.自己能力有限.假设在介绍过程中有什么错误.欢迎指正 前言 在上一篇Android画图系列(一)--自己定义View基础中我们 ...
- idea 配置Spring MVC
一.idea 生成的Spring MVC 项目将<url-pattern>.form<url-pattern>改成<url-pattern>.do<url-p ...
- REOBJECT structure
REOBJECT structure 包含丰富编辑控件中的OLE或图像对象的信息. Syntax 语法 typedef struct _reobject { DWORD cbStruct; LON ...
- 云计算之路-阿里云上:禁用Windows虚拟内存引发的重启
昨天(2013年8月6日)下午,承载www.cnblogs.com主站的两台云服务器分别自动重启了1次,由于这两台云服务器使用了负载均衡(SLB),重启并未影响网站的正常访问. 与这次重启相关的Win ...
- 基于.NET的轻量级微信SDK
一.前言 特别不喜欢麻烦的一个人,最近碰到了微信开发.下载下来了一些其他人写的微信开发“框架”,但是被恶心到了,实现的太臃肿啦. 最不喜欢的就是把微信返回的xml消息在组装成实体类,所以会比较臃肿,现 ...
- STM32f103按键检测程序实现长按短按
背景 只要使用单片机,按键检测基本上是一定要实现的功能.按键检测要好用,最重要的是实时和去抖.初学者往往会在主循环调用按键检测程序(实时)并利用延时去抖(准确).这种在主循环内延时的做法对整个程序非常 ...
- <转>windows下编译lua源码
因为之前一直使用 lua for windows 来搭建lua的使用环境,但是最新的 lua for windows 还没有lua5.2,我又想用这个版本的lua,所以被逼无奈只能自己编一下lua源码 ...
- Hive row_number() 等用法
1.row_number() over()排序功能: (1) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排 ...