Programming Exercise5:Regularized Linera Regression and Bias v.s Variance
大家好,本文主要和大家分享coursera网站上斯坦福大学机器学习公开课(吴文达老师)第六周Reguirized Linera Regression and Bias v.s Variance的课后编程题。这周的课程主要介绍了一些模型选择,样本分类,bias and variance,regularization参数选择,learing curves学习曲线绘制等知识。以下为本人编写的代码和一些个人的见解,如有错误,请留言批评指正,谢谢。
1.首先,我们需要对linearRegCostFunction.m这个文件进行改造。这个文件是利用线性拟合为模型,计算样本X,y在指定theta和lambda的参下的代价J和偏导grad。
function [J, grad] = linearRegCostFunction(X, y, theta, lambda)% You need to return the following variables correctly
J = 0;
grad = zeros(size(theta));J = sum((X * theta - y).^2)/(2*m) + lambda / (2 * m) * (sum(theta .^2 ) - theta(1)^2); %计算正则化线性回归的代价grad = ((X * theta - y)' * X)'/m + lambda / m * theta; %计算正则化线性回归的梯度
grad(1) = grad(1) - lambda / m * theta(1); %不惩罚theta0,重新加回去,theta0在matlab数组中的下标为1grad = grad(:);
end
function [error_train, error_val] = ...learningCurve(X, y, Xval, yval, lambda)m = size(X, 1);% You need to return these values correctly
error_train = zeros(m, 1);
error_val = zeros(m, 1);%需要绘制的是error_training,error_val随着训练样本集增大的变换曲线
%所以训练数m需要从1开始慢慢增加,所以需要for循环,i表示当前训练样本数
for i = 1:m,theta = trainLinearReg(X(1:i,:),y(1:i,:),lambda); %注意,此时训练样本数为i,所以用X,y的前i个元素训练thetaerror_train(i) = sum((X(1:i,:) * theta - y(1:i,:)).^2)/(2 * i); %注意,此时的训练样本数为i,所以用X,y的前i个元素计算error_train,除数为2*ierror_val(i) = sum((Xval * theta - yval).^2)/(2 * size(Xval,1)); %注意,由于验证集不变,每次用的都是全部的验证集
end
end
function [X_poly] = polyFeatures(X, p)
X_poly = zeros(numel(X), p);
for i = 1:p,X_poly(:,i) = X.^i; %第i列对应X的i次方即可
end
end
function [lambda_vec, error_train, error_val] = ...validationCurve(X, y, Xval, yval)
% Selected values of lambda (you should not change this)
lambda_vec = [0 0.001 0.003 0.01 0.03 0.1 0.3 1 3 10]';% You need to return these variables correctly.
error_train = zeros(length(lambda_vec), 1);
error_val = zeros(length(lambda_vec), 1);for i = 1:10, %因为有lambda_vec有十个元素,需要对每个元素逐个计算,故用for循环theta = trainLinearReg(X,y,lambda_vec(i)); %利用正则化的线性回归计算最优参数thetaerror_train(i) = sum((X * theta - y).^2)/(2 * size(X,1)); %计算训练误差error_trainerror_val(i) = sum((Xval * theta - yval).^2)/(2 * size(Xval,1)); %计算验证误差error_vala
end
Programming Exercise5:Regularized Linera Regression and Bias v.s Variance相关推荐
- 吴恩达机器学习作业5---Regularized Linear Regression and Bias vs. Variance
Regularized Linear Regression and Bias vs.Variance 文章目录 Regularized Linear Regression and Bias vs.Va ...
- Machine Learning week 6 quiz: programming assignment-Regularized Linear Regression and Bias/Variance
一.ex5.m %% Machine Learning Online Class % Exercise 5 | Regularized Linear Regression and Bias-Varia ...
- machine learning(15) --Regularization:Regularized logistic regression
Regularization:Regularized logistic regression without regularization 当features很多时会出现overfitting现象,图 ...
- 文献学习(part30)--Clustering of temporal gene expression data by regularized spline regression and...
学习笔记,仅供参考,有错必纠 关键词:样条模型;正规化的回归;能量算子;时间基因表达数据分析;聚类 文章目录 Clustering of temporal gene expression data b ...
- 吴恩达机器学习练习2:Regularized logistic regression
本小节主要练习正则化logistic分类. 1.原始数据的可视化 data = load('ex2data2.txt');%将数据导入data中 X = data(:, [1, 2]); y = da ...
- 线性回归正则化 regularized linear regression
线性回归正则化regularized linear regression 在前几篇博客中介绍了一元线性回归http://blog.csdn.net/u012328159/article/details ...
- Programming Exercise 2: Logistic Regression
题目要求及材料下载链接:Coursera下载地址 没用的信息略过,有用的翻译一下. 本练习中包含的文件: ex2.m - Octave/MATLAB脚本 ex2_reg.m - Octave/MATL ...
- 吴恩达神经网络和深度学习-学习笔记-6-训练集、验证集和测试集 + 偏差bias和方差variance
寻找最优超参数是一个迭代过程 在今天,应用深度学习是一个典型的迭代过程. 创建高质量的训练数据集.验证集和测试集,有助于提高循环效率. 训练集.验证集和测试集 数据Data分为三部分: 训练集trai ...
- Important Programming Concepts (Even on Embedded Systems) Part V: State Machines
Earlier articles in this series: Part I: Idempotence Part II: Immutability Part III: Volatility Part ...
最新文章
- 训练不出结果_智能训练仪:专业化智能防控近视训练设备
- android 解决ListView点击与滑动事件冲突
- 算法导论6.1-2习题解答
- mysql自增mybatis返回主键_Mybatis + mysql 返回自增主键
- python sanic加速_python微服务sanic 使用异步zipkin(2) - 一步步创建Sanic插件: sanic-zipin...
- php一对多聊天程序代码,微信小程序实现一对多发消息
- 上海应用技术学院c语言实验报告9,上海工程技术大学C语言实验报告
- python 人气高的项目_给大家推荐:五个Python小项目,Github上的人气很高的!
- Linux常用命令备忘(启动管理、文件或目录管理、系统管理)
- 瑞银:将京东目标价上调至110美元 维持“买入”评级
- SpringMVC系列(十四)Spring MVC的运行流程
- 马化腾回应《腾讯没有梦想》:我的理想不是赚多少钱
- ide循环执行用例 selenium_Selenium Web自动化Page Object设计模式——循环执行测试用例...
- 遥感影像植被颜色增强
- Spring Cloud Alibaba Sentinel之服务熔断篇
- 如何使用Xshell连接linux服务器
- 鸿蒙系统下载 绿色,WiseFolderHider(文件夹加密软件)4.3.7
- 【Blender】UV贴图相关学习
- 如何使用JavaScript替换DOM元素?
- 微信云控的大触来一下