binlearn


Namebinlearn JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryA comprehensive binning and discretization library for machine learning
upload_time2025-08-10 18:24:47
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords binning discretization binlearn data preprocessing machine learning data science feature engineering
VCS
bugtrack_url
requirements numpy pytest scipy kmeans1d scikit-learn
Travis-CI No Travis.
coveralls test coverage No coveralls.
            =============================================
binlearn - Binning and Discretization Library
=============================================

.. image:: https://img.shields.io/pypi/v/binlearn
    :alt: PyPI Version
    :target: https://pypi.org/project/binlearn/

.. image:: https://img.shields.io/pypi/pyversions/binlearn
    :alt: Python Versions
    :target: https://pypi.org/project/binlearn/

.. image:: https://img.shields.io/github/actions/workflow/status/TheDAALab/binlearn/build.yml?branch=main
    :alt: Build Status
    :target: https://github.com/TheDAALab/binlearn/actions/workflows/build.yml

.. image:: https://img.shields.io/codecov/c/github/TheDAALab/binlearn
    :alt: Code Coverage
    :target: https://codecov.io/gh/TheDAALab/binlearn

.. image:: https://img.shields.io/github/license/TheDAALab/binlearn
    :alt: License
    :target: https://github.com/TheDAALab/binlearn/blob/main/LICENSE

.. image:: https://img.shields.io/readthedocs/binlearn
    :alt: Documentation Status
    :target: https://binlearn.readthedocs.io/

.. image:: https://img.shields.io/pypi/dm/binlearn
    :alt: Monthly Downloads
    :target: https://pypi.org/project/binlearn/

.. image:: https://img.shields.io/github/stars/TheDAALab/binlearn?style=social
    :alt: GitHub Stars
    :target: https://github.com/TheDAALab/binlearn

.. image:: https://img.shields.io/badge/code%20style-ruff-000000.svg
    :alt: Code Style - Ruff
    :target: https://github.com/astral-sh/ruff

.. image:: https://img.shields.io/badge/typing-mypy-blue
    :alt: Type Checking - MyPy
    :target: https://mypy.readthedocs.io/

A modern, type-safe Python library for data binning and discretization with comprehensive error handling, sklearn compatibility, and DataFrame support.

๐Ÿš€ **Key Features**
---------------------

โœจ **Multiple Binning Methods**
  * **EqualWidthBinning** - Equal-width intervals across data range
  * **EqualFrequencyBinning** - Equal-frequency (quantile-based) bins  
  * **KMeansBinning** - K-means clustering-based discretization
  * **GaussianMixtureBinning** - Gaussian mixture model clustering-based binning
  * **DBSCANBinning** - Density-based clustering for natural groupings
  * **EqualWidthMinimumWeightBinning** - Weight-constrained equal-width binning
  * **TreeBinning** - Decision tree-based supervised binning for classification and regression
  * **Chi2Binning** - Chi-square statistic-based supervised binning for optimal class separation
  * **IsotonicBinning** - Isotonic regression-based supervised binning for monotonic relationships
  * **ManualIntervalBinning** - Custom interval boundary specification
  * **ManualFlexibleBinning** - Mixed interval and singleton bin definitions
  * **SingletonBinning** - Creates one bin per unique numeric value

๐Ÿ”ง **Framework Integration**
  * **Pandas DataFrames** - Native support with column name preservation
  * **Polars DataFrames** - High-performance columnar data support (optional)
  * **NumPy Arrays** - Efficient numerical array processing
  * **Scikit-learn Pipelines** - Full transformer compatibility

โšก **Modern Code Quality**
  * **Type Safety** - 100% mypy compliance with comprehensive type annotations
  * **Code Quality** - 100% ruff compliance with modern Python syntax
  * **Error Handling** - Comprehensive validation with helpful error messages and suggestions
  * **Test Coverage** - 100% code coverage with 841 comprehensive tests
  * **Documentation** - Extensive examples and API documentation

๐Ÿ“ฆ **Installation**
---------------------

.. code-block:: bash

   pip install binlearn

๐Ÿ”ฅ **Quick Start**
--------------------

