24 from daal.algorithms.svm
import training, prediction
25 from daal.algorithms
import kernel_function, 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_PREFIX = os.path.join(
'..',
'data',
'batch')
36 trainDatasetFileName = os.path.join(DATA_PREFIX,
'svm_two_class_train_csr.csv')
37 trainLabelsFileName = os.path.join(DATA_PREFIX,
'svm_two_class_train_labels.csv')
38 testDatasetFileName = os.path.join(DATA_PREFIX,
'svm_two_class_test_csr.csv')
39 testLabelsFileName = os.path.join(DATA_PREFIX,
'svm_two_class_test_labels.csv')
42 kernel = kernel_function.linear.Batch(method=kernel_function.linear.fastCSR)
46 predictionResult =
None
53 trainLabelsDataSource = FileDataSource(
54 trainLabelsFileName, DataSourceIface.doAllocateNumericTable,
55 DataSourceIface.doDictionaryFromContext
59 trainData = createSparseTable(trainDatasetFileName)
62 trainLabelsDataSource.loadDataBlock()
65 algorithm = training.Batch()
67 algorithm.parameter.kernel = kernel
68 algorithm.parameter.cacheSize = 40000000
71 algorithm.input.set(classifier.training.data, trainData)
72 algorithm.input.set(classifier.training.labels, trainLabelsDataSource.getNumericTable())
75 trainingResult = algorithm.compute()
79 global predictionResult
82 testData = createSparseTable(testDatasetFileName)
85 algorithm = prediction.Batch()
87 algorithm.parameter.kernel = kernel
90 algorithm.input.setTable(classifier.prediction.data, testData)
92 algorithm.input.setModel(classifier.prediction.model, trainingResult.get(classifier.training.model))
98 predictionResult = algorithm.getResult()
104 testLabelsDataSource = FileDataSource(
105 testLabelsFileName, DataSourceIface.doAllocateNumericTable,
106 DataSourceIface.doDictionaryFromContext
109 testLabelsDataSource.loadDataBlock()
110 testGroundTruth = testLabelsDataSource.getNumericTable()
113 testGroundTruth, predictionResult.get(classifier.prediction.prediction),
114 "Ground truth\t",
"Classification results",
115 "SVM classification results (first 20 observations):", 20, flt64=
False
118 if __name__ ==
"__main__":