DLIME
Architecture
{{< figure src="/site/figures/dlime-architecture.png" alt="dlime-architecture.png" >}} ## Algorithm
- Input: Dataset \mathcal{D}_{train}, Instance x, lenght of explanation \mathcal{K}
- Initialise \mathcal{Y} \leftarrow \{\}
- Initialise cluster for i /in/ 1,\dots,N do
- C_i \leftarrow \{i\}
- end
- Initialise clusters to merge \mathcal{S} \leftarrow for i /in/ 1\dots N
- while /no more clusters are available for merging/ do
- Pick two most similar cluster with minimum distance d:
- (j,k) \leftarrow \arg\min_{d(j,k)} \in \mathcal{S}
- Create new cluster C_l \leftarrow C_j \bigcup C_k
- Mark j and k unavailable to merge
- if C_l \neq i in 1\dots N then
- Mark l as available, \mathcal{S} \leftarrow \mathcal{S} \bigcup \{l\}
- end
- foreach i \in \mathcal{S} do
- Update similarity matrix by computing distance d(i, l)
- end
- Pick two most similar cluster with minimum distance d:
- end
- while i /in/ 1,\dots,n do
- d(\mathbf{x}_i, \mathbf{x})=\sqrt{(x_{i1}-x_1)^2+\dots+(x_{im}-x_m)^2}
- end
- ind \leftarrow Find indices for the k smallest distance d(\mathbf{x}_i, \mathbf{x})
- \hat{y} \leftarrow Get majority label for x \in ind
- n^s \leftarrow Filter \mathcal{D}_{train} based on \hat{y}
- foreach i /in/ 1, \dots, n do
- $ $ Pairwise distance of each instance in cluster n^s with the original instance x
- end
- \omega \leftarrow LinearRegression(n^s, \mathcal{Y}, \mathcal{K})
- return \omega