.. code-block:: python

   import numpy as np
   import pandas as pd
   from binlearn import EqualWidthBinning, TreeBinning, SingletonBinning, Chi2Binning
   
   # Create sample data
   data = pd.DataFrame({
       'age': np.random.normal(35, 10, 1000),
       'income': np.random.lognormal(10, 0.5, 1000),
       'score': np.random.uniform(0, 100, 1000)
   })
   
   # Equal-width binning with DataFrame preservation
   binner = EqualWidthBinning(n_bins=5, preserve_dataframe=True)
   data_binned = binner.fit_transform(data)
   
   print(f"Original shape: {data.shape}")
   print(f"Binned shape: {data_binned.shape}")
   print(f"Bin edges for age: {binner.bin_edges_['age']}")
   
   # SingletonBinning for numeric discrete values
   numeric_discrete_data = pd.DataFrame({
       'category_id': [1, 2, 1, 3, 2, 1],
       'rating': [1, 2, 1, 3, 2, 1]
   })
   
   singleton_binner = SingletonBinning(preserve_dataframe=True)
   numeric_binned = singleton_binner.fit_transform(numeric_discrete_data)
   print(f"Numeric discrete binning: {numeric_binned.shape}")

๐ŸŽฏ **Supervised Binning Example**
-----------------------------------

.. code-block:: python

   from binlearn import TreeBinning
   import numpy as np
   from sklearn.datasets import make_classification
   
   # Create classification dataset
   X, y = make_classification(n_samples=1000, n_features=4, n_classes=2, random_state=42)
   
   # Method 1: Using guidance_columns (binlearn style)
   # Combine features and target into single dataset
   X_with_target = np.column_stack([X, y])
   
   sup_binner1 = TreeBinning(
       guidance_columns=[4],  # Use the target column to guide binning
       task_type='classification',
       tree_params={'max_depth': 3, 'min_samples_leaf': 20}
   )
   X_binned1 = sup_binner1.fit_transform(X_with_target)
   
   # Method 2: Using X and y parameters (sklearn style)
   # Pass features and target separately like sklearn
   sup_binner2 = TreeBinning(
       task_type='classification',
       tree_params={'max_depth': 3, 'min_samples_leaf': 20}
   )
   sup_binner2.fit(X, y)  # y is automatically used as guidance
   X_binned2 = sup_binner2.transform(X)
   
   print(f"Method 1 - Input shape: {X_with_target.shape}, Output shape: {X_binned1.shape}")
   print(f"Method 2 - Input shape: {X.shape}, Output shape: {X_binned2.shape}")
   print(f"Both methods create same bins: {np.array_equal(X_binned1, X_binned2)}")

๐Ÿ› ๏ธ **Scikit-learn Integration**
---------------------------------

.. code-block:: python

   from sklearn.pipeline import Pipeline
   from sklearn.ensemble import RandomForestClassifier
   from sklearn.model_selection import train_test_split
   from binlearn import EqualFrequencyBinning
   
   # Use the same classification dataset from previous example
   X, y = make_classification(n_samples=1000, n_features=4, n_classes=2, random_state=42)
   X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
   
   # Create ML pipeline with binning preprocessing
   pipeline = Pipeline([
       ('binning', EqualFrequencyBinning(n_bins=5)),
       ('classifier', RandomForestClassifier(random_state=42))
   ])
   
   # Train and evaluate
   pipeline.fit(X_train, y_train)
   accuracy = pipeline.score(X_test, y_test)
   print(f"Pipeline accuracy: {accuracy:.3f}")

๐Ÿ“š **Available Methods**
--------------------------

**Interval-based Methods (Unsupervised):**

* ``EqualWidthBinning`` - Creates bins of equal width across the data range
* ``EqualFrequencyBinning`` - Creates bins with approximately equal number of samples  
* ``KMeansBinning`` - Uses K-means clustering to determine bin boundaries
* ``GaussianMixtureBinning`` - Uses Gaussian mixture models for probabilistic clustering
* ``DBSCANBinning`` - Uses density-based clustering for natural groupings
* ``EqualWidthMinimumWeightBinning`` - Equal-width bins with weight constraints
* ``ManualIntervalBinning`` - Specify custom interval boundaries

