Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

About

Multi-instance machine learning in Python

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages