K-Means Clustering in Qlikview und Qlik Sense
Blog

K-Means Clustering in Qlikview und Qlik Sense

2 min read May 31, 2022

Qlik Sense hat im September 2020 Release native K-means Clustering Funktionen erhalten. Im Gegensatz zu vergangenen Versionen wird also nicht mehr zwingend eine Advanced Analytics Connection nach R/Python benötigt. Wie die K-means Clustering Funktionen korrekt angewendet werden und was der Benefit für Ihr Business ist, erfahren Sie in diesem Blogartikel.


In der Qlik Sense Hilfe befindet sich ein ausführliches Beispiel mit einem Scatterplot.

Da die kMeans Funktionen nur eine Zahl (die Clusterklasse) zurück liefern, ist sie nicht ganz so intuitiv zu benutzen wie vielleicht erwartet. Um eine Punktfärbung mit bestimmten Wunschfarben zu erreichen, muss man ein paar Dinge wissen:

undefined

Ein alter Trick um in Qlik an Farben zu kommen ist die color() Funktion. In QlikView waren das die Default-Farben die in jedem Chart zu definieren waren. Die Funktion gibt es auch in Qlik Sense, wobei ich nicht weiß wo man die Defaultfarben overrulen könnte. Entsprechend nutzt das Beispiel oberhalb


color(
KMeans2D(5,sum(Frachtkosten),sum(Anzahl*Einzelpreis))+1
)-pow(2,30)


Der Trick mit pow(2,30) ist hier beschrieben. Er macht die Punkte ein wenig transparent um ihre Dichte anzudeuten. In der tabellarischen Darstellung kann man die Farbe ebenfalls als Hintergrundfarbe für die gewünschten Spalten nutzen.

Kniffliger wird es, wenn man für jeden Cluster eine eigene Farben definieren möchte. Da kommt die pick() Funktion zur Hilfe. Nachdem kMeans2D eine Zahl liefert, kann ich es als Input für pick() nutzen.


pick(
KMeans2D(5,sum(Frachtkosten),sum(Anzahl*Einzelpreis))+1,
red(),lightred(),DarkGray(),green(),LightBlue()
) - pow(2,30)

undefined

Und was ist nun mit QlikView May 2021 (QlikView 12.60)? Dort funktionieren diese Formeln genauso.


undefined


In QlikView kann man sogar bei der Auswahl der Cluster in einer Listbox die Farbe mitgeben. Die Listbox selbst muss mit aggr () definiert sein. Im Beispiel kann man zwischen Land und Artikelnamen hin und herschalten - deswegen eine Variable vDim.


=aggr('$(vDim)gruppe ' &  
(5- ( KMeans2D(5,sum({1}Frachtkosten),sum({1}Anzahl*Einzelpreis))))
,$(vDim))


Als Expression dann die Formel als "Traffic Light Gauge" darstellen. Dann kann man dort über die Segments-Farben das pick() nachbauen.


undefined


Möchten sie mehr zu Datenintegration und -analyse mit Qlik erfahren? Hier finden Sie unsere Qlik Übersicht.

Persönliche Qlik Expertenberatung

Unsere Experten stehen Ihnen jederzeit zur Verfügung:

Kontaktieren Sie uns


Sie mögen, was Sie lesen?

Melden Sie sich zu unserem Newsletter an und bleiben Sie up-to-date.

Über den Autor

Roland Vecera

Data Solution Architect

LinkedIn