24 from daal.algorithms.svm
import training, prediction
25 from daal.algorithms
import classifier, kernel_function, multi_class_classifier
26 from daal.data_management
import DataSourceIface, FileDataSource
28 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
29 if utils_folder
not in sys.path:
30 sys.path.insert(0, utils_folder)
31 from utils
import printNumericTables, createSparseTable
34 data_dir = os.path.join(
'..',
'data',
'batch')
35 trainDatasetFileName = os.path.join(data_dir,
'svm_multi_class_train_csr.csv')
36 trainLabelsFileName = os.path.join(data_dir,
'svm_multi_class_train_labels.csv')
37 testDatasetFileName = os.path.join(data_dir,
'svm_multi_class_test_csr.csv')
38 testLabelsFileName = os.path.join(data_dir,
'svm_multi_class_test_labels.csv')
42 trainingAlg = training.Batch()
43 predictionAlg = prediction.Batch()
46 kernel = kernel_function.linear.Batch(method=kernel_function.linear.fastCSR)
49 predictionResult =
None
50 testGroundTruth =
None
57 trainLabelsDataSource = FileDataSource(
58 trainLabelsFileName, DataSourceIface.doAllocateNumericTable,
59 DataSourceIface.doDictionaryFromContext
63 trainData = createSparseTable(trainDatasetFileName)
66 trainLabelsDataSource.loadDataBlock()
69 algorithm = multi_class_classifier.training.Batch(nClasses)
71 algorithm.parameter.training = trainingAlg
72 algorithm.parameter.prediction = predictionAlg
75 algorithm.input.set(classifier.training.data, trainData)
76 algorithm.input.set(classifier.training.labels, trainLabelsDataSource.getNumericTable())
80 trainingResult = algorithm.compute()
84 global predictionResult
87 testData = createSparseTable(testDatasetFileName)
90 algorithm = multi_class_classifier.prediction.Batch(nClasses)
92 algorithm.parameter.training = trainingAlg
93 algorithm.parameter.prediction = predictionAlg
96 algorithm.input.setTable(classifier.prediction.data, testData)
97 algorithm.input.setModel(classifier.prediction.model, trainingResult.get(classifier.training.model))
101 predictionResult = algorithm.compute()
107 testLabelsDataSource = FileDataSource(
108 testLabelsFileName, DataSourceIface.doAllocateNumericTable,
109 DataSourceIface.doDictionaryFromContext
112 testLabelsDataSource.loadDataBlock()
113 testGroundTruth = testLabelsDataSource.getNumericTable()
116 testGroundTruth, predictionResult.get(classifier.prediction.prediction),
117 "Ground truth",
"Classification results",
118 "Multi-class SVM classification sample program results (first 20 observations):",
122 if __name__ ==
"__main__":
123 trainingAlg.parameter.cacheSize = 100000000
124 trainingAlg.parameter.kernel = kernel
125 predictionAlg.parameter.kernel = kernel