make_classification#

sklearn.datasets.make_classification(n_samples=100, n_features=20, *, n_informative=2, n_redundant=2, n_repeated=0, n_classes=2, n_clusters_per_class=2, weights=None, flip_y=0.01, class_sep=1.0, hypercube=True, shift=0.0, scale=1.0, shuffle=True, random_state=None, return_X_y=True)[Quelle]#

Generiert eine zufällige Klassifikationsaufgabe mit n Klassen.

Erstellt zunächst Cluster von Punkten, die normalverteilt sind (Std=1) um die Eckpunkte eines n_informative-dimensionalen Hyperwürfels mit Seitenlängen 2*class_sep und weist jeder Klasse eine gleiche Anzahl von Clustern zu. Es wird eine Abhängigkeit zwischen diesen Merkmalen eingeführt und verschiedene Arten von zusätzlichem Rauschen zu den Daten hinzugefügt.

Ohne Mischen werden die Merkmale X horizontal in folgender Reihenfolge gestapelt: die primären n_informative Merkmale, gefolgt von n_redundant linearen Kombinationen der informativen Merkmale, gefolgt von n_repeated Duplikaten, die zufällig mit Zurücklegen aus den informativen und redundanten Merkmalen gezogen werden. Die verbleibenden Merkmale werden mit zufälligem Rauschen gefüllt. Daher sind ohne Mischen alle nützlichen Merkmale in den Spalten X[:, :n_informative + n_redundant + n_repeated] enthalten.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
n_samplesint, Standard=100

Die Anzahl der Stichproben.

n_featuresint, Standard=20

Die Gesamtzahl der Merkmale. Diese umfassen n_informative informative Merkmale, n_redundant redundante Merkmale, n_repeated duplizierte Merkmale und n_features-n_informative-n_redundant-n_repeated nutzlose Merkmale, die zufällig gezogen werden.

n_informativeint, Standard=2

Die Anzahl der informativen Merkmale. Jede Klasse besteht aus einer Anzahl von Gauß-Clustern, die jeweils um die Eckpunkte eines Hyperwürfels in einem Unterraum der Dimension n_informative angeordnet sind. Für jeden Cluster werden informative Merkmale unabhängig von N(0, 1) gezogen und dann zufällig linear innerhalb jedes Clusters kombiniert, um Kovarianz hinzuzufügen. Die Cluster werden dann auf die Eckpunkte des Hyperwürfels gesetzt.

n_redundantint, Standard=2

Die Anzahl der redundanten Merkmale. Diese Merkmale werden als zufällige lineare Kombinationen der informativen Merkmale generiert.

n_repeatedint, Standard=0

Die Anzahl der duplizierten Merkmale, die zufällig aus den informativen und den redundanten Merkmalen gezogen werden.

n_classesint, Standard=2

Die Anzahl der Klassen (oder Labels) des Klassifikationsproblems.

n_clusters_per_classint, Standard=2

Die Anzahl der Cluster pro Klasse.

weightsarray-like der Form (n_classes,) oder (n_classes - 1,), Standard=None

Die Anteile der Stichproben, die jeder Klasse zugeordnet werden. Wenn None, dann sind die Klassen ausgewogen. Beachten Sie, dass, wenn len(weights) == n_classes - 1, das letzte Klassen-Gewicht automatisch abgeleitet wird. Es können mehr als n_samples Stichproben zurückgegeben werden, wenn die Summe der weights 1 überschreitet. Beachten Sie, dass die tatsächlichen Klassenanteile nicht exakt mit weights übereinstimmen, wenn flip_y nicht 0 ist.

flip_yfloat, Standard=0.01

Der Anteil der Stichproben, deren Klasse zufällig zugewiesen wird. Größere Werte fügen Rauschen zu den Labels hinzu und erschweren die Klassifikationsaufgabe. Beachten Sie, dass die Standardeinstellung flip_y > 0 in einigen Fällen zu weniger als n_classes in y führen kann.

class_sepfloat, Standard=1.0

Der Faktor, der die Größe des Hyperwürfels multipliziert. Größere Werte verteilen die Cluster/Klassen weiter und erleichtern die Klassifikationsaufgabe.

hypercubebool, Standard=True

Wenn True, werden die Cluster auf die Eckpunkte eines Hyperwürfels gelegt. Wenn False, werden die Cluster auf die Eckpunkte eines zufälligen Polyeders gelegt.

shiftfloat, ndarray der Form (n_features,) oder None, Standard=0.0

Verschieben Sie die Merkmale um den angegebenen Wert. Wenn None, werden die Merkmale um einen zufälligen Wert in [-class_sep, class_sep] verschoben.

scalefloat, ndarray der Form (n_features,) oder None, Standard=1.0

Multiplizieren Sie die Merkmale mit dem angegebenen Wert. Wenn None, werden die Merkmale mit einem zufälligen Wert in [1, 100] skaliert. Beachten Sie, dass die Skalierung nach dem Verschieben erfolgt.

shufflebool, Standard=True

Mischen Sie die Stichproben und die Merkmale.

random_stateint, RandomState-Instanz oder None, default=None

Bestimmt die Zufallszahlengenerierung für die Datenerstellung. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

return_X_ybool, Standard=True

Wenn True, wird ein Tupel (X, y) anstelle eines Bunch-Objekts zurückgegeben.

Hinzugefügt in Version 1.7.

Gibt zurück:
dataBunch wenn return_X_y False ist.

Dictionary-ähnliches Objekt mit den folgenden Attributen.

DESCRstr

Eine Beschreibung der Funktion, die den Datensatz generiert hat.

parameterdict

Ein Wörterbuch, das die Werte der an die Generatorfunktion übergebenen Argumente speichert.

feature_infoListe der Länge (n_features)

Eine Beschreibung für jedes generierte Merkmal.

Xndarray der Form (n_samples, n_features)

Die generierten Samples.

yndarray der Form (n_samples,)

Ein ganzzahliger Label für die Klassenmitgliedschaft jeder Stichprobe.

Hinzugefügt in Version 1.7.

(X, y)Tupel, wenn return_X_y True ist

Ein Tupel aus generierten Stichproben und Labels.

Siehe auch

make_blobs

Vereinfachte Variante.

make_multilabel_classification

Nicht verwandter Generator für Multilabel-Aufgaben.

Anmerkungen

Der Algorithmus ist von Guyon [1] adaptiert und wurde entwickelt, um den "Madelon"-Datensatz zu generieren.

Referenzen

[1]

I. Guyon, „Design of experiments for the NIPS 2003 variable selection benchmark“, 2003.

Beispiele

>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(random_state=42)
>>> X.shape
(100, 20)
>>> y.shape
(100,)
>>> list(y[:5])
[np.int64(0), np.int64(0), np.int64(1), np.int64(1), np.int64(0)]