Intel® oneAPI Data Analytics Library Developer Guide and Reference
                    
                        ID
                        772611
                    
                
                
                    Date
                    11/07/2023
                
                
                    Public
                
            A newer version of this document is available. Customers should click here to go to the newest version.
                                                            
                                                            
                                                                
                                                                
                                                                    basic_statistics_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    basic_statistics_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    column_accessor_homogen.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    cor_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    cor_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    cov_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    cov_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    csr_accessor.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    dbscan_brute_force_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    df_cls_hist_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    df_cls_hist_batch_random.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    df_cls_traverse_model.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    df_reg_hist_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    df_reg_hist_batch_random.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    df_reg_traverse_model.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    kmeans_init_dense.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    kmeans_lloyd_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    knn_cls_brute_force_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    knn_reg_brute_force_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    knn_search_brute_force_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    linear_kernel_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    linear_regression_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    linear_regression_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    logistic_regression_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    pca_cor_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    pca_cor_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    pca_precomputed_cor_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    pca_precomputed_cov_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    rbf_kernel_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_two_class_thunder_dense_batch.cpp
                                                                
                                                                
                                                            
                                                        
                                                    
                                                            
                                                            
                                                                
                                                                
                                                                    basic_statistics_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    basic_statistics_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    column_accessor_homogen.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    connected_components_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    cor_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    cor_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    cov_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    cov_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    csr_accessor.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    dbscan_brute_force_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    df_cls_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    df_reg_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    directed_graph.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    graph_service_functions.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    jaccard_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    jaccard_batch_app.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    kmeans_init_dense.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    kmeans_lloyd_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    knn_cls_brute_force_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    knn_cls_kd_tree_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    knn_search_brute_force_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    linear_kernel_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    linear_regression_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    linear_regression_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    logloss_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    louvain_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    pca_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    pca_dense_online.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    pca_precomputed_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    polynomial_kernel_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    rbf_kernel_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    shortest_paths_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    sigmoid_kernel_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    subgraph_isomorphism_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_multi_class_thunder_csr_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_multi_class_thunder_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_nu_cls_thunder_csr_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_nu_cls_thunder_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_nu_reg_thunder_csr_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_nu_reg_thunder_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_reg_thunder_csr_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_reg_thunder_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_two_class_smo_csr_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_two_class_smo_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_two_class_thunder_csr_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    svm_two_class_thunder_dense_batch.cpp
                                                                
                                                                
                                                            
                                                                
                                                                
                                                                    triangle_counting_batch.cpp
                                                                
                                                                
                                                            
                                                        
                                                    
                                                
                                                
                                                    
                                                        K-Means Clustering
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Glossary
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Correlation and Variance-Covariance Matrices
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Principal Component Analysis
                                                    
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Principal Components Analysis Transform
                                                    
                                                    
                                                
                                                    
                                                        Singular Value Decomposition
                                                    
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Association Rules
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Kernel Functions
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Expectation-Maximization
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Cholesky Decomposition
                                                    
                                                    
                                                
                                                    
                                                        QR Decomposition
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Outlier Detection
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Distance Matrix
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Distributions
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Engines
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Moments of Low Order
                                                    
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Quantile
                                                    
                                                    
                                                
                                                    
                                                        Quality Metrics
                                                    
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Sorting
                                                    
                                                    
                                                
                                                    
                                                        Normalization
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Optimization Solvers
                                                    
                                                    
                                                    
                                                
                                            
                                        
                                                
                                                
                                                    
                                                        Decision Forest
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Decision Trees
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Gradient Boosted Trees
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Stump
                                                    
                                                    
                                                    
                                                
                                                    
                                                        Linear and Ridge Regressions
                                                    
                                                    
                                                    
                                                
                                                    
                                                        LASSO and Elastic Net Regressions
                                                    
                                                    
                                                    
                                                
                                                    
                                                    
                                                        k-Nearest Neighbors (kNN) Classifier
                                                    
                                                    
                                                
                                                    
                                                        Implicit Alternating Least Squares
                                                    
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Logistic Regression
                                                    
                                                    
                                                
                                                    
                                                        Naïve Bayes Classifier
                                                    
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Support Vector Machine Classifier
                                                    
                                                    
                                                
                                                    
                                                    
                                                        Multi-class Classifier
                                                    
                                                    
                                                
                                                    
                                                        Boosting
                                                    
                                                    
                                                    
                                                
                                            
                                        svm_two_class_thunder_csr_batch.cpp
/*******************************************************************************
* Copyright 2023 Intel Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*******************************************************************************/
#include "oneapi/dal/algo/svm.hpp"
#include "oneapi/dal/io/csv.hpp"
#include "example_util/utils.hpp"
namespace dal = oneapi::dal;
namespace svm = dal::svm;
int main(int argc, char const *argv[]) {
    const auto train_data_file_name = get_data_path("svm_two_class_train_sparse_data.csv");
    const auto train_response_file_name = get_data_path("svm_two_class_train_sparse_labels.csv");
    const auto test_data_file_name = get_data_path("svm_two_class_test_sparse_data.csv");
    const auto test_response_file_name = get_data_path("svm_two_class_test_sparse_labels.csv");
    const auto x_train = dal::read<dal::table>(dal::csv::data_source{ train_data_file_name });
    const auto y_train = dal::read<dal::table>(dal::csv::data_source{ train_response_file_name });
    // Convert data table to CSR table
    const auto x_train_csr = convert_to_csr<float>(x_train);
    const auto kernel_desc = dal::linear_kernel::descriptor{}.set_scale(1.0).set_shift(0.0);
    const auto svm_desc = svm::descriptor{ kernel_desc }
                              .set_c(1.0)
                              .set_accuracy_threshold(0.001)
                              .set_max_iteration_count(100)
                              .set_cache_size(200.0)
                              .set_tau(1e-6);
    const auto result_train = dal::train(svm_desc, x_train, y_train);
    std::cout << "Biases:\n" << result_train.get_biases() << std::endl;
    std::cout << "Support indices:\n" << result_train.get_support_indices() << std::endl;
    const auto x_test = dal::read<dal::table>(dal::csv::data_source{ test_data_file_name });
    const auto y_true = dal::read<dal::table>(dal::csv::data_source{ test_response_file_name });
    const auto result_infer = dal::infer(svm_desc, result_train.get_model(), x_test);
    std::cout << "Decision function result:\n" << result_infer.get_decision_function() << std::endl;
    std::cout << "Responses result:\n" << result_infer.get_responses() << std::endl;
    std::cout << "Responses true:\n" << y_true << std::endl;
    return 0;
}