?? demglm2.m
字號:
%DEMGLM2 Demonstrate simple classification using a generalized linear model.%% Description% The problem consists of a two dimensional input matrix DATA and a% vector of classifications T. The data is generated from three% Gaussian clusters, and a generalized linear model with softmax output% is trained using iterative reweighted least squares. A plot of the% data together with regions shaded by the classification given by the% network is generated.%% See also% DEMGLM1, GLM, GLMTRAIN%% Copyright (c) Ian T Nabney (1996-2001)% Generate data from three classes in 2dinput_dim = 2;% Fix seeds for reproducible resultsrandn('state', 42);rand('state', 42);ndata = 100;% Generate mixture of three Gaussians in two dimensional spacemix = gmm(2, 3, 'spherical');mix.priors = [0.4 0.3 0.3]; % Cluster priorsmix.centres = [2, 2; 0.0, 0.0; 1, -1]; % Cluster centresmix.covars = [0.5 1.0 0.6];[data, label] = gmmsamp(mix, ndata);id = eye(3);targets = id(label,:);% Plot the resultclcdisp('This demonstration illustrates the use of a generalized linear model')disp('to classify data from three classes in a two-dimensional space. We')disp('begin by generating and plotting the data.')disp(' ')disp('Press any key to continue.')pausefh1 = figure;plot(data(label==1,1), data(label==1,2), 'bo');hold onaxis([-4 5 -4 5]);set(gca, 'Box', 'on')plot(data(label==2,1), data(label==2,2), 'rx')plot(data(label==3, 1), data(label==3, 2), 'go')title('Data')clcdisp('Now we fit a model consisting of a softmax function of')disp('a linear combination of the input variables.')disp(' ')disp('The model is trained using the IRLS algorithm for up to 10 iterations')disp(' ')disp('Press any key to continue.')pausenet = glm(input_dim, size(targets, 2), 'softmax');options = foptions;options(1) = 1;options(14) = 10;net = glmtrain(net, options, data, targets);disp(' ')disp('We now plot the decision regions given by this model.')disp(' ')disp('Press any key to continue.')pausex = -4.0:0.2:5.0;y = -4.0:0.2:5.0;[X, Y] = meshgrid(x,y);X = X(:);Y = Y(:);grid = [X Y];Z = glmfwd(net, grid);[foo , class] = max(Z');class = class';colors = ['b.'; 'r.'; 'g.'];for i = 1:3 thisX = X(class == i); thisY = Y(class == i); h = plot(thisX, thisY, colors(i,:)); set(h, 'MarkerSize', 8);endtitle('Plot of Decision regions')hold offclcdisp('Note that the boundaries of decision regions are straight lines.')disp(' ')disp('Press any key to end.')pauseclose(fh1);clear all;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -