收藏 分享(赏)

银行优质客户判定专家系统的构建.ppt

上传人:tkhy51908 文档编号:8534917 上传时间:2019-07-02 格式:PPT 页数:17 大小:234.50KB
下载 相关 举报
银行优质客户判定专家系统的构建.ppt_第1页
第1页 / 共17页
银行优质客户判定专家系统的构建.ppt_第2页
第2页 / 共17页
银行优质客户判定专家系统的构建.ppt_第3页
第3页 / 共17页
银行优质客户判定专家系统的构建.ppt_第4页
第4页 / 共17页
银行优质客户判定专家系统的构建.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、银行优质客户判定专家系统,银行优质客户判定专家系统,一、规则预处理 二、推理机的构建,1.1 规则列举,1、收入高、无信用卡违约、无购房记录,则优质贷款2、工作稳定、刚性需求,则优质贷款3、升值空间大,优质贷款4、教师职业,工作稳定5、公务员职业,工作稳定6、医生职业,工作稳定7、去除其他支出后,可支配收入为月供的两倍以上,收入高8、购买用于小孩子上学,刚性需求9、购房结婚,刚性需求10、价格相对较低、升值空间大11、学区房,升值空间大,1.2 规则分析,对规则进行分析后可构建出相应的树。树根只可能为最终结论。而树叶只可能为外界收集到的事实。 事实需要由外界收集。,二、推理机的构建,构建一个类

2、ReasonMachine并提供成员:,/事实库,用于存放界面上收集到的事实 private List facts = new List();/原始的规则,如规则举例中”教师职业,工作稳定”这一类型的字符串,”,”后的最后一个元素为结论 private List OriginalRules = new List();,/处理后的规则,每条规则对应一个数组,数组的最后一个元素为结论 private List rules = new List();,/单词表,用于存放规则中出现过的所有前提与结论.单词表将用于验证输入事实的合法性. private List dictionary = new Lis

3、t();,相关方法:,/初始化原始规则库,此外直接把规则写在代码中,现实中应该从数据库或文件上读取规则 private void InitOriginalRules() OriginalRules.Add(“收入高,无信用卡违约,无购房记录,优质贷款“);OriginalRules.Add(“工作稳定,刚性需求,优质贷款“);OriginalRules.Add(“升值空间大,优质贷款“);OriginalRules.Add(“教师,工作稳定“);OriginalRules.Add(“公务员,工作稳定“);OriginalRules.Add(“医生,工作稳定“);OriginalRules.Ad

4、d(“购房用于小孩子上学,刚性需求“);OriginalRules.Add(“购房结婚,刚性需求“);OriginalRules.Add(“价格相对较低,升值空间大“);OriginalRules.Add(“学区房,升值空间大“);,/ / 根据原始规则初始化规则库 / private void InitRules() foreach (string temp in OriginalRules)string str = temp.Split(,);rules.Add(str); ,/ / 初始化单词表(字典),该字典记录所有规则的前提与结论,并去除重复值 / 字典用于检查外界输入的事实是否合法

5、。比如职业一档如果输入了“职员” / 而职员并没在任何一条规则中出现,则该职业不能用于推理,不合法 / 若出现上述情况,则需要增加规则或去除该事实 / private void InitDictionary() foreach (string str in rules)foreach (string s in str)if (!dictionary.Contains(s)dictionary.Add(s);,/当单词表初始化完后就可以从界面上获取事实,事实输入时需要验证是否合法 /以下是验证事实的合法性 private bool CheckFact(string fact)if (dictio

6、nary.Contains(fact)return true;elsereturn false;,/以下用于向事实库增加事实 public void AddFact(string fact) /如果事实合法bool b = CheckFact(fact);if (b = true)/则写入facts.Add(fact);elsereturn;,/下面的函数用于找到所有结论为conclusion的规则 /该函数为推理提供支持. private List GetAllFitRules(string conclusion) List list = new List();foreach (string

7、 str in rules)if (strstr.Length - 1 = conclusion)list.Add(str);return list; ,推理机的构建,在本例中,推理的目的很明确,就是判断某个贷款是否是优质贷款.因此采用逆向推理的方式,逆向推理过程如下: 1、输入结论X 2、查找事实库,是否已经有事实X,如果有,结束推理并给出结果 3、如果事实库中没有找相关事实,则找到所有结论为X的规则list 4、如果可用规则的数量为0,则没找到可用规则,结束推理。 5、如果有找到一定数量的规则,对于每一条规则r,判断其每个前提是否成立。如果成立,则结束推理并给出结论。 6、如果不成立,则查

8、找下一条规则。直到所有规则判断完。 7、如果list中的所有规则都判断完还没得出结论,则说明无法推理得到优质贷款。,关键细节,某个规则的前提也可以看成是另一规则的结论,例如,工作稳定、刚性需求,则优质贷款 教师职业,工作稳定,设推理方法为 bool CallMachine(string conclusion),则可以用递归方式构建推理机,public bool CallMachine(string conclusion) /1 首先从事实库中找是否有该事实/1.1 验证conclusion是否合地if (CheckFact(conclusion) = false) return false;/

9、1.2 查找事实库if (facts.Contains(conclusion) return true;/2 推理/2.1 先到结论为conclusion的所有规则List list = GetAllFitRules(conclusion);if (list.Count = 0) return false;/2.2 判断每个规则的前提是否满足,如果满足,则得到结论,否则再判断下一条规则foreach (string temp in list)bool b = true; for (int i = 0; i = temp.Length - 2; i+) /注意,此处不判断最后一个,因为最后一个为结论b = CallMachine(tempi);if (b = false) break;if (b = true)/得到结论,要写入事实库AddFact(conclusion);return true;return false; ,其他内容,规则库中有以下规则:去除其他支出后可支配收入为月供的两倍以上,收入高。然而该规则的前提不易于输入,在处理中可以不对该规则的前提进行处理,直接从事实获取机构得到收入高的结论,以免增加初学者推理的难度。,缺点:,不支持不精确推理 没有对规则进行提炼,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报