Learning from Label Proportions (LLP) methods in Python
Project description
llp-learn
LLP-learn is a library that provides implementation of methods for Learning from Label Proportions.
Table of Contents
Installation
pip install llp-learn
Usage
import numpy as np
from sklearn.datasets import make_classification
from sklearn.metrics import classification_report
from llp_learn.dllp import DLLP
from llp_learn.model_selection import gridSearchCV
random = np.random.RandomState(42)
# Creating a syntetic dataset using sklearn
X, y = make_classification(n_features=2, n_redundant=0, n_informative=2, n_clusters_per_class=1, n_samples=1000, random_state=42)
# Generating 5 bags randomly
bags = random.randint(0, 5, size=X.shape[0])
# Creating the proportions
proportions = np.zeros(5)
for i in range(5):
bag_i = np.where(bags == i)[0]
proportions[i] = y[bag_i].sum() / len(bag_i)
# Labels must be -1 and 1
y[y == 0] = -1
# LLP model (DLLP)
llp_model = DLLP(lr=0.0001, n_epochs=1000, hidden_layer_sizes=(100, 100))
# Grid Search the lr parameter
gs = gridSearchCV(llp_model, param_grid={"lr": [0.1, 0.01, 0.001, 0.0001]}, cv=5, validation_size=0.5, n_jobs=-1, random_state=42)
# Train/test split
train_idx = random.choice(np.arange(X.shape[0]), size=int(X.shape[0] * 0.8), replace=False)
test_idx = np.setdiff1d(np.arange(X.shape[0]), train_idx)
# Fitting the model
gs.fit(X[train_idx], bags[train_idx], proportions)
# Predicting the labels of the test set
y_pred_test = gs.predict(X[test_idx])
# Reporting the performance of the model in the test set
print(classification_report(y[test_idx], y_pred_test))
License
llp-learn
is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
llp_learn-1.1.0.tar.gz
(16.6 kB
view hashes)
Built Distribution
llp_learn-1.1.0-py3-none-any.whl
(19.3 kB
view hashes)
Close
Hashes for llp_learn-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5008d1de969f6fa89bf72df09cab64d74db9d649c0f3af1336a82b0813429c7 |
|
MD5 | c4ca9c7fd8222c8b8cd038fc8c2949dc |
|
BLAKE2b-256 | 1ae2e6239e0269a965595eac46a6880f1376d2eeb1fced76c85ed30af6cfb0ea |