机器学习实验二--Logistic Regression

Logistic Regression

机器学习实验(一)—Linear Regression
算法流程
实验二的实验报告和代码
这里写图片描述
这里写图片描述
这里写图片描述

PCA的算法流程: 关于PCA中数学原理可以点击这里PCA的数学原理

这里写图片描述
这里写图片描述
PCA和Logistic Regression的MATLAB代码

function test_log_regression()
% 读入数据
X = load('logistic_x.txt'); Y = load('logistic_y.txt');
% X = load('data\\fourclass.txt');
% Y = load('data\\fourclasslabel.txt');
tic;
 [coeff, score, latent, tsquared, explained] =  pca(X);%PCA过程
toc;
X =score(:,1);%需要降到几维就去前k维作为结果
X = [ones(size(X, 1), 1) X];
% 用牛顿法计算 theta
[theta, ll] = log_regression(X ,Y);
% 绘制图像
m=size(X,1);
figure; hold on;
% plot(X(Y < 0, 2), X(Y < 0, 3), 'rx', 'linewidth', 2);
% plot(X(Y > 0, 2), X(Y > 0, 3), 'go', 'linewidth', 2);
% x1 = min(X(:,2)):.1:max(X(:,2));
% x2 = -(theta(1) / theta(3)) - (theta(2) / theta(3)) * x1;
% %x2 = -(theta(1) / theta(3)) - (theta(2) / theta(3)) * x1;
% plot(x1,x2, 'linewidth', 2);
% xlabel('x1');   ylabel('x2');
%--------------------------------------------------------------------------
% plot(X(Y < 1.5, 2), X(Y < 1.5, 3), 'rx', 'linewidth', 2);
% plot(X(Y > 1.5, 2), X(Y > 1.5, 3), 'go', 'linewidth', 2);
% x1 = min(X(:,2)):.1:max(X(:,2));
% x2 = -(theta(1) / theta(3)) - (theta(2) / theta(3)) * x1+log(3)/theta(3);
% x2 = -(theta(1) / theta(3)) - (theta(2) / theta(3)) * x1;
% plot(x1,x2, 'linewidth', 2);
% xlabel('x1');   ylabel('x2');
%------------------------------------------------------
plot(X(Y < 0, 2), Y(Y<0,1), 'rx', 'linewidth', 2);
plot(X(Y > 0, 2), Y(Y>0,1),  'go', 'linewidth', 2);
x1 = min(X(:,2)):.01:max(X(:,2));
%x1 = -theta(1)/theta(2);
%y = -2:.001:2;
%disp(y);
x2 = theta(1)  +theta(2) * x1;
y = 2*(1./ (1 + exp(-x2)))-1;

plot(x1,y, 'linewidth', 2);
xlabel('x1');
ylabel('Y');
%
predict=X * theta;
acc=sum(((predict>0)*2-1)~=Y)/m;
disp(acc);
end

function [theta,ll] = log_regression(X,Y)
max_iters=40;
% rows of X are training samples
% rows of Y are corresponding -1/1 values
% newton raphson: theta = theta - inv(H)* grad;
% with H = hessian, grad = gradient
%Y = Y-1.5;

mm = size(X,1);
nn = size(X,2);
theta = zeros(nn,1);
ll = zeros(max_iters, 1);
for ii = 1:max_iters
    %%%%%%%%%%%%%%
    %% 课堂完成内容
    margins = Y .* (X * theta);
    ll(ii) = (1/mm) * sum(log(1 + exp(-margins)));
    probs = 1 ./ (1 + exp(margins));
    grad = -(1/mm) * (X' * (probs .* Y));
    H = (1/mm) * (X' * diag(probs .* (1 - probs)) * X);
    theta = theta - H \ grad;


    %%%%%%%%%%%%%%
end
a=X * theta;
predict = 1 ./ (1 + exp(-a));
acc=sum(((predict>1.5)*2-1)==Y)/mm;
disp(theta);
end

其中对于PCA的MATLAB操作很简单:

 [coeff, score, latent, tsquared, explained] =  pca(X);%PCA过程
X =score(:,1);%需要降到几维就去前k维作为结果
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
目 录 ............................................................... I 实验 1 监督学习中的分类算法应用 .................................. - 1 - 实验目标 .................................................. - 1 - 实验软、硬件环境 .......................................... - 1 - 实验任务.................................................. - 2 - 实验 1.1 Python 开发环境搭建 ...................................... - 2 - 实验目标 .................................................. - 2 - 实验任务 .................................................. - 2 - (1)Python 安装与配置 ............................. - 2 - (2)Pycharm 安装和配置 ............................ - 4 - (3)Python 中安装第三方库 ........................ - 11 - 实验 1.2 K-近邻算法实现 ......................................... - 14 - 实验目标 ................................................. - 14 - 实验任务 ................................................. - 14 - (1)电影类别分类 ................................. - 14 - (2)约会网站配对效果判定 ......................... - 14 - 实验 1.3 决策树算法实现 ......................................... - 16 - 实验目标 ................................................. - 16 - 实验任务 ................................................. - 16 - (1)银行房屋贷款申请 ............................. - 16 - (2)患者佩戴隐形眼镜类型预测 ..................... - 17 - 实验 1.4 朴素贝叶斯算法实现 ..................................... - 19 - 实验目标 ................................................. - 19 - 实验任务 ................................................. - 19 - (1)文本分类 1 ................................... - 19 - (2)文本分类 2 ................................... - 19 - 实验 1.5 Logistic 回归算法实现 ................................... - 21 - 实验目标 ................................................. - 21 - 目 目 录 II 实验任务 ................................................. - 21 - (1)构建 Logistic 回归分类模型 .................... - 21 - (2)预测患疝气病的马的存活问题 ................... - 21 - 实验 1.6 SVM 算法实现 ............................................ - 23 - 实验目标 ................................................. - 23 - 实验任务 ................................................. - 23 - (1)构建 SVM 分类模型 ............................. - 23 - 实验 1.7 监督学习中的分类算法综合应用 ........................... - 24 - 实验目标 ................................................. - 24 - 实验任务 ................................................. - 24 - (1)手写识别系统 ................................. - 24 - (2)电子邮件垃圾过滤 ............................. - 25 - 实验 2 监督学习中的回归算法应用 ................................. - 26 - 实验目标 ................................................. - 26 - 实验软、硬件环境 ......................................... - 26 - 实验任务 ................................................. - 26 - (1)鲍鱼年龄预测 ................................. - 26 - (2)乐高玩具价格预测 ............................. - 27 - 实验 3 无监督学习中的聚类算法应用 ............................... - 29 - 实验目标 ................................................. - 29 - 实验软、硬件环境 ......................................... - 29 - 实验任务 ................................................. - 29 - (1)使用 K 均值算法对数据进行聚类分析 ............. - 29 - (2)对地图上的点进行聚类 ......................... - 30 -
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值