机器学习02_逻辑回归作业

机器学习逻辑回归_02


在本次逻辑回归作业中,我们将建立逻辑回归模型,通过学生的两门成绩,来预测该考生能都被大学录取。


I.数据可视化

将作业下载好后,打开octave,cd到machine-learning-ex2/ex2目录中,加载‘ex2data2.txt’(load),编写plotData.m函数

function plotData(X, y)

figure; 
hold on;

% Find Indices of Positive and Negative Examples
pos = find(y==1); %找到y=1的行坐标
neg = find(y == 0);%找到y=2的行坐标
% Plot Examples
%画出通过的点  用 ‘+’ 表示
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, 'MarkerSize', 7);
%画出未通过的点 用‘o’ 表示
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'r', 'MarkerSize',7);

hold off;
end

1342687-20190124195633011-1087822002.png


II.编写逻辑回归假设函数

逻辑回归与线性回归的假设不同,逻辑回归的假设函数为
1342687-20190124201821043-671971764.png
1342687-20190124201849803-1858650527.png

其中编写h(x)函数即sigmoid.m函数

function g = sigmoid(z)
%SIGMOID Compute sigmoid function
%   g = SIGMOID(z) computes the sigmoid of z.
% You need to return the following variables correctly 
g = zeros(size(z));

% Instructions: Compute the sigmoid of each value of z (z can be a matrix,
%               vector or scalar).

g = 1./(1+ exp(-z));

end

由上图可以看出当z为0是,g(z) = 1/2 = 0.5 检测函数如下图

1342687-20190124195812992-1712774810.png


III.编写cost & grad函数

根据下图公式,在costFunction.m中写出返回的J & grad
1342687-20190124202659150-689759664.png
1342687-20190124202716789-1878733354.png

function [J, grad] = costFunction(theta, X, y)
m = length(y); 

J = 0;
grad = zeros(size(theta));
%sigmoid位阈值函数
J= -1 * sum( y .* log( sigmoid(X*theta) ) + (1 - y ) .* log( (1 - sigmoid(X*theta)) ) ) / m;

grad = ( X' * (sigmoid(X*theta) - y ) )/ m;               

end

IV.拟合函数的实现

逻辑回归与线性回归不同,线性回归在寻找最优或者说最小J(花费时),由于J函数是完全凸函数,所以可以利用梯度下降算法找到最优解。而逻辑回归所J函数则不然(如下图),无法利用传统的梯度下降算法找到最优解,所以我们要用到Octave中系统的fminunc自定义梯度下降的迭代次数来找到最优的解。

1342687-20190124205259532-378167589.png

options = optimset('GradObj', 'on', 'MaxIter', 400);
[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
plotDecisionBoundary(theta, X, y);


fminunc的参数说明:

1.@(t)(costFunction(t,X,y)) 是Octave中‘@’的句柄知识,大致可以理解为C语言中的指针。
2.initial_theta 设定好的初始值
3.options是指使用自定义的梯度下降公式‘GradObj’,以及400次的迭代次数(MaxIter)。

1342687-20190124195844152-808533490.png

最后预测学生两门成绩分别为45,85是可以够录取。
Sorry =.=
忘记截屏啦。。。。。

机器学习第二次作业逻辑回归的附加作业会在下一次的博客中给出,今天出了点小问题。

转载于:https://www.cnblogs.com/yichaoShare/p/10316474.html

机器学习逻辑回归是一种常用的分类算法,它通过建立一个逻辑回归模型来对数据进行分类。在matlab中,可以使用吴恩达在Coursera上提供的机器学习编程练习ex2来实现逻辑回归。[1] 逻辑回归的实际意义是通过给定的输入数据,预测输出的分类结果。比如,在一个芯片测试数据集中,我们希望根据芯片的测试数据来预测芯片是否合格。为了实现这个目标,我们可以使用逻辑回归模型来建立一个分类器。 在实现逻辑回归模型时,我们需要对损失函数进行正则化处理,以防止过拟合。在matlab中,可以使用正则化的逻辑回归来完成这一步骤。 在预测新的样本数据时,我们可以使用sigmoid函数将预测的概率值转化为0或1的分类结果。具体的matlab代码可以在predict.m中找到。 综上所述,机器学习逻辑回归在matlab中可以通过使用吴恩达在Coursera上提供的机器学习编程练习ex2来实现,同时可以通过正则化处理来防止过拟合,并使用sigmoid函数进行预测。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【机器学习】 吴恩达机器学习作业 ex2逻辑回归 Matlab实现](https://blog.csdn.net/m0_52427832/article/details/125358227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值