在当今商业决策中,可解释性人工智能(AI)的重要性日益凸显。它不再是企业使用机器学习(ML)算法进行决策时的可选附加项。尽管已经开发了许多用于监督算法的技术,但用于解释无监督算法的技术发展相对较少。
聚类是一种无监督算法,用于确定未标记数据中存在的固有群体。例如,B2C企业可能对发现其客户基础中的细分市场感兴趣。因此,聚类通常用于客户细分、市场细分、模式识别、搜索结果聚类等不同用例。一些标准的聚类技术包括K-means、DBSCAN、层次聚类等方法。
使用K-means等技术创建的聚类往往不易理解,因为很难确定为什么特定数据行被归类到特定的桶中。了解从一个聚类迁移到另一个聚类的边界要求是企业可以用来将数据项(如客户)从一个聚类移动到更有利可图的聚类的洞察。这对决策者来说通常是有用的。
例如,如果一个企业有一个不活跃的客户细分市场和另一个相当活跃的客户细分市场,了解一些变量的边界条件信息,这些条件可以使客户从非活跃细分市场转移到活跃细分市场,将是非常有洞察力的。
最近,Dasgupta等人[1]开发的一种算法专注于解决这个问题,通过探索将可解释性引入聚类和准确性的方法。开发的算法围绕使用决策树将数据集划分为K个聚类。在本文中,将深入探讨这两种算法——IMM和ExKMC,以及如何在Python中实现它们。
迭代错误最小化(IMM)聚类是一种基于树的聚类算法,它构建了一个与K-means聚类中考虑的聚类数量相同的叶子数量的决策树。
以下是算法的高级工作步骤:
在构建决策树的过程中,以下步骤发生:
ExKMC是IMM的扩展,其中[3]提出生长树,使得叶子的数量超过聚类的数量(来自K-means),以实现更好的划分。
算法接收一个值K、数据集X和一个叶子数量K'>K。ExKMC从任何聚类算法中获取K个参考中心。然后,构建一个具有K个叶子的阈值树(IMM算法)。
计算最佳特征-阈值对以一次扩展树的一个节点。
树通过分割对替代成本改进最大的节点来扩展。在这里,替代成本是数据点与其最近的参考中心(从K-means获得)之间的平方距离之和。
给定参考中心μ1,…,μk和定义聚类的阈值树T(C1,…..,Ck),替代成本是:
Splitting of a node happens with the combination of a feature and threshold that leads to the most improvement to the surrogate cost.
IMM和ExKMC算法的Python包可以公开获取,并可以使用以下代码安装:
pip install ExKMC
在这里使用鸢尾花数据集来分析这两种算法在产生‘错误’方面的性能,这些错误是相对于参考K-means聚类的。
from ExKMC.Tree import Tree
from IPython.display import Image
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
df1 = pd.read_csv(r"/content/drive/MyDrive/iris.csv")
X = df1.drop('variety',axis=1)
for cols in X.columns:
X[cols] = X[cols].astype(float)
k1=X[cols].mean()
k2 = np.std(X[cols])
X[cols] = (X[cols] - k1)/k2
k=3
kmeans = KMeans(k,random_state=43)
kmeans.fit(X)
p = kmeans.predict(X)
class_names = np.array(['Setosa', 'Versicolor', 'Virginica'])
tree = Tree(k=k)
tree.fit(X, kmeans)
tree.plot(filename="test", feature_names=X.columns)
Image(filename='test.gv.png')
由于X在进行聚类之前被缩放,在决策树中看到一些阈值是负数。
到目前为止,已经使用了IMM算法——这就是为什么得到了一个恰好有K个叶子的决策树。为了拥有一个有K'>K个叶子的决策树,将使用ExKMC算法。为此,可以向Tree对象传递另一个参数,称为‘max_leaves’。这个参数将接受希望在决策树中拥有的叶子数量(或K')。
tree = Tree(k=k, max_leaves=6)
tree.fit(X, kmeans)
tree.plot(filename="test", feature_names=X.columns)
Image(filename='test.gv.png')
正如在上面的图中看到的,传递给树对象的有6个叶子。
将首先分析由IMM算法构建的树的输出。第一个输出来自IMM算法,叶子的数量等于聚类的数量(3)。创建的决策树中的规则引入了可解释性方面。由于具有3个叶子的决策树无法像K-means聚类那样形成相同的聚类,在底部的2个节点看到一些错误。如前所述,错误在这里指的是在每个节点从其参考聚类中心(来自K-means)隔离的点。在那里,在最左边的底部叶子,8个样本属于其他聚类。
第二个输出是ExKMC输出,它产生了一个有6个叶子的决策树。在这里,由于树的深度相对于由IMM算法产生的决策树更高,在6个叶子上看到的错误更少。正如在下面的表1中看到的,树中的一些分割对于任何解释都是多余的——例如,具有决策规则的右下方节点——萼片长度>=1.280。
标准聚类技术难以解释,因为它们无法指出聚类形成的原因。了解推动数据点进入某个聚类的规则或边界条件对决策者来说可能非常有洞察力。因此,能够为聚类带来可解释性的算法在行业中备受追捧。