Datensatz-Typen

Ein Datensatz-Typ sei derjenige Typ von Datensatz, der durch scikit-learn Datendsatz-Generatoren wie make_blobs, make_classification, make_regression oder andere generiert wird: Siehe https://scikit-learn.org/stable/datasets/sample_generators.html.

Erste Aufgabe einer Datenanalyse: Welcher Typ von Datensatz liegt vor? Daraufhin wählt man einen Modelltyp aus. Ein ML-Projekt wird nur dann Erfolg haben, wenn sich Datensatz- und Modelltyp entsprechen.

Cluster

Comparing different clustering algorithms on toy datasets

Gegenbeispiel 1

Performing Linear Regression with Python and Scikit-learn

cluster_centers = [(3,3), (3.3, 3.3), (3.6, 3.6), (4, 4)]

Daten werden erzeugt mit

# Configuration options
num_samples_total = 150
cluster_centers = [(3,3), (3.3, 3.3), (3.6, 3.6), (4, 4)]
num_features = 1

# Generate data
X, _ = make_blobs(n_samples = num_samples_total,
   centers = cluster_centers,
   n_features = num_features,
   center_box=(0, 1),
   cluster_std = 0.10)

Diskussion:

  • Die Cluster sind linear separierbar: Das macht Clustern einfach!

  • Hier haben wir Cluster, die zufällig auf einer Linie liegen, weshalb auch lineare Regression “irgendwie” funktioniert.

  • Aber der Autor übersieht komplett die eigentliche Struktur des Datasets.

Ergebnis: Hier der Blog-Beitrag definitiv nicht gut. Warum macht der Autor so etwas?

Gegenbeispiel 2

dsw2020, Chapter 5: Performing Your First Cluster Analysis

Figure 5.2: Clustering analysis performed on the data on customers with similar browsing behaviors:

  • 3 blobs, stark überlappend

  • Ein Dataset vom Typ Blob: Hier ist eine Clusteranalyse sinnvoll!

Figure 5.10: Scatter plot of the clusters

Ergebnis: Hier ist unser Buch definitiv dsw2020 nicht gut. Warum machen die so etwas?