load_svmlight_files#

sklearn.datasets.load_svmlight_files(files, *, n_features=None, dtype=<class 'numpy.float64'>, multilabel=False, zero_based='auto', query_id=False, offset=0, length=-1)[Quelle]#

Lädt Datensätze aus mehreren Dateien im SVMlight-Format.

Diese Funktion entspricht der Abbildung von load_svmlight_file über eine Liste von Dateien, mit der Ausnahme, dass die Ergebnisse zu einer einzigen, flachen Liste zusammengefasst werden und die Stichprobenvektoren so beschränkt werden, dass sie alle die gleiche Anzahl von Merkmalen aufweisen.

Falls die Datei eine paarweise Präferenzbeschränkung enthält (im svmlight-Format als „qid“ bekannt), werden diese ignoriert, es sei denn, der Parameter query_id ist auf True gesetzt. Diese paarweisen Präferenzbeschränkungen können verwendet werden, um die Kombination von Stichproben bei der Verwendung paarweiser Verlustfunktionen (wie in einigen Learning-to-Rank-Problemen) einzuschränken, so dass nur Paare mit demselben query_id-Wert berücksichtigt werden.

Parameter:
filesarray-ähnlich, dtype=str, Pfad-ähnlich, Datei-ähnlich oder int

(Pfade von) zu ladenden Dateien. Wenn ein Pfad mit „.gz“ oder „.bz2“ endet, wird er on-the-fly dekomprimiert. Wenn eine Ganzzahl übergeben wird, wird angenommen, dass es sich um einen Dateideskriptor handelt. Datei-ähnliche Objekte und Dateideskriptoren werden von dieser Funktion nicht geschlossen. Datei-ähnliche Objekte müssen im Binärmodus geöffnet werden.

Geändert in Version 1.2: Pfad-ähnliche Objekte werden jetzt akzeptiert.

n_featuresint, Standard=None

Die zu verwendende Anzahl von Merkmalen. Wenn None, wird sie aus dem maximalen Spaltenindex abgeleitet, der in einer der Dateien vorkommt.

Dies kann auf einen höheren Wert als die tatsächliche Anzahl von Merkmalen in einer der Eingabedateien gesetzt werden, aber ein niedrigerer Wert führt zu einer Ausnahme.

dtypeNumPy-Datentyp, Standard=np.float64

Datentyp des zu ladenden Datensatzes. Dies ist der Datentyp der Ausgabe-NumPy-Arrays X und y.

multilabelbool, Standard=False

Stichproben können mehrere Labels gleichzeitig haben (siehe https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multilabel.html).

zero_basedbool oder „auto“, Standard=„auto“

Gibt an, ob Spaltenindizes in f nullbasiert (True) oder einsbasiert (False) sind. Wenn Spaltenindizes einsbasiert sind, werden sie in nullbasierte umgewandelt, um den Python/NumPy-Konventionen zu entsprechen. Wenn auf „auto“ gesetzt, wird eine heuristische Prüfung angewendet, um dies anhand des Dateiinhaltes zu bestimmen. Beide Arten von Dateien kommen „in der Wildnis“ vor, sind aber leider nicht selbstidentifizierend. Die Verwendung von „auto“ oder True ist immer sicher, wenn kein Offset oder keine Länge angegeben wird. Wenn Offset oder Länge angegeben werden, greift der „auto“-Modus auf zero_based=True zurück, um zu vermeiden, dass die heuristische Prüfung auf verschiedenen Segmenten der Datei zu inkonsistenten Ergebnissen führt.

query_idbool, Standard=False

Wenn True, wird das query_id-Array für jede Datei zurückgegeben.

offsetint, Standard=0

Ignoriert die ersten Offset-Bytes, indem vorwärts gesucht wird, und verwirft dann die folgenden Bytes bis zum nächsten Zeilenumbruchzeichen.

lengthint, Standard=-1

Wenn strikt positiv, wird das Lesen weiterer Datenzeilen gestoppt, sobald die Position in der Datei den Schwellenwert (offset + length) Bytes erreicht hat.

Gibt zurück:
[X1, y1, …, Xn, yn] oder [X1, y1, q1, …, Xn, yn, qn]: Liste von Arrays

Jedes (Xi, yi)-Paar ist das Ergebnis von load_svmlight_file(files[i]). Wenn query_id auf True gesetzt ist, werden stattdessen (Xi, yi, qi)-Tripel zurückgegeben.

Siehe auch

load_svmlight_file

Ähnliche Funktion zum Laden einer einzelnen Datei in diesem Format.

Anmerkungen

Beim Anpassen eines Modells an eine Matrix X_train und deren Auswertung anhand einer Matrix X_test ist es wichtig, dass X_train und X_test die gleiche Anzahl von Merkmalen haben (X_train.shape[1] == X_test.shape[1]). Dies ist möglicherweise nicht der Fall, wenn Sie die Dateien einzeln mit load_svmlight_file laden.

Beispiele

Verwendung von joblib.Memory zum Cachen der svmlight-Datei

from joblib import Memory
from sklearn.datasets import load_svmlight_file
mem = Memory("./mycache")

@mem.cache
def get_data():
    data_train, target_train, data_test, target_test = load_svmlight_files(
        ["svmlight_file_train", "svmlight_file_test"]
    )
    return data_train, target_train, data_test, target_test

X_train, y_train, X_test, y_test = get_data()