Architecture
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
- 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
- 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
- $\mathcal{Y} \leftarrow $ 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$