# Data Analytics Library

oneAPI Data Analytics Library (oneDAL; formerly Intel Data Analytics Acceleration Library or Intel DAAL), is a library of optimized algorithmic building blocks for data analysis stages most commonly associated with solving Big Data problems.
The library supports Intel processors and is available for Windows, Linux and macOS operating systems. The library is designed for use popular data platforms including Hadoop, Spark, R, and MATLAB.

## History

Intel launched the Intel Data Analytics Library(oneDAL) on December 8, 2020. It also launched the Data Analytics Acceleration Library on August 25, 2015 and called it Intel Data Analytics Acceleration Library 2016 (Intel DAAL 2016). oneDAL is bundled with Intel oneAPI Base Toolkit as a commercial product. A standalone version is available commercially or freely, the only difference being support and maintenance related.

## License

Apache License 2.0

## Details
### Functional categories

Intel DAAL has the following algorithms:
* Analysis
** Low Order Moments: Includes computing min, max, mean, standard deviation, variance, etc. for a dataset.
** Quantiles: splitting observations into equal-sized groups defined by quantile orders.
** Correlation matrix and variance-covariance matrix: A basic tool in understanding statistical dependence among variables. The degree of correlation indicates the tendency of one change to indicate the likely change in another.
** Cosine distance matrix: Measuring pairwise distance using cosine distance.
** Correlation distance matrix: Measuring pairwise distance between items using correlation distance.
** Clustering: Grouping data into unlabeled groups. This is a typical technique used in “unsupervised learning” where there is not established model to rely on. Intel DAAL provides 2 algorithms for clustering: K-Means and “EM for GMM.”
** Principal Component Analysis (PCA): the most popular algorithm for dimensionality reduction.
** Association rules mining: Detecting co-occurrence patterns. Commonly known as “shopping basket mining.”
** Data transformation through matrix decomposition: DAAL provides Cholesky, QR, and SVD decomposition algorithms.
** Outlier detection: Identifying observations that are abnormally distant from typical distribution of other observations.
* Training and Prediction
** Regression
*** Linear regression: The simplest regression method. Fitting a linear equation to model the relationship between dependent variables (things to be predicted) and explanatory variables (things known).
** Classification: Building a model to assign items into different labeled groups. DAAL provides multiple algorithms in this area, including Naïve Bayes classifier, Support Vector Machine, and multi-class classifiers.
** Recommendation systems
** Neural networks
Intel DAAL supported three processing modes:
* Batch processing: When all data fits in the memory, a function is called to process the data all at once.
* Online processing (also called Streaming): when all data does not fit in memory. Intel® DAAL can process data chunks individually and combine all partial results at the finalizing stage.
* Distributed processing: DAAL supports a model similar to MapReduce. Consumers in a cluster process local data (map stage), and then the Producer process collects and combines partial results from Consumers (reduce stage). Intel DAAL offers flexibility in this mode by leaving the communication functions completely to the developer. Developers can choose to use the data movement in a framework such as Hadoop or Spark, or explicitly coding communications most likely with MPI.