一种改进的KNN案例推理检索算法*
2021-12-23孙宝贵车文刚廖江福
孙宝贵,车文刚,廖江福
(1.昆明理工大学信息工程与自动化学院,云南 昆明650500;2.昆明理工大学云南省计算机技术应用重点实验室,云南 昆明650500)
1 引言
案例推理CBR(Case-Based Reasoning)是人工智能领域中一种基于现有知识的问题求解与学习方法,其通过重用或修改与目标案例相似性高的历史案例解决问题[1]。目前,对CBR的应用与研究非常广泛[2 -5],应用最为广泛的CBR模型是Aamodt等[6]提出的“4R循环”,包括以下4个环节:(1)案例检索(Retrieve):从案例库中检索与目标案例相似性最高的一个或多个相似源案例;(2)案例重用(Reuse):将检索得到的相似源案例作为建议解;(3)案例修正(Revise):对建议解进行评估。若评估合格,则不需要修正;若评估不合格,则对建议解进行相应的修正;(4)案例保存(Retain):将目标案例及其解决方案作为新案例存储到案例库中。
案例检索是案例推理的中心环节,因此,检索算法的性能直接影响案例推理检索结果的精度和执行时间[7]。目前常用的案例推理检索算法有:知识引导法(Knowledge-Guided)、归纳索引法(Induce Indexing)和K-最近邻KNN(K-Nearest Neighbor)算法等。其中,由于K-最近邻算法通过欧氏距离实现相似性计算,所以被广泛应用于案例推理。
但是,传统的KNN算法在检索案例时存在2处缺陷:(1)计算量大,效率低。传统KNN算法需要对案例库中所有的案例进行相似度计算。因此,对于海量案例库而言,计算量巨大,会降低效率。(2)近邻K值影响最终的输出结果。当K值较小时,容易发生过拟合;当K值较大时,会将噪声点划分为相似源案例,导致输出结果的误差增大,质量下降[8]。……
