gpt4 book ai didi

machine-learning - 线性回归 - 实现特征缩放

转载 作者:行者123 更新时间:2023-11-30 09:04:18 25 4
gpt4 key购买 nike

我试图在 Octave 5.1.0 中对 GRE 分数与录取概率相关的数据集实现线性回归。数据集是这样的,

337 0.92
324 0.76
316 0.72
322 0.8
.
.
.

我的主 Program.m 文件看起来像,

     % read the data

data = load('Admission_Predict.txt');

% initiate variables
x = data(:,1);
y = data(:,2);
m = length(y);
theta = zeros(2,1);
alpha = 0.01;
iters = 1500;
J_hist = zeros(iters,1);

% plot data
subplot(1,2,1);
plot(x,y,'rx','MarkerSize', 10);
title('training data');

% compute cost function
x = [ones(m,1), (data(:,1) ./ 300)]; % feature scaling
J = computeCost(x,y,theta);

% run gradient descent
[theta, J_hist] = gradientDescent(x,y,theta,alpha,iters);


hold on;
subplot(1,2,1);
plot((x(:,2) .* 300), (x*theta),'-');
xlabel('GRE score');
ylabel('Probability');
hold off;

subplot (1,2,2);
plot(1:iters, J_hist, '-b');
xlabel('no: of iteration');
ylabel('Cost function');

computeCost.m 看起来像,

 function J = computeCost(x,y,theta)
m = length(y);
h = x * theta;
J = (1/(2*m))*sum((h-y) .^ 2);
endfunction

gradientDescent.m 看起来像,

    function [theta, J_hist] = gradientDescent(x,y,theta,alpha,iters)
m = length(y);
J_hist = zeros(iters,1);

for i=1:iters

diff = (x*theta - y);
theta = theta - (alpha * (1/(m))) * (x' * diff);
J_hist(i) = computeCost(x,y,theta);

endfor

endfunction

绘制的图表如下所示,

Graphs

您可以看到,尽管我的成本函数似乎已最小化,但感觉不太对劲。

有人可以告诉我这是否正确吗?如果不是,我做错了什么?

最佳答案

检查您的实现是否正确的最简单方法是与经过验证的线性回归实现进行比较。我建议使用另一种实现方法,如建议的 here ,然后比较您的结果。如果拟合匹配,那么这是对您的数据的最佳线性拟合,如果它们不匹配,那么您的实现中可能存在问题。

关于machine-learning - 线性回归 - 实现特征缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56364169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com