📄 student.m
字号:
[rows,cols]=size(client);
%类标号属性为yes 和 no.
%首先计算出给定样本所需的期望信息。
J=5;K=3;
no_num=0;
student_no_num1=0;student_yes_num1=0;
student_no_num2=0;student_yes_num2=0;
for I=1:rows
if strcmp(client(I,J),'no')
no_num=no_num+1;
end
end
yes_num=rows-no_num;
%disp(sprintf('no类的数量为:%d',no_num));
%disp(sprintf('yes类的数量为:%d',yes_num));
expect_sum=expect([yes_num no_num]);
for I=1:rows
if strcmp(client(I,K),'no') &strcmp(client(I,J),'no')
student_no_num1=student_no_num1+1;
end
if strcmp(client(I,K),'no') &strcmp(client(I,J),'yes')
student_yes_num1=student_yes_num1+1;
end
end
%disp(sprintf('年龄小于三十岁而不买电脑的人数:%d',student_no_num1));
%disp(sprintf('年龄小于三十岁而买电脑的人数:%d',student_yes_num1));
expect_1=expect([student_no_num1 student_yes_num1]);
for I=1:rows
if strcmp(client(I,K),'yes') &strcmp(client(I,J),'no')
student_no_num2=student_no_num2+1;
end
if strcmp(client(I,K),'yes') &strcmp(client(I,J),'yes')
student_yes_num2=student_yes_num2+1;
end
end
%disp(sprintf('年龄大于三十岁而小于四十岁但不买电脑的人数:%d',student_no_num2));
%disp(sprintf('年龄大于三十岁而小于四十岁但买电脑的人数:%d',student_yes_num2));
expect_2=expect([student_no_num2 student_yes_num2]);
%按student划分,对样本分类所需的期望信息为:
E_student=(student_no_num1+student_yes_num1)/rows*expect_1+(student_no_num2+student_yes_num2)/rows*expect_2;
%disp(sprintf('按student划分的期望信息:%d',E_student));
G_student=expect_sum-E_student;
disp(sprintf('按student划分的信息增益是:%d',G_student));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -