mirror of
https://github.com/IBM/ai-privacy-toolkit.git
synced 2026-04-24 20:36:21 +02:00
* Squashed commit of wrappers:
Wrapper minimizer
* apply dataset wrapper on minimizer
* apply changes on minimization notebook
* add black_box_access and unlimited_queries params
Dataset wrapper anonymizer
Add features_names to ArrayDataset
and allow providing features names in QI and Cat features not just indexes
update notebooks
categorical features and QI passed by indexes
dataset include feature names and is_pandas param
add pytorch Dataset
Remove redundant code.
Use data wrappers in model wrapper APIs.
add generic dataset components
Create initial version of wrappers for models
* Fix handling of categorical features
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
import pytest
|
|
|
|
from apt.utils.models import SklearnClassifier, SklearnRegressor, ModelOutputType
|
|
from apt.utils.datasets import ArrayDataset
|
|
from apt.utils import dataset_utils
|
|
|
|
from sklearn.tree import DecisionTreeRegressor
|
|
from sklearn.ensemble import RandomForestClassifier
|
|
|
|
|
|
def test_sklearn_classifier():
|
|
(x_train, y_train), (x_test, y_test) = dataset_utils.get_iris_dataset()
|
|
underlying_model = RandomForestClassifier()
|
|
model = SklearnClassifier(underlying_model, ModelOutputType.CLASSIFIER_VECTOR)
|
|
train = ArrayDataset(x_train, y_train)
|
|
test = ArrayDataset(x_test, y_test)
|
|
model.fit(train)
|
|
pred = model.predict(x_test)
|
|
assert(pred.shape[0] == x_test.shape[0])
|
|
|
|
score = model.score(test)
|
|
assert(0.0 <= score <= 1.0)
|
|
|
|
|
|
def test_sklearn_regressor():
|
|
(x_train, y_train), (x_test, y_test) = dataset_utils.get_diabetes_dataset()
|
|
underlying_model = DecisionTreeRegressor()
|
|
model = SklearnRegressor(underlying_model)
|
|
train = ArrayDataset(x_train, y_train)
|
|
test = ArrayDataset(x_test, y_test)
|
|
model.fit(train)
|
|
pred = model.predict(x_test)
|
|
assert (pred.shape[0] == x_test.shape[0])
|
|
|
|
score = model.score(test)
|