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