机器学习-Logistic回归

来源:互联网 发布:php订单管理系统 编辑:程序博客网 时间:2024/06/04 19:50

原问题:

You are offered a Yale and ORL dataset(Facial datasets). In the Yale dataset, there are 15 persons, each person haseleven images. In the ORL dataset, there are 40 persons, each person has tenimages.

You are asked to write a program in MATLAB, to uselogistic regression to do a binary classification task and test your method. 

下面是我的报告:



源代码:

clear;clc;load('Yale_32x32.mat');people1 = [fea(1:11,:),gnd(1:11,1)];[people1Row,people1Col] = size(people1);people2 = [fea(12:22,:),gnd(12:22,1)];[people2Row,people2Col] = size(people2);people1(:,1025) = 0;people2(:,1025) = 1;trainNum = 6;trainPeople1 = people1(1:trainNum,:);samplePeople1 = people1(trainNum + 1: people1Row,:);trainPeople2 = people2(1 : trainNum,:);samplePeople2 = people2(trainNum + 1: people2Row,:);%[train1Row,train1Col] = size(trainPeople1);%[sample1Row,sample1Col] = size(samplePeople1);%[train2Row,train2Col] = size(trainPeople2);%[sample2Row,sample2Col] = size(samplePeople2);trainSet = zeros(trainNum * 2,1025);for a = 1: trainNum    trainSet(2 * a - 1 : 2 * a,:) = [trainPeople1(a,:);trainPeople2(a,:)];end[trainRow,trainCol] = size(trainSet);sampleSet = [samplePeople1;samplePeople2];[sampleRow,sampleCol] = size(sampleSet);%sortrows(trainSet,77);%trainSet(:,1025)theta = ones(1024,1);alaph = 1;for i = 1:trainRow        tarin_y = trainSet(i,trainCol);    train_x = trainSet(i,1:trainCol - 1);    h = 1/(1 + exp(-(train_x * theta)));    theta = theta + alaph *(tarin_y - h) * train_x';    endcnt = 0;b = zeros(1,sampleRow);for i = 1 : sampleRow    sample_x = sampleSet(i,1: sampleCol - 1);    sample_y = sampleSet(i,trainCol);    h = 1/(1 + exp(-(sample_x * theta)));    b(i) = h;    if(h == sample_y)       cnt = cnt + 1;     end    endbcnt


0 0
原创粉丝点击