Linear regression with multiple variables.(多变量线性回归)

【MATLAB 预测算法教程】_1 curve Fitting拟合工具箱的用法,以及调用工具箱拟合的模型进行预测未来的GDP值 阅读详情

一、导入数据。

        

clear ; close all; clc
fprintf('Loading data ...\n');

%% Load Data 
data = load('ex1data2.txt'); %把txt文件加载为mat文件
X = data(:, 1:2); %把第1列和第二列数据赋给X,第一列房子面积,第二列卧室数目,这两个变量即两个特征
y = data(:, 3);   %第3列数据赋给y,即对应的房子价格
m = length(y);    %训练样例的数目


% Print out some data points
fprintf('First 10 examples from the dataset: \n');
fprintf(' x = [%.0f %.0f], y = %.0f \n', [X(1:10,:) y(1:10,:)]'); %以float格式保留0位小数点
                                                    %打印出X和y的1到10行,其中X是2列,y是一列


fprintf('Program paused. Press enter to continue.\n');
pause;            %pause(5)即为暂停5秒后继续运行,没有参数5,则暂停后按任意键程序继续运行

二、均值归一化

1. 因为房子面积和卧室数目的数据相差过大,需要对特征进行均值归一化,使其取值在相似范围内,否则梯度下降会非常缓慢, 需要很多次迭代。

fprintf('Normalizing Features ...\n');

[X mu sigma] = featureNormalize(X); %调用均值归一化函数对X进行处理,函数返回值为3维行向量,3个
%元素分别是均值归一化处理之后的数据,原数据均值,标准差

2. featureNormalize().均值归一化函数

    

function [X_norm, mu, sigma] = featureNormalize(X)

X_norm = X; %X为传递过来的数据,把它赋给X_norm
mu = zeros(1, size(X, 2));  %size(X, 2)返回矩阵X的列数,这里是两列,所以mu是1行2列的行向量
sigma = zeros(1, size(X, 2)); %这里是对均值mu和标准差sigma初始化为零向量,其实没必要

mu = mean(X); %mean()求每列均值,因为X有2列,得到mu为二维行向量
sigma = std(X); %std()求每列标准差,同理sigma为二维行向量
X_norm = (X - mu) ./ sigma; %进行均值归一化

end

其中X_norm = (X - mu) ./ sigma; , 所使用的数据中X为47*2的矩阵,mu和sigma都是2维行向量,虽然维数不匹配,但matlab是 支持这种运算的。是用X的每一行(2维行向量)都减去mu的对应元素,再除以sigma的对应元素。

举例:

>> X = [2 4;2 4;2 4]

X =

     2     4
     2     4
     2     4

>> mu = [1 2]

mu =

     1     2

>> sigma = [1 2]

sigma =

     1     2

>> X - mu

ans =

     1     2
     1     2
     1     2

>> ans ./ sigma

ans =

     1     1
     1     1
     1     1

但要注意 计算除法的时候一定要用点除。

三、Gradient Descent(梯度下降)

X = [ones(m, 1) X];  %先做的均值归一化,到这里才加入截距项(即对应于theta0的那一项数据,全为1)
                     %这里也可以看出我们并没有对全1的那一列进行均值归一处理

fprintf('Running gradient descent ...\n');

% Choose some alpha value
alpha = 0.01;
num_iters = 400;
theta = zeros(3, 1);
[theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters);

% Plot the convergence graph,并把alpha取不同值的图像放在一起比较
figure;
plot(1:50, J_history(1:50), '-b', 'LineWidth', 2); %numel返回数组元素数目
xlabel('Number of iterations');
ylabel('Cost J');
hold on;


alpha = 0.03;
num_iters = 400;
theta = zeros(3, 1);
[theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters);
plot(1:50, J_history(1:50), '-r', 'LineWidth', 2);


alpha = 0.1;
num_iters = 400;
theta = zeros(3, 1);
[theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters);
plot(1:50, J_history(1:50), '-k', 'LineWidth', 2);
legend('alpha = 0.01', 'alpha = 0.03', 'alpha = 0.1');

% Display gradient descent's result,打印出梯度下降算法得出的模型参数theta
fprintf('Theta computed from gradient descent: \n');
fprintf(' %f \n', theta);
fprintf('\n');

gradientDescentMulti()梯度下降算法

      

function [theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters)

m = length(y); % number of training examples
J_history = zeros(num_iters, 1);  %记录每一次迭代对应的代价函数值
n = size(X,2);  %特征的数目,其中第一个特征的值全为1,是我们为计算方便而加上去的
temp = zeros(size(theta,2),1);

for iter = 1:num_iters
    theta = theta - X'*(X*theta-y)/m*alpha;
    J_history(iter) = computeCostMulti(X, y, theta); %每一次迭代记录下对应的代价函数
end

end

代价函数computeCostMulti(X, y, theta);

 

function J = computeCostMulti(X, y, theta)


m = length(y);
J = 0;


for i = 1:m
    J = J + 1/(2*m)*(X(i,:)*theta - y(i)).^2;
end

end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

接下来用梯度下降算法得到的theta来预测一个面积1650,3个卧室的房子的价格。

price = 0;  
X = [1,([1650 3] - mu)./sigma]; %注意因为我们计算模型参数的时候进行了均值归一化,所以预测的时候
price = X*theta;                %也要进行同样的处理,对1630和3进行归一化,而mu和sigma则是训练
                                %数据X的均值和标准差,这也是为什么均值归一化函数要输出3个变量的
                                %原因  [X_norm, mu, sigma] = featureNormalize(X)

梯度下降算法得到的theta值和对房价预测结果为:

Theta computed from gradient descent: 
 340412.659574 
 110631.048958 
 -6649.472950 

Predicted price of a 1650 sq-ft, 3 br house (using gradient descent):
 $293081.464622

四、Normal Equations.(正规方程法)

                                                         θ =(X^T*X^(−1)) *X^T*y.

fprintf('Program paused. Press enter to continue.\n');
pause;
fprintf('Solving with normal equations...\n');

data = csvread('ex1data2.txt');
X = data(:, 1:2);
y = data(:, 3);
m = length(y);
X = [ones(m, 1) X]; %正规方程法不需要对特征进行均值归一化
theta = normalEqn(X, y);

fprintf('Theta computed from the normal equations: \n');
fprintf(' %f \n', theta);
fprintf('\n');

进行房价预测

price = 0;
X = [1, 1650, 3];

price = X*theta;

fprintf(['Predicted price of a 1650 sq-ft, 3 br house ' ...
         '(using normal equations):\n $%f\n'], price);

因为没有均值归一化,多以对[1650,3]也没必要归一化处理

结果为

Solving with normal equations...
Theta computed from the normal equations: 
 89597.909544 
 139.210674 
 -8738.019113 

Predicted price of a 1650 sq-ft, 3 br house (using normal equations):
 $293081.464335

由结果可知,梯度下降法和正规方程法得到模型参数theta值不同,但预测结果相同

matlab 万能实用的非线性曲线拟合方法 在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整、几乎能解决所有参数拟合的方法 第一步:得到散点数据 根据你的实际问题得到一系列的散点 例如: x=[3.2,3.6,3.8,4,4.2,4.8,5,5.4,6.2,6.4,6.6,6.9,7.1]';%加上一撇表示对矩阵的转置 y=[0.38,0.66,1,0.77 阅读详情

相关推荐

四、多变量线性回归(Linear Regression with Multiple Variables)

随着我们要讲的学习算法越来越复杂,例如,当我们讲到分类算法,像逻辑回归算法,我们会看到,实际上对于那些算法,并不能使用标准方程法。以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-2000平方英尺,而房间数量的值则是0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为。

优创学社 1085

吴恩达 coursera ML 第六课总结+作业答案

前言 学以致用,以学促用,通过笔记总结,巩固学习成果,复习新学的概念。 目录 文章目录前言目录正文问题引入正则化正则化逻辑回归作业答案 正文 本节主要探讨过拟合以及如何使用l2正则化抑制过拟合 问题引入 在使用面积预测房价这个问题上,如何选择模型的阶数? 过拟合的结局方案。 直观展示解决方法对模型的影响 正则化 通过添加参数的正则化项,从而抑制了过拟合的现象。 正则化详解。 正则化的超参数是λ\...

去向前方的博客 562

matlab中的pinv代码-Linear-regression-with-multiple-variables:实施具有多个变量的线性回归以

matlab中的pinv代码具有多个变量的线性回归 在这个项目中,我们将使用多个变量实施线性回归以预测房屋价格。 该项目是的可选练习。 任务描述如下:假设您正在出售房屋,并且想知道一个好的市场价格。 实现此目的的一种方法是,首先收集有关最近出售的房屋的信息,然后对房屋价格进行建模。 文件ex1data2.txt包含俄勒冈州波特兰市的房屋价格培训集。 第一列是房屋的大小(以平方英尺为单位),第二列是卧室的数量,第三列是房屋的价格。 我们将使用两种方法来解决此问题: 梯度下降和 正态方程 该实现是使用来完成的。 起点是ex1_multi.m脚本,其他功能在单独的*.m文件中实现。 特征归一化 我们将从加载并显示该数据集中的一些值开始。 data = load( ' ex1data2.txt ' ); X = data(:, 1 : 2 ); y = data(:, 3 ); m = length(y); fprintf( ' First 10 examples from the dataset: \n ' ); fprintf( ' x = [ %.0f %.0f ], y = %.0f

数字图像处理MATLAB学习笔记(一)

数字图像处理MATLAB学习笔记(一) 灰度转换与空间滤波 本节主要使用Matlab语言进行灰度转换与空间滤波的使用 并对相关数学原理进行总结 1. Intensity Transformer Function(灰度转换函数) 这里Matlab语言中提供有多个灰度转换函数可使用。 灰度转换函数:输出值取决于像素点的大小。通过与特定参数进行比较,确定像素点位置输出像素大小是多少。 1.1 Function: imadjust & imcomplement 1.1.1 imadjust Function

qq_17732621的博客 5651

2、TCGA数据处理(差异分析前处理)

注意:1、是R语言中用于读取文本文件并创建数据框的函数。它可以从文本文件中读取数据并将其存储为数据框的形式,每一列代表一个变量,每一行代表一个观察值。2、括号要成对,不能少了;3、file = 'TCGA-LIHC.htseq_counts.tsv'引号可以是单或双引号,建议单;4、逗号主要中英文,都是用英文模式才没错;5、.tsv文件类型必须要有,不能删除,否则读不进来;6、上面代码将TCGA-LIHC.htseq_counts.tsv文件读入并赋值给count1。

PLW_12的博客 2668

ESP32 BLE Mesh Provisioner实战:手把手教你用ESP-IDF配网智能灯泡(附常见错误排查)

本文提供了一份基于ESP-IDF的ESP32 BLE Mesh Provisioner实战指南,详细解析了配网器的核心角色与工作流程。文章手把手教你从工程搭建、代码初始化到核心回调解析,并重点针对常见的‘Model not bound to AppKey’等错误提供了深度排查思路与解决方案,帮助你构建一个稳定可靠的智能照明网关。

desk3的博客 513

36.利用解fgoalattain 有约束多元变量多目标规划问题求解(matlab程序)

如果p支配q,那么p的序值比q低,如果p和q互不支配,或者说,p和q互相非劣,那么p和q有相同的序值,序值为1的个体属于第一前端,序值为2的个体属于第二前端,依此推类。在多目标规划问题中,如果个体p至少有一个目标比个体q的好,而且个体p的所有目标都不比个体q的差,那么称个体p支配个体q(p dominate q),或者称个体q受个体p支配(q is dominated by p),也可以说,个体p非劣个体q(p is non- inferior to q)。(x)为待优化的目标函数;多目标规划问题的描述。

m0_57943157的博客 2178

SillyTavern角色卡制作全攻略:如何用AI还原你喜欢的虚构角色(附三叶完整角色卡JSON)

本文详细介绍了如何使用SillyTavern制作高质量AI角色卡,以《你的名字》中的宫水三叶为例,从角色特征提取、对话风格捕捉到JSON结构优化,全面解析AI角色扮演的创作技巧。通过具体的写作示例和完整角色卡JSON,帮助二次元爱好者和同人创作者实现虚构角色的精准还原与生动互动。

pandas7gardener的博客 2126

多变量线性回归(Linear Regression with Multiple Variables)

文章目录前言一、多维特征二、多变量梯度下降1.特征缩放2.学习率三、多项式回归1.特征选择2.正规方程3.正规方程不可逆性总结 前言 一、多维特征 在前面只探讨了单变量/特征的回归模型,然而,在实际生活中,多重因素构成一个含有多个变量的模型,模型中的特征为(????1, ????1, . . . , ????????) eg: 在实际生活中,有卧室的数量,楼层的数量…都会影响房价的 符号约定: n : 特征的数量 ????(????) : 第 ???? 个训练实例,是特征矩阵中的第????行,是

风间琉璃的博客 1万+

ZYNQ-Video out IP与Video Timing Controller IP协同工作模式解析

本文深入解析了ZYNQ平台上Video out IP与Video Timing Controller IP的协同工作模式,详细介绍了它们的架构、工作原理及配置要点。通过AXI4-Stream接口实现高效视频数据传输,并结合HDMI输出系统设计实践,为开发者提供了实用的调试技巧和性能优化建议。

redis7keeper的博客 637

Linux中Hadoop 集群搭建

零、下载Hadoop: http://archive.cloudera.com/cdh5/cdh/5/?tdsourcetag=s_pctim_aiomsg 一、集群规划: 搭建的 hadoop 集群由 3 台服务器组成,分别叫做 master,salve1 和 slave2。其中 master 作为主节点,slave1 和 slave2 作为从节点。 二、网络配置: 1.查看 3 个节点的主机名...

白墨的小白博客 3992

python多变量回归_python实现多变量线性回归(Linear Regression with Multiple Variables)

本文介绍如何使用python实现多变量线性回归,文章参考NG的视频和黄海广博士的笔记现在对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为( x1,x2,...,xn)表示为:=1,则公式转化为:、加载训练数据数据格式为:X1,X2,Y2104,3,3999001600,3,3299002400,3,3690001416,2,232000将数据逐行读取,用逗号切...

weixin_39940182的博客 2159

Open3D 可视化(1)——简单可视化【2026最新版】

简单可视化,博客长期更新,本文最新更新时间为:2026年5月10日。

点云侠的博客 5685

4、、多变量线性回归(Linear Regression with Multiple Variables)

4.1 多维特征 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,...xn) 增添更多特征后,我们引入一系列新的注释: n 代表特征的数量 x(i)代表第 i个训练实例,是特征矩阵中的第$i$行,是一个向量(vector)。 比方说,上图的 xj...

a201550的博客 697

Python爬虫实战:利用Requests-HTML与异步技术高效爬取B站视频信息及弹幕数据分析

B站的弹幕,远非简单的评论功能,它是一种独特的、实时互动的社交方式,是观众情感的集体宣泄和共鸣。无论是用于内容创作者优化视频结构,还是用于社会学、传播学的研究,亦或是简单的个人兴趣分析,都具备极高的价值。stop_words = {'的', '了', '是', '我', '你', '他', '她', '它', '在', '有', '不', '吗', '吧', '啊', '这', '那'}本文不仅是代码的堆砌,更注重原理的剖析、反爬策略的应对以及工程化的思考,旨在为读者提供一份紧跟技术前沿的实战指南。

2201_76125261的博客 390

YOLOv8_obb训练流程-原理解析[旋转目标检测理论篇]

本文主要介绍了YOLOv8旋转目标检测的流程,介绍了标签的解码、预测结果的解码,以及如何理解旋转角度等内容,还介绍旋转目标检测框的正样本选取及Loss计算。

ice 4731

[Machine Learning] 3 多变量线性回归(Linear Regression with Multiple Variables)

点Ta3 Linear Regression with Multiple Variables(多变量线性回归)3.1 Multiple Features(多维特征)3.2 Gradient Descent for Multiple Variables(多变量梯度下降)3.2.1 Gradient Descent in Practice I - Feature Scaling (特征缩放)3.2.2 Gradient Descent in Practice II - Learning Rate (学习率)3.

今天你DEBUG了吗 843

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

课时04 多变量线性回归(Linear Regression with Multiple Variables)

文章目录多维特征多变量梯度下降法梯度下降法实践1-特征缩放(feature scaling)梯度下降法实践2-学习率特征和多项式回归正规方程正规方程在矩阵不可逆情况下的解决方法梯度下降与正规方程的比较 多维特征 目前为止,我们探讨了单变量/特征的回归模型,现在增添更多特征后,我们引入一系列新的注释: n 代表特征量的数目 x(i)x^{(i)}x(i) 代表第 i 个训练样本的输入特征值,是特征矩阵中的第 i 行,是一个向量(vector)。 xj(i)x_j^{(i)}xj(i)​ 代表第 i 个训练

weixin_43212705的博客 193

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

机器学习之多变量线性回归(Linear Regression with multiple variables)

1. Multiple features(多维特征) 在机器学习之单变量线性回归(Linear Regression with One Variable)我们提到过的线性回归中,我们只有一个单一特征量(变量)——房屋面积x。我们希望使用这个特征量来预测房子的价格。我们的假设在下图中用蓝线划出: 不妨思考一下,如果我们不仅仅知道房屋面积(作为预测房屋价格的特征量(变量)),我们还知道卧室的...

diaolun4894的博客 481

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

吴恩达机器学习2-多变量线性回归(Linear Regression with Multiple Variables)

吴恩达机器学习2-多变量线性回归(Linear Regression with Multiple Variables) 多维特征 以房价模型为例,现在引入多个特征,例如房间数量,离主干道的距离等等构成一个含有多个变量的模型,模型中的特征为(????1, ????1, . . . , ????????)。 ???? 代表特征的数量 ????(????)代表第 ???? 个训练实例,是特征矩阵中的第????行,是一个向量(vector)。 比方说,上图...

weixin_44820355的博客 428

ml-2-1-多变量线性回归( Linear Regression with Multiple Variables)

多变量线性回归( Linear Regression with Multiple Variables) 多维特征 KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲x_j^{(i)} &= \t… hθ(x)=θ0+θ1x1+θ2x2+θ3x3+⋯+θnxn h_\theta (x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \thet

数据飓风 930

Standford 机器学习—第二讲 Linear Regression with multiple variables(多变量线性回归)

Linear Regression with multiple variables – 多变量线性回归 1. 假设函数 hθ(x)=θ0+θ1x1+θ2x2+θ3x3 h\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3 模型表示: 参数 含义 n 特征的个数 m 训练集的个数

爱折腾的90后 922
下一篇: 机器学习之特征向量维度与样本空间
罗古洞的女婿
博客等级 码龄10年 1117粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值