MATLAB马氏距离判别法classify报错
作业题目: 银行的贷款部门需要判别每个客户的信用好坏(是否未履行还贷责任),以决定是否给予贷款。可以根据贷款申请人的年龄(X1)、受教育程度(X2)、现在所从事工作的年数(X3)、未变更住址的年数(X4)、收入(X5)、负债收入比例(X6)、信用卡债务(X7)、其它债务(X8)等来判断其信用情况。下表是从某银行的客户资料中抽取的部分数据,和某客户的如上情况资料为(53,1,9,18,50,11.20,2.02,3.58),根据样本资料分别用马氏距离判别法、线性判别法、二次判别法对其进行信用好坏的判别。
1 使用线性判别法
正常运行,没有毛病。
2 使用马氏距离判别法
报错,显示:每组的协方差矩阵训练必须正定。
从网上找了很久,没有找到有效的解决方案,然后就各种尝试
3 在classify里面的281-283的if注释掉,保存,运行。
运行成功,但是有警告,也不确定结果是否有问题。
最后
上数学建模课的一个作业,首次接触,不了解程序报错是因为马氏距离判别法对training有什么特定要求,而给定的数据问题恰好不满足,还是程序的问题导致运行失败。
教材上“鸢尾花的分类问题”这么写没有毛病,我把作业题变量改为四个也没有问题,特此记录,如果各位大神们有好的解决方案,请赐教。