本发明涉及聚类算法领域,尤其涉及一种高维特征空间中基于聚类算法的就诊人群分组方法。
背景技术:
聚类算法可以说是无监督学习中最常用的一类算法,它可以在无事先标记的情况下给数据集分类,然后通过各类中特征变量的统计总结,给出各类直接区别的标识。虽然聚类算法已经发展了很多年,在学术界已经提出了非常多的具体算法,但在实际使用中,考虑到算法的稳定性、易用性、速度和计算资源消耗等问题,用的最多的还是kmeans算法。这个算法的一大弊端就是需要提前指定聚类数目k。实际使用中往往需要使用者根据业务经验,或者通过可视化方法确定。其中可视化方法在特征维度超过3时就基本失效了,虽然某些情况下可以通过最先进的降维方法把数据集降维至2-3维进行可视化,但这个过程中往往会造成信息的丢失,比如原来高维中可明显区分出来的两个类有可能在降维后变得不可分。而业务经验判断的局限性则更大,当业务场景复杂后,难以有足够有效的业务经验,并且原有业务经验进行的判断也有可能致使当前数据中的某些细分类别丢失。目前有一种方法可以帮助进行k的选择,即elbow方法。elbow方法是预先设定一个损失函数,一般选择在给定k值聚类后的各类内部距离之和为损失函数,elbow方法先画出一条损失函数关于k的变化曲线,然后人为地找该曲线上的“突变点”,认为在该k值前后,损失函数发生明显变化,所以取该k使用。
然而,elbow方法存在明显的问题:首先,损失函数必然是随着k的增加而下降的,在没有“基准线”的情况下,如果“突变点”较为多且复杂,还是会对k值的选取造成障碍;此外,对于本身在特征空间中分布比较密集的数据而言,损失函数曲线不一定会有明显的“突变点”,也会使得该曲线的参考价值消失。因此需要考虑一种别的方法对k值的选取给出指导,这样在实际使用中,才会对数据集做出较优的划分。
在实际医疗数据的就诊人群划分时,往往会通过人群的就诊历史根据业务经验总结出很多的统计特征来实现对人群的全方位描述,因此会形成很高维的特征空间,而且一般来说,在该特征空间中数据点分布相对密集,因此需要比elbow方法更有效的方法来进行k值选择。
技术实现要素:
本发明的目的在于提供一种高维特征空间中基于聚类算法的就诊人群分组方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种高维特征空间中基于聚类算法的就诊人群分组方法,所述方法包括以下步骤,
s1、以患者为汇总维度进行聚类前的特征提取,提取的特征包括疾病种类、限额使用率、个人自费占比、有无住院以及就诊间隔;
s2、计算各个特征之间的相关性,依次判断各个相关性是否大于设定阈值,若是,则剔除该相关性对应的特征,并执行步骤s3;若否,则直接执行步骤s3;
s3、获取聚类算法中的最优选择聚类数;
s4、将最优选择聚类数输入聚类算法中,对步骤s2中的特征进行聚类,并对聚类结果分别进行业务解释。
优选的,步骤s4具体包括如下内容,
s31、从2-80中依次选择一个数值作为聚类数,对各个聚类数进行kmeans聚类以获取各个聚类数的类内和以及类外和;
s32、针对类内和以及类外和分别设定第一基准值和第二基准值,第一基准值和第二基准值分别满足以下公式,
ib=a*1b*k+b
ob=c*k+d
其中,k为聚类数,i为聚类数k的类内和,o为聚类数k的类外和,ib为第一基准值,ob为第二基准值,a、b、c、d是待定回归系数,lb是以2为底的对数函数;
s33、对步骤s32中的两个公式做线性回归,确定a、b、c、d四个待定回归系数;
s34、定义类内增强系数ie和类外增强系数oe,两个系数分别满足以下公式,
ie=(ib-i)/ib
oe=(o-ob)/ob
其中,类内增强系数表征了对于不同聚类数的选择,聚类结果在基准值上使得类内距离紧凑了多少;类外增强系数表征了对于不同聚类数的选择,聚类结果在基准值上使得类间聚类拉开了多少;
s35、定义组合增强系数ce,根据组合增强系数绘制关于聚类数的变化曲线,组合增强系数满足以下公式,
ce=ie+oe;
s36、选取变化曲线的最大值,该最大值即为最优点,并将该值对应的聚类数作为最优选择聚类数。
本发明的有益效果是:本方法中的聚类算法计算benchmark曲线(基线),从而对elbow方法中的损失函数进行归一化,且引入了类外和的概念,用以刻画描述聚类后不同类之间的距离远近;引入benchmark曲线(基线)可以消除天然递减或递增因素,从而显性地将聚类的结果突显出来,比elbow方法更容易判断聚类数的取值。
附图说明
图1是本发明实施例中分组方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本实施例中提供了一种高维特征空间中基于聚类算法的就诊人群分组方法,所述方法包括以下步骤,
s1、以患者为汇总维度进行聚类前的特征提取,提取的特征包括疾病种类、限额使用率、个人自费占比、有无住院以及就诊间隔;
s2、计算各个特征之间的相关性,依次判断各个相关性是否大于设定阈值,若是,则剔除该相关性对应的特征,并执行步骤s3;若否,则直接执行步骤s3;
s3、获取聚类算法中的最优选择聚类数;
s4、将最优选择聚类数输入聚类算法中,对步骤s2中的特征进行聚类,并对聚类结果分别进行业务解释。
本实施例中,步骤s2中的各个特征之间的相关性,其中相关性用以表征特征之间的重复性,比如,如果特征a和特征b高度相关,则可认为这两个特征在对结果的表征上没有太大区别,可以考虑剔除一个。具体的,一般相关性可以用相关系数矩阵表示,其中矩阵第i行第j列的元素为特征i和特征j的相关系数,计算方式是特征i和特征j的协方差除以特征i的标准差除以特征j的标准差。
本实施例中,步骤s3具体包括如下内容,
s31、从2-80中依次选择一个数值作为聚类数,对各个聚类数进行kmeans聚类以获取各个聚类数的类内和以及类外和;
s32、针对类内和以及类外和分别设定第一基准值和第二基准值,第一基准值和第二基准值分别满足以下公式,
ib=a*1b*k+b
ob=c*k+d
其中,k为聚类数,i为聚类数k的类内和,o为聚类数k的类外和,ib为第一基准值,ob为第二基准值,a、b、c、d是待定回归系数,lb是以2为底的对数函数;
s33、对步骤s32中的两个公式做线性回归,确定a、b、c、d四个待定回归系数;
s34、定义类内增强系数ie和类外增强系数oe,两个系数分别满足以下公式,
ie=(ib-i)/ib
oe=(o-ob)/ob
其中,类内增强系数表征了对于不同聚类数的选择,聚类结果在基准值上使得类内距离紧凑了多少;类外增强系数表征了对于不同聚类数的选择,聚类结果在基准值上使得类间聚类拉开了多少;
s35、定义组合增强系数ce,根据组合增强系数绘制关于聚类数的变化曲线,组合增强系数满足以下公式,
ce=ie+oe;
s36、选取变化曲线的最大值,该最大值即为最优点,并将该值对应的聚类数作为最优选择聚类数。
本实施例中,步骤s31中,对于不同的k值选择进行kmeans聚类,记录每个k值下训练完成后的inertia值(所有样本距离聚簇中心点的总距离和)以及类质点间的最小生成树长度lm(用来标征类间距离),其中inertia值对应i值(聚类数k的类内和),lm值对应o值(聚类数k的类外和)。
步骤s35中,当测试的k值范围足够宽时,该变化曲线往往存在最优点(最大值处),选该处k值作为最后的k值选择即可。
本实施例中,步骤s4中,所述聚类算法为kmeans聚类算法,使用kmeans聚类算法进行聚类,并计算每个类的特征。k均值聚类算法(k-meansclusteringalgorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为k组,则随机选取k个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。
聚类结果其实就是将步骤s2中的特征划分到不同的类中,之后要对各个类中的各个特征进行均值和标准差的计算。其中均值用以刻画该类的特点,标准差用以判断该类中该特征是否是一个好的刻画量(一般如果标准差很大,就不是个好的刻画量,反之则是)。
之后还需要对聚类结果分别进行业务解释,具体就是,业务解释结合特征统计和业务理解,通常每个特征的选择都是有对应的业务解释的,比如在做高血压病人分组时,可能会设定某一特征为降压药使用占比。故,有了特征统计之后,各类就有了对应的业务表征,结合业务理解,可对该表征进行解释。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明通过提供一种高维特征空间中基于聚类算法的就诊人群分组方法,本方法中的聚类算法计算benchmark曲线(基线),从而对elbow方法中的损失函数进行归一化,且引入了类外和的概念,用以刻画描述聚类后不同类之间的距离远近;引入benchmark曲线(基线)可以消除天然递减或递增因素,从而显性地将聚类的结果突显出来,比elbow方法更容易判断聚类数的取值。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。