【机器学习】线性分类LogisticRegression

一、预测函数HypothesisFunction
function g = sigmoid(z)
%SIGMOID Compute sigmoid functoon
%J = SIGMOID(z) computes the sigmoid of z.

g = 1.0 ./ (1.0 + exp(-z));
end

function H = computeHypothesis(X, theta)

H = sigmoid(X*theta);

end
二、损失函数CostFunction
function J = computeCost(theta, X, y)
%COMPUTECOST Compute cost for logistic regression
%J = COMPUTECOST(theta, X, y) computes the cost of using theta as the parameter for logistic regression.

% Initialize some useful values
m = length(y);   % number of training examples

h = sigmoid(X * theta);
J = - (y' * log(h) + (1 - y)' * log(1 - h)) / m;

end
三、最优化参数训练 1.梯度下降GradientDescend
function [theta, J_history] = gradientDescent(X, y, theta, alpha, num_iters)
%GRADIENTDESCENT Performs gradient descent to learn theta
%theta = GRADIENTDESCENT(x, y, theta, alpha, num_iters) updates theta by taking num_iters gradient steps with learning rate alpha

% Initialize some useful values
m = length(y);                      % number of training examples

h = sigmoid(X * theta);
J_history = zeros(num_iters, 1);

for iter = 1:num_iters

    theta = theta - alpha * X' * (h - y) / m;

    % Save the cost J in every iteration    
    J_history(iter) = computeCost(X, y, theta);

end

end
四、预测结果Predict
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值