=============================== Compatibility with Scikit-Learn =============================== `scikit-learn `_ is the golden standard for general puprose machine learning. As a rule of thumb, we follow scikit-learn functional definitions. ----------------- *scikit-learn* is a library for statistical learning, or **machine-learning**. *scikit-mine*, on its side, is a library for (yet statistical) **pattern mining**. So what does this change ? *scikit-mine* gives more attention to discrete values, because **it looks for co-occuring symbols in the data**. To this purpose, we sometimes need to extend scikit-learn capabilities to tightly integrate the notion of symbols in our learning processes. Using data mining methods as feature extraction blocks for Machine Learning --------------------------------------------------------------------------- The :ref:`feature_extraction` module implements a set of Transformers/Encoders to get you from raw data to a more advanced, structured kind of data : the kind of data that is easily manageable and prone to give you the best performance. Sometimes *scikit-learn* provides us the tools we exactly need, sometimes not. **Scikit-mine addresses data ingestion by implementing its own blocks, which are compatible wtih scikit-learn**. Pipelines --------- scikit-mine models are designed for possible integration in `scikit-learn pipelines `_. This makes possible to build "symbolic classifiers", using scikit-mine pattern encoding schemes to serve predictions, or just use scikit-mine as the first part of a scikit-learn pipeline, as mentioned in the previous section. Other implementation details ---------------------------- We use `joblib `_ as default to parallelise our code. We also set the *prefer* parameter when instantiating `joblib.Parallel `_, so users don't have to manually choose between threads and processes for optimal execution.