**Supervised Methods:**

* ``TreeBinning`` - Decision tree-based binning optimized for target variables (classification and regression)
* ``Chi2Binning`` - Chi-square statistic-based binning for optimal feature-target association
* ``IsotonicBinning`` - Isotonic regression-based binning for monotonic relationships

**Flexible Methods:**

* ``ManualFlexibleBinning`` - Define mixed interval and singleton bins
* ``SingletonBinning`` - Creates one bin per unique numeric value

โš™๏ธ **Requirements**
---------------------

**Python Versions**: 3.10, 3.11, 3.12, 3.13

**Core Dependencies**:
  * NumPy >= 1.21.0
  * SciPy >= 1.7.0
  * Scikit-learn >= 1.0.0
  * kmeans1d >= 0.3.0

**Optional Dependencies**:
  * Pandas >= 1.3.0 (for DataFrame support)
  * Polars >= 0.15.0 (for Polars DataFrame support)

**Development Dependencies**:
  * pytest >= 6.0 (for testing)
  * ruff >= 0.1.0 (for linting and formatting)
  * mypy >= 1.0.0 (for type checking)

๐Ÿงช **Development Setup**
--------------------------

.. code-block:: bash

   # Clone repository
   git clone https://github.com/TheDAALab/binlearn.git
   cd binlearn
   
   # Install in development mode with all dependencies
   pip install -e ".[tests,dev,pandas,polars]"
   
   # Run all tests
   pytest
   
   # Run code quality checks
   ruff check binlearn/
   mypy binlearn/ --ignore-missing-imports
   
   # Build documentation
   cd docs && make html

๐Ÿ† **Code Quality Standards**
-------------------------------

* โœ… **100% Test Coverage** - Comprehensive test suite with 841 tests
* โœ… **100% Type Safety** - Complete mypy compliance with modern type annotations
* โœ… **100% Code Quality** - Full ruff compliance with modern Python standards
* โœ… **Comprehensive Documentation** - Detailed API docs and examples
* โœ… **Modern Python** - Uses latest Python features and best practices
* โœ… **Robust Error Handling** - Helpful error messages with actionable suggestions

๐Ÿค **Contributing**
---------------------

We welcome contributions! Here's how to get started:

1. Fork the repository on GitHub
2. Create a feature branch: ``git checkout -b feature/your-feature``
3. Make your changes and add tests
4. Ensure all quality checks pass:
   
   .. code-block:: bash
   
      pytest                                    # Run tests
      ruff check binlearn/                      # Check code quality  
      mypy binlearn/ --ignore-missing-imports   # Check types

5. Submit a pull request

**Areas for Contribution**:
  * ๐Ÿ› Bug reports and fixes
  * โœจ New binning algorithms
  * ๐Ÿ“š Documentation improvements
  * ๐Ÿงช Additional test cases
  * ๐ŸŽฏ Performance optimizations

๐Ÿ”— **Links**
--------------

* **GitHub Repository**: https://github.com/TheDAALab/binlearn
* **Issue Tracker**: https://github.com/TheDAALab/binlearn/issues
* **Documentation**: https://binlearn.readthedocs.io/

๐Ÿ“„ **License**
----------------

This project is licensed under the MIT License. See the `LICENSE <https://github.com/TheDAALab/binlearn/blob/main/LICENSE>`_ file for details.



**Developed by TheDAALab** 

*A modern, type-safe binning framework for Python data science workflows.*

.. image:: https://img.shields.io/badge/Powered%20by-Python-blue.svg
    :alt: Powered by Python
    :target: https://www.python.org/

.. image:: https://img.shields.io/badge/Built%20with-NumPy-orange.svg
    :alt: Built with NumPy
    :target: https://numpy.org/

.. image:: https://img.shields.io/badge/Compatible%20with-Pandas-green.svg
    :alt: Compatible with Pandas
    :target: https://pandas.pydata.org/

.. image:: https://img.shields.io/badge/Integrates%20with-Scikit--learn-red.svg
    :alt: Integrates with Scikit-learn
    :target: https://scikit-learn.org/

.. image:: https://img.shields.io/pypi/status/binlearn
    :alt: Development Status
    :target: https://pypi.org/project/binlearn/

