Führt eine Kreuzvalidierung für angegebene maschinelle Lernaktionen durch. Diese Aktion teilt die Daten in mehrere 'Folds' (Teilmengen) auf, trainiert das Modell auf einigen Folds und validiert es auf der verbleibenden Fold. Dieser Prozess wird wiederholt, bis jede Fold zur Validierung verwendet wurde, was eine robuste Schätzung der Modellleistung ermöglicht.
| Parameter | Beschreibung |
|---|---|
| casOut | Gibt den Namen und die Details der Score-Ausgabetabelle an. |
| kFolds | Gibt die Anzahl der Folds an, die für die Kreuzvalidierung verwendet werden sollen. |
| logLevel | Gibt die Ebene der zu schreibenden Protokollnachrichten an: keine Protokolle (0), Initialisierungs- und Abschlussprotokolle (1), hinzugefügte Setup-Zusammenfassungsprotokolle (2), hinzugefügte Fold-Beginn- und Abschluss-Protokolle (3). |
| modelType | Gibt den Modelltyp an, auf den die Kreuzvalidierung angewendet wird (z. B. Entscheidungsbaum, Forest, Gradient Boosting). |
| nSubsessionWorkers | Gibt die Anzahl der Worker-Knoten für jede Subsession an, die für die parallele Fold-Auswertung verwendet werden sollen. |
| parallelFolds | Wenn auf True gesetzt, werden die Folds parallel ausgewertet, was die Verarbeitungszeit erheblich verkürzen kann. |
| seed | Gibt den Seed für das Fold-Sampling für die Kreuzvalidierung an, um die Reproduzierbarkeit der Ergebnisse zu gewährleisten. |
| targetEvent | Gibt den Namen des nominalen Zielereignisses an, das für die Modellbewertung verwendet werden soll. |
| trainOptions | Gibt eine Liste von Parametern für die Modelltrainingsaktion an, die im Kreuzvalidierungsprozess verwendet werden sollen. Dies ermöglicht eine feinkörnige Steuerung des Trainings für jeden Modelltyp. |
Dieser SAS-Code erstellt die Tabelle `HMEQ`, die Informationen über Hypothekenantragsteller enthält. Diese Tabelle wird in den folgenden Beispielen verwendet, um die Kreuzvalidierungsaktion zu demonstrieren. Die Daten werden in die `casuser`-Bibliothek geladen.
| 1 | DATA casuser.hmeq; |
| 2 | SET sampsio.hmeq; |
| 3 | RUN; |
Dieses Beispiel führt eine 5-fache Kreuzvalidierung für ein Entscheidungsbaummodell mit der Tabelle `HMEQ` durch. Das Ziel ist es, die Variable `BAD` vorherzusagen. Die Eingabevariablen sind `LOAN`, `MORTDUE`, `VALUE`, `YOJ`, `DEROG`, `DELINQ`, `CLAGE`, `NINQ`, `CLNO` und `DEBTINC`.
| 1 | PROC CAS; |
| 2 | mlTools.crossValidate / |
| 3 | TABLE={name='hmeq'}, |
| 4 | modelType='DECISIONTREE', |
| 5 | kFolds=5, |
| 6 | trainOptions={ |
| 7 | target='BAD', |
| 8 | inputs={'LOAN', 'MORTDUE', 'VALUE', 'YOJ', 'DEROG', 'DELINQ', 'CLAGE', 'NINQ', 'CLNO', 'DEBTINC'} |
| 9 | }; |
| 10 | RUN; |
Dieses Beispiel zeigt eine 10-fache Kreuzvalidierung für ein Gradient-Boosting-Modell. Es gibt explizit Trainingsparameter an, wie die Anzahl der Bäume (`nTrees`), die Lernrate (`learningRate`) und die maximale Tiefe der Bäume (`maxLevel`). Es wird auch ein Seed für die Reproduzierbarkeit der Folds gesetzt und die Ergebnisse der Bewertung jeder Fold in der Tabelle `CrossVal_Score` gespeichert.
| 1 | PROC CAS; |
| 2 | mlTools.crossValidate / |
| 3 | TABLE={name='hmeq'}, |
| 4 | modelType='GRADBOOST', |
| 5 | kFolds=10, |
| 6 | seed=12345, |
| 7 | casOut={name='CrossVal_Score', replace=true}, |
| 8 | trainOptions={ |
| 9 | target='BAD', |
| 10 | inputs={'LOAN', 'MORTDUE', 'VALUE', 'YOJ', 'DEROG', 'DELINQ', 'CLAGE', 'NINQ', 'CLNO', 'DEBTINC'}, |
| 11 | nTrees=100, |
| 12 | learningRate=0.1, |
| 13 | maxLevel=5 |
| 14 | }; |
| 15 | RUN; |
Eine Regionalbank möchte ein neues Kreditbewertungsmodell einführen, um Kreditausfälle vorherzusagen. Bevor das Modell produktiv gesetzt wird, muss die Stabilität des Entscheidu...
Ein Fertigungsunternehmen analysiert Sensordaten von Tausenden von Maschinen, um Ausfälle vorherzusagen. Aufgrund des hohen Datenvolumens und der Komplexität des 'Forest'-Modell...
Ein medizinisches Forschungsinstitut testet ein Support Vector Machine (SVM) Modell an einem sehr kleinen Datensatz seltener Krankheiten. Um die Reproduzierbarkeit für Audits si...