逻辑回归实现二分类在SPSS中操作十分简单,也可以使用matlab代码实现。
一、代码实现
核心代码只有两行。结果与SPSS计算出来的一样。
会SPSS的同学可以动手验证一下
clear,clc
%注释1:数据准备
load matlab.mat %包含特征数据矩阵X,需要预测的数据矩阵X1
train_x = X(:,1:4); %自变量特征数据,分类已知
train_y = X(:,5); %因变量,一列,只有0和1
pre_x = X1(:,1:4); %自变量特征数据,分类未知,用于预测
%注释2:核心代码
a =glmfit(train_x,train_y,'binomial', 'link', 'logit'); %得到系数矩阵
logit_fit = glmval(a,pre_x, 'logit'); %得出概率,大于0.5分到逻辑1,小于0.5分到逻辑0
%注释3:结果整理
pre_y = zeros(size(logit_fit,1),1); %分类结果
for i=1:size(logit_fit,1)
if(logit_fit(i,1)<=0.5)
pre_y(i,1)=0;
else
pre_y(i,1)=1;
end
end
二、原始数据
特征数据矩阵X
x1 x2 x3 x4 y
192.00 8.40 7.30 0.55 1.00
180.00 8.00 6.80 0.59 1.00
176.00 7.40 7.20 0.60 1.00
178.00 7.10 7.80 0.92 1.00
172.00 7.40 7.00 0.89 1.00
166.00 6.90 7.30 0.93 1.00
172.00 7.10 7.60 0.92 1.00
154.00 7.00 7.10 0.88 1.00
164.00 7.30 7.70 0.70 1.00
152.00 7.60 7.30 0.69 1.00
156.00 7.70 7.10 0.69 1.00
156.00 7.60 7.50 0.67 1.00
168.00 7.50 7.60 0.73 1.00
162.00 7.50 7.10 0.83 1.00
162.00 7.40 7.20 0.85 1.00
160.00 7.50 7.50 0.86 1.00
156.00 7.40 7.40 0.84 1.00
140.00 7.30 7.10 0.87 1.00
170.00 7.60 7.90 0.88 1.00
342.00 9.00 9.40 0.75 0.00
356.00 9.20 9.20 0.75 0.00
362.00 9.60 9.20 0.74 0.00
204.00 7.50 9.20 0.77 0.00
140.00 6.70 7.10 0.72 0.00
160.00 7.00 7.40 0.81 0.00
158.00 7.10 7.50 0.79 0.00
210.00 7.80 8.00 0.82 0.00
164.00 7.20 7.00 0.80 0.00
190.00 7.50 8.10 0.74 0.00
142.00 7.60 7.80 0.75 0.00
150.00 7.10 7.90 0.75 0.00
160.00 7.10 7.60 0.76 0.00
154.00 7.30 7.30 0.79 0.00
158.00 7.20 7.80 0.77 0.00
144.00 6.80 7.40 0.75 0.00
154.00 7.10 7.50 0.78 0.00
180.00 7.60 8.20 0.79 0.00
154.00 7.20 7.20 0.82 0.00
需要预测的数据矩阵X1
x1 x2 x3 x4
158.00 7.10 7.60 0.72
190.00 7.50 7.90 0.77
189.00 7.60 7.70 0.77
160.00 7.90 6.90 0.65