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