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
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
Das ist ein Datensatz vom Typ
make_regression
. Der Fortgang des Kapitels zeigt, dass hier eine Clusteranalyse künstlich, arbiträr wirkt. Datensatz- und Modelltyp entsprechen sich nicht.Außerdem drängt sich hier natürlich eine log-Transformation auf, siehe https://en.wikipedia.org/wiki/Data_transformation_(statistics), https://mathbench.umd.edu/modules/misc_scaling/page10.htm
Ergebnis: Hier ist unser Buch definitiv dsw2020 nicht gut. Warum machen die so etwas?