.. image:: https://img.shields.io/github/contributors/TheDAALab/binlearn
    :alt: Contributors
    :target: https://github.com/TheDAALab/binlearn/graphs/contributors

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "binlearn",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "The DAALAB <gyorgy.kovacs@daalab.com>",
    "keywords": "binning, discretization, binlearn, data preprocessing, machine learning, data science, feature engineering",
    "author": null,
    "author_email": "The DAALAB <gyorgy.kovacs@daalab.com>",
    "download_url": "https://files.pythonhosted.org/packages/aa/21/5f33d8efbc91f92d45df95980cc862593971d30174d65fdcd63c110fdacb/binlearn-1.0.1.tar.gz",
    "platform": null,
    "description": "=============================================\nbinlearn - Binning and Discretization Library\n=============================================\n\n.. image:: https://img.shields.io/pypi/v/binlearn\n    :alt: PyPI Version\n    :target: https://pypi.org/project/binlearn/\n\n.. image:: https://img.shields.io/pypi/pyversions/binlearn\n    :alt: Python Versions\n    :target: https://pypi.org/project/binlearn/\n\n.. image:: https://img.shields.io/github/actions/workflow/status/TheDAALab/binlearn/build.yml?branch=main\n    :alt: Build Status\n    :target: https://github.com/TheDAALab/binlearn/actions/workflows/build.yml\n\n.. image:: https://img.shields.io/codecov/c/github/TheDAALab/binlearn\n    :alt: Code Coverage\n    :target: https://codecov.io/gh/TheDAALab/binlearn\n\n.. image:: https://img.shields.io/github/license/TheDAALab/binlearn\n    :alt: License\n    :target: https://github.com/TheDAALab/binlearn/blob/main/LICENSE\n\n.. image:: https://img.shields.io/readthedocs/binlearn\n    :alt: Documentation Status\n    :target: https://binlearn.readthedocs.io/\n\n.. image:: https://img.shields.io/pypi/dm/binlearn\n    :alt: Monthly Downloads\n    :target: https://pypi.org/project/binlearn/\n\n.. image:: https://img.shields.io/github/stars/TheDAALab/binlearn?style=social\n    :alt: GitHub Stars\n    :target: https://github.com/TheDAALab/binlearn\n\n.. image:: https://img.shields.io/badge/code%20style-ruff-000000.svg\n    :alt: Code Style - Ruff\n    :target: https://github.com/astral-sh/ruff\n\n.. image:: https://img.shields.io/badge/typing-mypy-blue\n    :alt: Type Checking - MyPy\n    :target: https://mypy.readthedocs.io/\n\nA modern, type-safe Python library for data binning and discretization with comprehensive error handling, sklearn compatibility, and DataFrame support.\n\n\ud83d\ude80 **Key Features**\n---------------------\n\n\u2728 **Multiple Binning Methods**\n  * **EqualWidthBinning** - Equal-width intervals across data range\n  * **EqualFrequencyBinning** - Equal-frequency (quantile-based) bins  \n  * **KMeansBinning** - K-means clustering-based discretization\n  * **GaussianMixtureBinning** - Gaussian mixture model clustering-based binning\n  * **DBSCANBinning** - Density-based clustering for natural groupings\n  * **EqualWidthMinimumWeightBinning** - Weight-constrained equal-width binning\n  * **TreeBinning** - Decision tree-based supervised binning for classification and regression\n  * **Chi2Binning** - Chi-square statistic-based supervised binning for optimal class separation\n  * **IsotonicBinning** - Isotonic regression-based supervised binning for monotonic relationships\n  * **ManualIntervalBinning** - Custom interval boundary specification\n  * **ManualFlexibleBinning** - Mixed interval and singleton bin definitions\n  * **SingletonBinning** - Creates one bin per unique numeric value\n\n\ud83d\udd27 **Framework Integration**\n  * **Pandas DataFrames** - Native support with column name preservation\n  * **Polars DataFrames** - High-performance columnar data support (optional)\n  * **NumPy Arrays** - Efficient numerical array processing\n  * **Scikit-learn Pipelines** - Full transformer compatibility\n\n\u26a1 **Modern Code Quality**\n  * **Type Safety** - 100% mypy compliance with comprehensive type annotations\n  * **Code Quality** - 100% ruff compliance with modern Python syntax\n  * **Error Handling** - Comprehensive validation with helpful error messages and suggestions\n  * **Test Coverage** - 100% code coverage with 841 comprehensive tests\n  * **Documentation** - Extensive examples and API documentation\n\n\ud83d\udce6 **Installation**\n---------------------\n\n.. code-block:: bash\n\n   pip install binlearn\n\n\ud83d\udd25 **Quick Start**\n--------------------\n\n.. code-block:: python\n\n   import numpy as np\n   import pandas as pd\n   from binlearn import EqualWidthBinning, TreeBinning, SingletonBinning, Chi2Binning\n   \n   # Create sample data\n   data = pd.DataFrame({\n       'age': np.random.normal(35, 10, 1000),\n       'income': np.random.lognormal(10, 0.5, 1000),\n       'score': np.random.uniform(0, 100, 1000)\n   })\n   \n   # Equal-width binning with DataFrame preservation\n   binner = EqualWidthBinning(n_bins=5, preserve_dataframe=True)\n   data_binned = binner.fit_transform(data)\n   \n   print(f\"Original shape: {data.shape}\")\n   print(f\"Binned shape: {data_binned.shape}\")\n   print(f\"Bin edges for age: {binner.bin_edges_['age']}\")\n   \n   # SingletonBinning for numeric discrete values\n   numeric_discrete_data = pd.DataFrame({\n       'category_id': [1, 2, 1, 3, 2, 1],\n       'rating': [1, 2, 1, 3, 2, 1]\n   })\n   \n   singleton_binner = SingletonBinning(preserve_dataframe=True)\n   numeric_binned = singleton_binner.fit_transform(numeric_discrete_data)\n   print(f\"Numeric discrete binning: {numeric_binned.shape}\")\n\n\ud83c\udfaf **Supervised Binning Example**\n-----------------------------------\n\n.. code-block:: python\n\n   from binlearn import TreeBinning\n   import numpy as np\n   from sklearn.datasets import make_classification\n   \n   # Create classification dataset\n   X, y = make_classification(n_samples=1000, n_features=4, n_classes=2, random_state=42)\n   \n   # Method 1: Using guidance_columns (binlearn style)\n   # Combine features and target into single dataset\n   X_with_target = np.column_stack([X, y])\n   \n   sup_binner1 = TreeBinning(\n       guidance_columns=[4],  # Use the target column to guide binning\n       task_type='classification',\n       tree_params={'max_depth': 3, 'min_samples_leaf': 20}\n   )\n   X_binned1 = sup_binner1.fit_transform(X_with_target)\n   \n   # Method 2: Using X and y parameters (sklearn style)\n   # Pass features and target separately like sklearn\n   sup_binner2 = TreeBinning(\n       task_type='classification',\n       tree_params={'max_depth': 3, 'min_samples_leaf': 20}\n   )\n   sup_binner2.fit(X, y)  # y is automatically used as guidance\n   X_binned2 = sup_binner2.transform(X)\n   \n   print(f\"Method 1 - Input shape: {X_with_target.shape}, Output shape: {X_binned1.shape}\")\n   print(f\"Method 2 - Input shape: {X.shape}, Output shape: {X_binned2.shape}\")\n   print(f\"Both methods create same bins: {np.array_equal(X_binned1, X_binned2)}\")\n\n\ud83d\udee0\ufe0f **Scikit-learn Integration**\n---------------------------------\n\n.. code-block:: python\n\n   from sklearn.pipeline import Pipeline\n   from sklearn.ensemble import RandomForestClassifier\n   from sklearn.model_selection import train_test_split\n   from binlearn import EqualFrequencyBinning\n   \n   # Use the same classification dataset from previous example\n   X, y = make_classification(n_samples=1000, n_features=4, n_classes=2, random_state=42)\n   X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n   \n   # Create ML pipeline with binning preprocessing\n   pipeline = Pipeline([\n       ('binning', EqualFrequencyBinning(n_bins=5)),\n       ('classifier', RandomForestClassifier(random_state=42))\n   ])\n   \n   # Train and evaluate\n   pipeline.fit(X_train, y_train)\n   accuracy = pipeline.score(X_test, y_test)\n   print(f\"Pipeline accuracy: {accuracy:.3f}\")\n\n\ud83d\udcda **Available Methods**\n--------------------------\n\n**Interval-based Methods (Unsupervised):**\n\n* ``EqualWidthBinning`` - Creates bins of equal width across the data range\n* ``EqualFrequencyBinning`` - Creates bins with approximately equal number of samples  \n* ``KMeansBinning`` - Uses K-means clustering to determine bin boundaries\n* ``GaussianMixtureBinning`` - Uses Gaussian mixture models for probabilistic clustering\n* ``DBSCANBinning`` - Uses density-based clustering for natural groupings\n* ``EqualWidthMinimumWeightBinning`` - Equal-width bins with weight constraints\n* ``ManualIntervalBinning`` - Specify custom interval boundaries\n\n**Supervised Methods:**\n\n* ``TreeBinning`` - Decision tree-based binning optimized for target variables (classification and regression)\n* ``Chi2Binning`` - Chi-square statistic-based binning for optimal feature-target association\n* ``IsotonicBinning`` - Isotonic regression-based binning for monotonic relationships\n\n**Flexible Methods:**\n\n* ``ManualFlexibleBinning`` - Define mixed interval and singleton bins\n* ``SingletonBinning`` - Creates one bin per unique numeric value\n\n\u2699\ufe0f **Requirements**\n---------------------\n\n**Python Versions**: 3.10, 3.11, 3.12, 3.13\n\n**Core Dependencies**:\n  * NumPy >= 1.21.0\n  * SciPy >= 1.7.0\n  * Scikit-learn >= 1.0.0\n  * kmeans1d >= 0.3.0\n\n**Optional Dependencies**:\n  * Pandas >= 1.3.0 (for DataFrame support)\n  * Polars >= 0.15.0 (for Polars DataFrame support)\n\n**Development Dependencies**:\n  * pytest >= 6.0 (for testing)\n  * ruff >= 0.1.0 (for linting and formatting)\n  * mypy >= 1.0.0 (for type checking)\n\n\ud83e\uddea **Development Setup**\n--------------------------\n\n.. code-block:: bash\n\n   # Clone repository\n   git clone https://github.com/TheDAALab/binlearn.git\n   cd binlearn\n   \n   # Install in development mode with all dependencies\n   pip install -e \".[tests,dev,pandas,polars]\"\n   \n   # Run all tests\n   pytest\n   \n   # Run code quality checks\n   ruff check binlearn/\n   mypy binlearn/ --ignore-missing-imports\n   \n   # Build documentation\n   cd docs && make html\n\n\ud83c\udfc6 **Code Quality Standards**\n-------------------------------\n\n* \u2705 **100% Test Coverage** - Comprehensive test suite with 841 tests\n* \u2705 **100% Type Safety** - Complete mypy compliance with modern type annotations\n* \u2705 **100% Code Quality** - Full ruff compliance with modern Python standards\n* \u2705 **Comprehensive Documentation** - Detailed API docs and examples\n* \u2705 **Modern Python** - Uses latest Python features and best practices\n* \u2705 **Robust Error Handling** - Helpful error messages with actionable suggestions\n\n\ud83e\udd1d **Contributing**\n---------------------\n\nWe welcome contributions! Here's how to get started:\n\n1. Fork the repository on GitHub\n2. Create a feature branch: ``git checkout -b feature/your-feature``\n3. Make your changes and add tests\n4. Ensure all quality checks pass:\n   \n   .. code-block:: bash\n   \n      pytest                                    # Run tests\n      ruff check binlearn/                      # Check code quality  \n      mypy binlearn/ --ignore-missing-imports   # Check types\n\n5. Submit a pull request\n\n**Areas for Contribution**:\n  * \ud83d\udc1b Bug reports and fixes\n  * \u2728 New binning algorithms\n  * \ud83d\udcda Documentation improvements\n  * \ud83e\uddea Additional test cases\n  * \ud83c\udfaf Performance optimizations\n\n\ud83d\udd17 **Links**\n--------------\n\n* **GitHub Repository**: https://github.com/TheDAALab/binlearn\n* **Issue Tracker**: https://github.com/TheDAALab/binlearn/issues\n* **Documentation**: https://binlearn.readthedocs.io/\n\n\ud83d\udcc4 **License**\n----------------\n\nThis project is licensed under the MIT License. See the `LICENSE <https://github.com/TheDAALab/binlearn/blob/main/LICENSE>`_ file for details.\n\n\n\n**Developed by TheDAALab** \n\n*A modern, type-safe binning framework for Python data science workflows.*\n\n.. image:: https://img.shields.io/badge/Powered%20by-Python-blue.svg\n    :alt: Powered by Python\n    :target: https://www.python.org/\n\n.. image:: https://img.shields.io/badge/Built%20with-NumPy-orange.svg\n    :alt: Built with NumPy\n    :target: https://numpy.org/\n\n.. image:: https://img.shields.io/badge/Compatible%20with-Pandas-green.svg\n    :alt: Compatible with Pandas\n    :target: https://pandas.pydata.org/\n\n.. image:: https://img.shields.io/badge/Integrates%20with-Scikit--learn-red.svg\n    :alt: Integrates with Scikit-learn\n    :target: https://scikit-learn.org/\n\n.. image:: https://img.shields.io/pypi/status/binlearn\n    :alt: Development Status\n    :target: https://pypi.org/project/binlearn/\n\n.. image:: https://img.shields.io/github/contributors/TheDAALab/binlearn\n    :alt: Contributors\n    :target: https://github.com/TheDAALab/binlearn/graphs/contributors\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive binning and discretization library for machine learning",
    "version": "1.0.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/TheDAALab/binlearn/issues",
        "Changelog": "https://github.com/TheDAALab/binlearn/blob/main/CHANGELOG.md",
        "Documentation": "https://binlearn.readthedocs.io/",
        "Homepage": "https://github.com/TheDAALab/binlearn",
        "Repository": "https://github.com/TheDAALab/binlearn.git"
    },
    "split_keywords": [
        "binning",
        " discretization",
        " binlearn",
        " data preprocessing",
        " machine learning",
        " data science",
        " feature engineering"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "02e8381631160bbb763f015ff879deac08fae2f1620b1269bda383526fc0b318",
                "md5": "8773c9d41cf4167fc6e6e9bbefa96a2e",
                "sha256": "8ed94b73f2bb34a54f7a7932134d080367013ee1048a71d05edb15a850458a04"
            },
            "downloads": -1,
            "filename": "binlearn-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8773c9d41cf4167fc6e6e9bbefa96a2e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 135932,
            "upload_time": "2025-08-10T18:24:45",
            "upload_time_iso_8601": "2025-08-10T18:24:45.488157Z",
            "url": "https://files.pythonhosted.org/packages/02/e8/381631160bbb763f015ff879deac08fae2f1620b1269bda383526fc0b318/binlearn-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aa215f33d8efbc91f92d45df95980cc862593971d30174d65fdcd63c110fdacb",
                "md5": "4b3b64d7ec1b7456b19602a97fe775a7",
                "sha256": "e567b9246ab6d4d0bd034d68922ba7ef570ddd8de112edb5481c23462bf306a6"
            },
            "downloads": -1,
            "filename": "binlearn-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "4b3b64d7ec1b7456b19602a97fe775a7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 6761925,
            "upload_time": "2025-08-10T18:24:47",
            "upload_time_iso_8601": "2025-08-10T18:24:47.143769Z",
            "url": "https://files.pythonhosted.org/packages/aa/21/5f33d8efbc91f92d45df95980cc862593971d30174d65fdcd63c110fdacb/binlearn-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-10 18:24:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "TheDAALab",
    "github_project": "binlearn",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "scipy",
            "specs": []
        },
        {
            "name": "kmeans1d",
            "specs": []
        },
        {
            "name": "scikit-learn",
            "specs": []
        }
    ],
    "lcname": "binlearn"
}
        
Elapsed time: 1.68863s