## skx
scikit-learn compatible extensions for supervised learning on tabular data.
## Documentation
See [docs.sk-x.org](https://docs.sk-x.org).
## Requirements
- Python >= 3.12
- scikit-learn ~= 1.7.0
- numpy >= 2.0, scipy >= 1.13, pandas >= 2.0
## Install
```bash
pip install skx
```
## Usage
### Augmentation functions
```python
import numpy as np
from skx.augmentation import gaussian_augment
X = np.array([[1, 2], [3, 4], [5, 6]])
y = np.array([1, 2, 3])
X_aug, y_aug, sample_weight = gaussian_augment(X, y, factor=2.0, y_std=0.1)
```
### Augmentation meta-estimators
```python
from sklearn.linear_model import LinearRegression
from skx.augmentation import GaussianAugmentedRegressor
reg = GaussianAugmentedRegressor(LinearRegression(), factor=10.0, y_std=0.1)
reg.fit(X, y)
pred = reg.predict([[2, 3]])
```
### Ensembles
```python
from sklearn.linear_model import LinearRegression
from skx.ensemble import MixtureOfExpertsRegressor
moe = MixtureOfExpertsRegressor(
estimator=LinearRegression(), n_estimators=5, split="kmeans", n_clusters=3
)
moe.fit(X, y)
pred = moe.predict(X)
```
### Neural network
```python
from skx.neural_network import LinearScalingMLPRegressor
mlp = LinearScalingMLPRegressor(
n_hidden_layers=2,
hidden_layer_width=50,
shrink_factor=0.5,
max_iter=100,
)
mlp.fit(X, np.column_stack([y, y])) # multi-output example
```
Raw data
{
"_id": null,
"home_page": null,
"name": "skx",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "scikit-learn, augmentation, resampling, smote, ensemble, voting, mixture-of-experts, mlp, neural-network, multi-output",
"author": null,
"author_email": "skx <hi@sk-x.org>",
"download_url": null,
"platform": null,
"description": "## skx\n\nscikit-learn compatible extensions for supervised learning on tabular data.\n\n## Documentation\n\nSee [docs.sk-x.org](https://docs.sk-x.org).\n\n## Requirements\n\n- Python >= 3.12\n- scikit-learn ~= 1.7.0\n- numpy >= 2.0, scipy >= 1.13, pandas >= 2.0\n\n## Install\n\n```bash\npip install skx\n```\n\n## Usage\n\n### Augmentation functions\n\n```python\nimport numpy as np\nfrom skx.augmentation import gaussian_augment\n\nX = np.array([[1, 2], [3, 4], [5, 6]])\ny = np.array([1, 2, 3])\nX_aug, y_aug, sample_weight = gaussian_augment(X, y, factor=2.0, y_std=0.1)\n```\n\n### Augmentation meta-estimators\n\n```python\nfrom sklearn.linear_model import LinearRegression\nfrom skx.augmentation import GaussianAugmentedRegressor\n\nreg = GaussianAugmentedRegressor(LinearRegression(), factor=10.0, y_std=0.1)\nreg.fit(X, y)\npred = reg.predict([[2, 3]])\n```\n\n### Ensembles\n\n```python\nfrom sklearn.linear_model import LinearRegression\nfrom skx.ensemble import MixtureOfExpertsRegressor\n\nmoe = MixtureOfExpertsRegressor(\n estimator=LinearRegression(), n_estimators=5, split=\"kmeans\", n_clusters=3\n)\nmoe.fit(X, y)\npred = moe.predict(X)\n```\n\n### Neural network\n\n```python\nfrom skx.neural_network import LinearScalingMLPRegressor\n\nmlp = LinearScalingMLPRegressor(\n n_hidden_layers=2,\n hidden_layer_width=50,\n shrink_factor=0.5,\n max_iter=100,\n)\nmlp.fit(X, np.column_stack([y, y])) # multi-output example\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "scikit-learn compatible extensions.",
"version": "0.0.7",
"project_urls": {
"documentation": "https://docs.sk-x.org",
"homepage": "https://pypi.org/project/skx"
},
"split_keywords": [
"scikit-learn",
" augmentation",
" resampling",
" smote",
" ensemble",
" voting",
" mixture-of-experts",
" mlp",
" neural-network",
" multi-output"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "72285cd890354df5beb4841c87034a6545c10ef6ae0cf1112ba1528a5e180a4e",
"md5": "debb049f1791d4430fa995a2554f5b1b",
"sha256": "d21a4c406f596c34d09e82cd6c6bc8bb9c99b9f8efaa44d74745bf874f8fe648"
},
"downloads": -1,
"filename": "skx-0.0.7-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "debb049f1791d4430fa995a2554f5b1b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.12",
"size": 355340,
"upload_time": "2025-10-29T16:52:04",
"upload_time_iso_8601": "2025-10-29T16:52:04.582022Z",
"url": "https://files.pythonhosted.org/packages/72/28/5cd890354df5beb4841c87034a6545c10ef6ae0cf1112ba1528a5e180a4e/skx-0.0.7-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b0a8050890504bcc99c49ca306d28b5c0624a441550c07f0787befd34ecc3dcc",
"md5": "b16a978afeae3d44e14ce7e0398ebd67",
"sha256": "2b942537b4adea477a3fd0b1733fbdbece1d4cd6a99331451db95b5b0029b0e3"
},
"downloads": -1,
"filename": "skx-0.0.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "b16a978afeae3d44e14ce7e0398ebd67",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.12",
"size": 508518,
"upload_time": "2025-10-29T16:52:05",
"upload_time_iso_8601": "2025-10-29T16:52:05.903289Z",
"url": "https://files.pythonhosted.org/packages/b0/a8/050890504bcc99c49ca306d28b5c0624a441550c07f0787befd34ecc3dcc/skx-0.0.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fa1891bf204958bca4b379584e4e433e64b34364bc7f9a5fe9cfb08e40245e4b",
"md5": "d2de71a42b0aa21b39e639ff3d782a64",
"sha256": "3d75592e62903d25336caffaa36462b597c6eaf210af5165ea75ccf73b8558be"
},
"downloads": -1,
"filename": "skx-0.0.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "d2de71a42b0aa21b39e639ff3d782a64",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.12",
"size": 570795,
"upload_time": "2025-10-29T16:52:07",
"upload_time_iso_8601": "2025-10-29T16:52:07.418652Z",
"url": "https://files.pythonhosted.org/packages/fa/18/91bf204958bca4b379584e4e433e64b34364bc7f9a5fe9cfb08e40245e4b/skx-0.0.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9784214adab2e50fc9058a7aa44b78f07a71186b30c0b21e2f5293c954196286",
"md5": "36f9f045ab6e8a10db0557f155ee3917",
"sha256": "af811cc73bc6a4a4e54f718492c0fdf2d5f2e7b0e69e7f8d19980c2a9a419d06"
},
"downloads": -1,
"filename": "skx-0.0.7-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "36f9f045ab6e8a10db0557f155ee3917",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.12",
"size": 312220,
"upload_time": "2025-10-29T16:52:08",
"upload_time_iso_8601": "2025-10-29T16:52:08.987872Z",
"url": "https://files.pythonhosted.org/packages/97/84/214adab2e50fc9058a7aa44b78f07a71186b30c0b21e2f5293c954196286/skx-0.0.7-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6877acab19eeb17150de3731465e4bb216b4795e158868716173929f3cfa3c27",
"md5": "f7049fef5adebb5a33168c11b4b44d0f",
"sha256": "479b6f62f0ff68c956af15f8bf9c362789789e5abb9942c50655711e4d3ed0f2"
},
"downloads": -1,
"filename": "skx-0.0.7-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f7049fef5adebb5a33168c11b4b44d0f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.12",
"size": 357853,
"upload_time": "2025-10-29T16:52:10",
"upload_time_iso_8601": "2025-10-29T16:52:10.126369Z",
"url": "https://files.pythonhosted.org/packages/68/77/acab19eeb17150de3731465e4bb216b4795e158868716173929f3cfa3c27/skx-0.0.7-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "511d7c494f09e8e5a1ee284d4d40e301c32ae25d3264b646baea1fb75ea1c467",
"md5": "7d52352e4cd3d6a919d23fa311f23af4",
"sha256": "d3aad9d0311888448c8dca7ec3fc9e54b3d2d9f4bebb573bb965eb59f1b735bb"
},
"downloads": -1,
"filename": "skx-0.0.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "7d52352e4cd3d6a919d23fa311f23af4",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.12",
"size": 510974,
"upload_time": "2025-10-29T16:52:11",
"upload_time_iso_8601": "2025-10-29T16:52:11.746288Z",
"url": "https://files.pythonhosted.org/packages/51/1d/7c494f09e8e5a1ee284d4d40e301c32ae25d3264b646baea1fb75ea1c467/skx-0.0.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "eeedae03c96eb286f825a96cb6f201325254f3d0e1e7b28ca671d53809622e7b",
"md5": "1c69660f4086b2e7bdc4dddba96993e9",
"sha256": "048bd17e5fbe4c9dea68457b5e1655ef6bc9dbbb54892fe9eb1d5ca0ee1b95be"
},
"downloads": -1,
"filename": "skx-0.0.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "1c69660f4086b2e7bdc4dddba96993e9",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.12",
"size": 569991,
"upload_time": "2025-10-29T16:52:13",
"upload_time_iso_8601": "2025-10-29T16:52:13.292711Z",
"url": "https://files.pythonhosted.org/packages/ee/ed/ae03c96eb286f825a96cb6f201325254f3d0e1e7b28ca671d53809622e7b/skx-0.0.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "66d977ba17c105dbeba948b48844554589d4fca5a72d2a54345df16ea117b328",
"md5": "3e9ca7c2326b9772465df98b0974c32a",
"sha256": "778d646422d118dceba13b885bde3d7fc3373210657919d7bb603d7856588400"
},
"downloads": -1,
"filename": "skx-0.0.7-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "3e9ca7c2326b9772465df98b0974c32a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.12",
"size": 310997,
"upload_time": "2025-10-29T16:52:14",
"upload_time_iso_8601": "2025-10-29T16:52:14.908065Z",
"url": "https://files.pythonhosted.org/packages/66/d9/77ba17c105dbeba948b48844554589d4fca5a72d2a54345df16ea117b328/skx-0.0.7-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0f1f505066399e6d0cb7741c553ceab62ccb8480207117fbbe2dedb5bd5ba607",
"md5": "0200b40bb7ff455793ebf8eefb5c9fba",
"sha256": "703f0b5847142eaa1b9fde99dd561f6d676ffa2e5cf92ca6d858eda3bceb0e5c"
},
"downloads": -1,
"filename": "skx-0.0.7-cp314-cp314-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "0200b40bb7ff455793ebf8eefb5c9fba",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.12",
"size": 359959,
"upload_time": "2025-10-29T16:52:17",
"upload_time_iso_8601": "2025-10-29T16:52:17.096821Z",
"url": "https://files.pythonhosted.org/packages/0f/1f/505066399e6d0cb7741c553ceab62ccb8480207117fbbe2dedb5bd5ba607/skx-0.0.7-cp314-cp314-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7bf6bc76e8080cdec14befe42c9a3cf8117b276619f3846e7cc2a7f686fad687",
"md5": "32b25cdd41f416a26808ca2a934f2f95",
"sha256": "74e3f0f9490792a2ecd1fa894eed49643e2a8e9b7e192a7cdcb13d81945d26d8"
},
"downloads": -1,
"filename": "skx-0.0.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "32b25cdd41f416a26808ca2a934f2f95",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.12",
"size": 522251,
"upload_time": "2025-10-29T16:52:18",
"upload_time_iso_8601": "2025-10-29T16:52:18.770838Z",
"url": "https://files.pythonhosted.org/packages/7b/f6/bc76e8080cdec14befe42c9a3cf8117b276619f3846e7cc2a7f686fad687/skx-0.0.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d630d5e780203eeeedad46d4b6e51367da51c1bf786fcfdef9b141c57f9ce75e",
"md5": "5701edd2e15527983055dd37502f4187",
"sha256": "f5800de5229fdbf420c7fce796f76c3f73514527964039bc429a4ce8b2363252"
},
"downloads": -1,
"filename": "skx-0.0.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "5701edd2e15527983055dd37502f4187",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.12",
"size": 570629,
"upload_time": "2025-10-29T16:52:20",
"upload_time_iso_8601": "2025-10-29T16:52:20.316256Z",
"url": "https://files.pythonhosted.org/packages/d6/30/d5e780203eeeedad46d4b6e51367da51c1bf786fcfdef9b141c57f9ce75e/skx-0.0.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "364c02a602994cf9428a5cb19f5946d8354c671cd32e80fb6e145915c6bcfadc",
"md5": "4473a5a0ddc427a4236ed534cd75ccdb",
"sha256": "2b1e153931094df034f55b36984d62c04f4f79548d1febdadff6586305db485f"
},
"downloads": -1,
"filename": "skx-0.0.7-cp314-cp314-win_amd64.whl",
"has_sig": false,
"md5_digest": "4473a5a0ddc427a4236ed534cd75ccdb",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.12",
"size": 308862,
"upload_time": "2025-10-29T16:52:21",
"upload_time_iso_8601": "2025-10-29T16:52:21.752238Z",
"url": "https://files.pythonhosted.org/packages/36/4c/02a602994cf9428a5cb19f5946d8354c671cd32e80fb6e145915c6bcfadc/skx-0.0.7-cp314-cp314-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-29 16:52:04",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "skx"
}