码迷,mamicode.com
首页 > 其他好文 > 详细

(一)梯度下降求解线性回归

时间:2019-07-20 21:17:53      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:img   str   basic   技术   预测   cos   com   一个   The   

学习才能消去恐惧叭

Part 1: Basic Function

% 完成 warmUpExercise.m
fprintf(Running warmUpExercise ... \n);
fprintf(5x5 Identity Matrix: \n);
warmUpExercise()

 warmUpExercise返回一个n为5的单位矩阵

function A = warmUpExercise()

A = eye(5);

 

Part 2: Plotting

data = load(ex1data1.txt);    %读入数据
X = data(:, 1); y = data(:, 2);  %X为数据的第一列,Y为第二列
m = length(y); % 训练集数据条数

plotData(X, y);  

marker是图上画上点的地方表上符号,不如点,方框,圆框,十字,星号,等等
后面的size就是其大小了,不知道值的话,可以画完图点编辑框上面的箭头,然后双击画的图,下面出现属性框,marker项后面的数字下拉菜单就是size,选择合适的大小,今后就用这个值就行。

function plotData(x, y)

figure(1); % open a new figure window
plot(x,y,rx,MarkerSize,10);

xlabel(Population of City in 10,000s);
ylabel(Profit in $10,000s);

数据分布图如下:

  技术图片

 

Part 3: Cost and Gradient descent

1、梯度下降前的数据预处理与设置

X = [ones(m, 1), data(:,1)]; % 添加x0列,全置为1
theta = zeros(2, 1); % 初始化theta

iterations = 1500;  %迭代次数
alpha = 0.01;     %学习率alpha

2、计算损失函数

线性回归的损失函数为: 

技术图片

预测值hypothesis hθ(x)为:

技术图片

function J = computeCost(X, Y, theta)
m = length(Y); 

J = (1/(2*m))*sum((X*theta-Y).^2); 

  3、执行梯度下降 

技术图片

 

(一)梯度下降求解线性回归

标签:img   str   basic   技术   预测   cos   com   一个   The   

原文地址:https://www.cnblogs.com/Xycdada/p/11219193.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!