Veröffentlicht am :
Maschinelles Lernen CREATION_INTERNE

SVMACHINE Prozedur

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Die SVMACHINE Prozedur ist ein leistungsstarkes Werkzeug zum Erstellen von Klassifizierungs- und Regressionsmodellen. Sie verwendet das Konzept von Hyperflächen, um Datenklassen zu trennen, indem der Abstand zwischen den nächstgelegenen Datenpunkten (Support-Vektoren) maximiert wird. Sie unterstützt verschiedene Kernel-Funktionen (linear, polynomial, RBF, Sigmoid), um komplexe Beziehungen in den Daten anzupassen. Die Prozedur wird auf dem CAS-Server ausgeführt, was die verteilte und parallele Verarbeitung großer Datenmengen ermöglicht. Sie ist besonders effizient bei binären Klassifizierungsproblemen und kann an Regressionsprobleme angepasst werden.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (Datalines) oder SASHELP, die in die CAS-Sitzung geladen werden.

1 Codeblock
PROC SVMACHINE Data
Erklärung :
Dieses Beispiel veranschaulicht eine einfache binäre Klassifizierung mit der SVMACHINE-Prozedur mit einem linearen Kernel. Eine Untergruppe des SASHELP.IRIS-Datensatzes wird in CAS erstellt, wobei nur zwei Arten beibehalten werden. Die Variable 'target' wird binärisiert (0 oder 1). Die SVMACHINE-Prozedur wird dann ausgeführt, um ein Modell zu trainieren, und die Anpassungsstatistiken werden angezeigt.
Kopiert!
1CASLIB _ALL_ ASSIGN; /* Assurez-vous que la CASLIB est assignée */
2 
3DATA mycas.iris_subset;
4 SET sashelp.iris;
5 where species in ('Setosa', 'Versicolor');
6 IF species = 'Setosa' THEN target = 0;
7 ELSE target = 1;
8 drop species;
9RUN;
10 
11PROC SVMACHINE DATA=mycas.iris_subset;
12 INPUT sepalwidth sepallength petalwidth petallength / level=interval;
13 target target / level=binary;
14 kernel linear;
15 ods OUTPUT FitStatistics=FitStat;
16RUN;
17 
18PROC PRINT DATA=FitStat;
19 title 'Statistiques d''ajustement du modèle SVM Linéaire';
20RUN;
2 Codeblock
PROC SVMACHINE Data
Erklärung :
Dieses Beispiel verwendet einen simulierten zweidimensionalen Datensatz mit einer nichtlinearen Entscheidungsgrenze. Die SVMACHINE-Prozedur ist mit einem RBF-Kernel (Radial Basis Function) und einem Kostenparameter 'C' von 10 konfiguriert. Der Parameter 'C' steuert die Strafe für falsch klassifizierte Datenpunkte und beeinflusst die Breite der Marge und die Komplexität des Modells.
Kopiert!
1CASLIB _ALL_ ASSIGN;
2 
3DATA mycas.simulated_data;
4 call streaminit(123);
5 DO i = 1 to 100;
6 x1 = rand('Uniform') * 10;
7 x2 = rand('Uniform') * 10;
8 IF (x1 - 5)**2 + (x2 - 5)**2 < 10 THEN target = 0;
9 ELSE target = 1;
10 OUTPUT;
11 END;
12RUN;
13 
14PROC SVMACHINE DATA=mycas.simulated_data;
15 INPUT x1 x2 / level=interval;
16 target target / level=binary;
17 kernel rbf;
18 c 10; /* Paramètre de coût (C) */
19 ods OUTPUT FitStatistics=FitStat;
20RUN;
21 
22PROC PRINT DATA=FitStat;
23 title 'Statistiques d''ajustement du modèle SVM RBF';
24RUN;
3 Codeblock
PROC SVMACHINE Data
Erklärung :
Dieses Beispiel demonstriert die Verwendung eines polynomischen Kernels vom Grad 2, um komplexere Beziehungen in den Daten zu erfassen. Es enthält auch einen Schritt zur Partitionierung der Daten in Trainings- (70%) und Validierungssätze (30%), um die Generalisierung des Modells zu bewerten. Die Ausgabe umfasst die Anpassungsstatistiken und eine Konfusionsmatrix.
Kopiert!
1CASLIB _ALL_ ASSIGN;
2 
3DATA mycas.complex_data;
4 call streaminit(456);
5 DO i = 1 to 200;
6 x1 = rand('Normal', 0, 2);
7 x2 = rand('Normal', 0, 2);
8 IF x1**2 + x2**2 < 4 and x1 > 0 THEN target = 0;
9 ELSE target = 1;
10 OUTPUT;
11 END;
12RUN;
13 
14PROC SVMACHINE DATA=mycas.complex_data;
15 INPUT x1 x2 / level=interval;
16 target target / level=binary;
17 kernel polynomial / degree=2; /* Noyau polynomial de degré 2 */
18 c 1;
19 partition fraction(train=0.7 val=0.3 seed=789);
20 ods OUTPUT FitStatistics=FitStat
21 MisclassificationMatrix=MisClass;
22RUN;
23 
24PROC PRINT DATA=FitStat;
25 title 'Statistiques d''ajustement du modèle SVM Polynomial';
26RUN;
27 
28PROC PRINT DATA=MisClass;
29 title 'Matrice de confusion du modèle SVM Polynomial';
30RUN;
4 Codeblock
PROC CAS / SVMACHINE Data
Erklärung :
Dieses fortgeschrittene Beispiel zeigt, wie mit der SVMACHINE-Prozedur über die CASL-Skriptsprache (CAS Language) innerhalb von PROC CAS interagiert wird. Es umfasst die Erstellung von Trainingsdaten und neuen Daten zum Scoren direkt in einer CAS-Tabelle. Das SVM-Modell wird mit der Aktion `svMachine.svMachine` trainiert und sein Zustand gespeichert. Anschließend wird dieses gespeicherte Modell verwendet, um Werte für neue Daten vorherzusagen, und die Ergebnisse werden angezeigt.
Kopiert!
1CASLIB _ALL_ ASSIGN;
2 
3PROC CAS;
4 SESSION casauto;
5 /* Création de données simulées directement dans CAS */
6 DATA casuser.score_data / overwrite=true;
7 INPUT x1 x2 target;
8 DATALINES;
9 1 1 0
10 9 9 1
11 5 5 0
12 2 8 1
13 7 3 0
14 ;
15 RUN;
16 
17 /* Entraînement d'un modèle simple pour la démonstration */
18 svmachine.svMachine /
19 TABLE={name='casuser.score_data'},
20 inputs={'x1', 'x2'},
21 target='target',
22 kernel={type='linear'},
23 savestate={name='my_svm_model', replace=true}
24 ;
25 
26 /* Préparation des nouvelles données à scorer */
27 DATA casuser.new_data / overwrite=true;
28 INPUT x1 x2;
29 DATALINES;
30 1.5 1.5
31 8.5 8.5
32 4.8 5.2
33 3.0 7.0
34 6.5 2.5
35 ;
36 RUN;
37 
38 /* Scoring des nouvelles données */
39 svmachine.svMachine /
40 TABLE={name='casuser.new_data'},
41 predict={model={name='my_svm_model'}},
42 OUTPUT={casout={name='casuser.predictions', replace=true}, copyvars={'x1', 'x2'}}
43 ;
44 
45 /* Affichage des prédictions */
46 printtable / TABLE={name='casuser.predictions'};
47QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.