📄 imcome.m
字号:
[rows,cols]=size(client);
%类标号属性为yes 和 no.
%首先计算出给定样本所需的期望信息。
J=5;K=2;
no_num=0;
income_no_num1=0;income_yes_num1=0;
income_no_num2=0;income_yes_num2=0;
income_no_num3=0;income_yes_num3=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),'<=30') &strcmp(client(I,J),'no')
income_no_num1=income_no_num1+1;
end
if strcmp(client(I,K),'<=30') &strcmp(client(I,J),'yes')
income_yes_num1=income_yes_num1+1;
end
end
%disp(sprintf('年龄小于三十岁而不买电脑的人数:%d',income_no_num1));
%disp(sprintf('年龄小于三十岁而买电脑的人数:%d',income_yes_num1));
expect_1=expect([income_no_num1 income_yes_num1]);
for I=1:rows
if strcmp(client(I,K),'>31and<=40') &strcmp(client(I,J),'no')
income_no_num2=income_no_num2+1;
end
if strcmp(client(I,K),'>31and<=40') &strcmp(client(I,J),'yes')
income_yes_num2=income_yes_num2+1;
end
end
%disp(sprintf('年龄大于三十岁而小于四十岁但不买电脑的人数:%d',income_no_num2));
%disp(sprintf('年龄大于三十岁而小于四十岁但买电脑的人数:%d',income_yes_num2));
expect_2=expect([income_no_num2 income_yes_num2]);
for I=1:rows
if strcmp(client(I,K),'>40') &strcmp(client(I,J),'no')
income_no_num3=income_no_num3+1;
end
if strcmp(client(I,K),'>40') &strcmp(client(I,J),'yes')
income_yes_num3=income_yes_num3+1;
end
end
%disp(sprintf('年龄大于四十岁但不买电脑的人数:%d',income_no_num3));
%disp(sprintf('年龄大于四十岁但买电脑的人数:%d',income_yes_num3));
expect_3=expect([income_no_num3 income_yes_num3]);
%按income划分,对样本分类所需的期望信息为:
E_income=(income_no_num1+income_yes_num1)/rows*expect_1+(income_no_num2+income_yes_num2)/rows*expect_2+(income_no_num3+income_yes_num3)/rows*expect_3;
%disp(sprintf('按income划分的期望信息:%d',E_income));
G_income=expect_sum-E_income;
disp(sprintf('按income划分的信息增益是:%d',G_income));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -