milearn: Multi-instance machine learning in Python
milearn is designed to mimic the scikit-learn interface to simplify its usage and integration with other tools.
Key Features
Traditional and neural network-based MIL algorithms (regression and classification)
Integrated stepwise model hyperparameter optimization (recommended for small datasets)
Installation
pip install mikit-learn
Quick Start
from milearn.data.mnist import load_mnist, create_bags_reg
from milearn.preprocessing import BagMinMaxScaler
from sklearn.model_selection import train_test_split
from milearn.network.module.hopt import DEFAULT_PARAM_GRID
from milearn.network.regressor import DynamicPoolingNetworkRegressor
# 1. Create MNIST regression dataset
data, targets = load_mnist()
bags, labels, key = create_bags_reg(data, targets, bag_size=10, num_bags=10000,
bag_agg="mean", random_state=42)
# 2. Train/test split and scale features
x_train, x_test, y_train, y_test, key_train, key_test = train_test_split(bags, labels, key,
random_state=42)
scaler = BagMinMaxScaler()
scaler.fit(x_train)
x_train_scaled = scaler.transform(x_train)
x_test_scaled = scaler.transform(x_test)
# 3. Train model
model = DynamicPoolingNetworkRegressor()
model.hopt(x_train_scaled, y_train, # recommended for small datasets only
param_grid=DEFAULT_PARAM_GRID, verbose=True)
model.fit(x_train_scaled, y_train)
# 4. Get predictions
y_pred = model.predict(x_test_scaled) # predicted labels
w_pred = model.get_instance_weights(x_test_scaled) # predicted instance weights
Tutorials
Several examples of the milearn application to the classification/regression problem and key instance detection for the MNIST dataset can be found in tutorial collection .
Paper
Application cases demonstrated in the paper can be found in:
Metadata
Release files for mikit-learn 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mikit_learn-1.0.3.tar.gz | 20.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mikit_learn-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 47.1 kB
Release files / mikit_learn-1.0.3.tar.gz
| Download URL | mikit_learn-1.0.3.tar.gz |
|---|---|
| Size | 20.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
501d8da4692b84ca688d7e35b5e278a08b28fbcee4563f69fce84f0ab157ca26
|
|
BLAKE2b-256 checksum How to use checksums |
277d43345d7e540596213b21f6bcb7515bc0d3e940653e11dd74ae60df88c16a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|
Release files / mikit_learn-1.0.3-py3-none-any.whl
| Download URL | mikit_learn-1.0.3-py3-none-any.whl |
|---|---|
| Size | 26.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0752232280a1d9964f899e63265ece4ca3cb50407c51521201e4f2630aa1cd84
|
|
BLAKE2b-256 checksum How to use checksums |
4935abda51b28a376627038cae62a980c4be6212c9dcda269e09d3913366c3f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|