Skip to main content

sklplus

中文文档 · 中文项目页 · Wiki

sklplus 0.1.2 is a thin umbrella around scikit-learn-style tabular estimators. Most symbols are re-exports (often the same object as upstream). A few adapters and custom preprocessors fill gaps we care about when building Pipelines by hand.

It is for people who want from sklplus.… import … and standard fit / transform / predict composition. It is not AutoML: there is no get_model, no setup(), and no string-ID model factory.

Fits: classification, regression, clustering, and anomaly detection on tabular data, with preprocess / sampling / selection / search / metrics helpers re-exported under sklearn-like paths.

Does not fit (v0.1): time-series or NLP specialist modules. If you need PyCaret-style experiment sessions, use something else.

Requirements

  • Python >=3.10
  • scikit-learn>=1.3
  • Default install also pulls: numpy, pandas, scipy, joblib, xgboost, lightgbm, catboost, imbalanced-learn, pyod, kmodes, category-encoders, feature-engine

Install

PyPI / import / GitHub repo name: sklplus (https://github.com/IncubatorShokuhou/sklplus).

pip install sklplus

From a clone (editable, with test tools):

pip install -e ".[dev]"

[dev] adds pytest>=7 and ruff.

Minimal usage

from sklplus.linear_model import LogisticRegression, Ridge
from sklplus.ensemble import RandomForestClassifier, XGBClassifier
from sklplus.preprocessing import (
    StandardScaler,
    CleanColumnNames,
    RareCategoryGrouper,
    DateFeatureExtractor,
    TargetLabelEncoder,
)
from sklplus.sampling import SMOTE
from sklplus.anomaly import IForest
from sklplus.pipeline import Pipeline, ImbPipeline
from sklplus.compose import ColumnTransformer

Re-exports aim to be identity with upstream when possible, e.g. sklplus.ensemble.RandomForestClassifier is sklearn.ensemble.RandomForestClassifier.

Boosting import paths

XGBClassifier / LGBMClassifier / CatBoostClassifier (and the regressors) are exported from both sklplus.ensemble and sklplus.xgboost / lightgbm / catboost. They are the same class object:

from sklplus.ensemble import XGBClassifier as A
from sklplus.xgboost import XGBClassifier as B
assert A is B

Task hubs and ensemble technique slices

sklearn-style modules (linear_model, ensemble, xgboost, …) stay put. Two extra hubs re-export the same objects by task:

from sklplus.classification import LogisticRegression, XGBClassifier
from sklplus.regression import Ridge, XGBRegressor
from sklplus.linear_model import LogisticRegression as LM
from sklplus.xgboost import XGBClassifier as XGB
assert LogisticRegression is LM
assert XGBClassifier is XGB

sklplus.ensemble is still the full umbrella. Technique submodules are slices, not moves:

  • sklplus.ensemble.bagging — BaggingClassifier / BaggingRegressor only (RF / ExtraTrees stay on the umbrella)
  • sklplus.ensemble.boosting — AdaBoost, GradientBoosting, XGB, LGBM, CatBoost
  • sklplus.ensemble.stacking — StackingClassifier / StackingRegressor
  • sklplus.ensemble.voting — VotingClassifier / VotingRegressor
from sklplus.ensemble.boosting import XGBClassifier as A
from sklplus.xgboost import XGBClassifier as B
from sklplus.ensemble import XGBClassifier as C
assert A is B is C

There is no top-level sklplus.stacking, and no get_model / factory.

Resampling and pipeline checks

Use ImbPipeline when a step calls fit_resample (e.g. SMOTE, RemoveOutliers).

sklplus.pipeline.Pipeline is a thin subclass of sklearn's Pipeline, so sklplus.pipeline.Pipeline is sklearn.pipeline.Pipeline is False. Construction defaults to check_conflicts=True. make_pipeline builds this wrapper. Disable with check_conflicts=False, or call validate_pipeline_steps(steps, *, kind) directly.

Examples

Scripts under examples/:

Script Content
01_classification_pipeline.py Pipeline + scaler + RF
02_imbalanced_imbpipeline.py ImbPipeline + SMOTE + logistic
03_boosting_dual_path.py Dual-path identity + small XGB fit
04_preprocessing_p0.py P0 custom transformers on a DataFrame
05_anomaly_iforest.py Scaler + IForest
06_pipeline_conflicts.py Pipeline conflict checks: errors and warnings
python examples/01_classification_pipeline.py

Custom preprocessors in 0.1.2

These live in sklplus.preprocessing (alongside re-exported scalers/encoders):

P0

  • CleanColumnNames
  • DateFeatureExtractor
  • RareCategoryGrouper
  • TargetLabelEncoder

P1

  • GroupFeatures — row-wise aggregates over named column groups
  • RemoveMulticollinearity — drop highly correlated numeric features (optional prefer-by-y)
  • IterativeImputerPlus — IterativeImputer for numeric + most-frequent for categoricals
  • TextEmbedder — BoW / TF-IDF on text columns, concatenated back

Sampling (not preprocessing): RemoveOutliers in sklplus.sampling is an imblearn-style sampler (fit_resample) for train-only outlier row drops — use with ImbPipeline.

Anomaly detectors under sklplus.anomaly are thin wrappers around pyod (IForest, LOF, …) so they can sit in a sklearn Pipeline.

Known gaps

Still open: Optuna/skopt search wrappers; broader check_estimator coverage. P1 custom preprocessors / RemoveOutliers sampler are implemented. Pipeline conflict checks and classification/regression task hubs are in.

License: MIT (see LICENSE).

Contributing: see CONTRIBUTING.md.

Metadata

Release files for sklplus 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sklplus 0.1.2
File Size Uploaded Provenance Actions
sklplus-0.1.2.tar.gz 39.9 kB With provenance Details for sklplus-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for sklplus 0.1.2
File Interpreter ABI Platform Actions
sklplus-0.1.2-py3-none-any.whl Python 3 none any Details for sklplus-0.1.2-py3-none-any.whl

Total release size: 73.0 kB

Release files / sklplus-0.1.2.tar.gz

Download URL sklplus-0.1.2.tar.gz
Size 39.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e16684bd250b2a7817afda8f3e3e08a7e0de0fbf301feca74eb82a977c6d3602
BLAKE2b-256 checksum
How to use checksums
e8c72697a55e3bec343b0dfcf31ec3b5c4719667bb6ad9f8b46aa4307d868064
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / sklplus-0.1.2-py3-none-any.whl

Download URL sklplus-0.1.2-py3-none-any.whl
Size 33.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc628842885d039b4ec277415071e31e9271e462261815b3c811fae9b22cb801
BLAKE2b-256 checksum
How to use checksums
c417a3e068fa69b929dbae241dd588691e35ea1e759ac4e82150e82c4c33a1b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Security for sklplus 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for sklplus-0.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page