梯度下降求解线性回归
Posted Xycdada
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了梯度下降求解线性回归相关的知识,希望对你有一定的参考价值。
学习才能消去恐惧叭
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、执行梯度下降
以上是关于梯度下降求解线性回归的主要内容,如果未能解决你的问题,请参考以下文章
flink 批量梯度下降算法线性回归参数求解(Linear Regression with BGD(batch gradient descent) )