Add ScikitLearnRegressor; move sklean classes to their own file

This commit is contained in:
2021-04-01 07:54:14 -05:00
parent 820a6256c2
commit 59c734f2a1
8 changed files with 119 additions and 85 deletions

View File

@@ -4,37 +4,30 @@
import numpy as np
from numpy.testing import assert_array_equal
from sklearn.linear_model import LinearRegression
from sklearn.neighbors import KNeighborsClassifier
from miplearn import ScikitLearnClassifier
from miplearn.classifiers.sklearn import ScikitLearnClassifier, ScikitLearnRegressor
def test_constant_prediction():
x_train = np.array(
[
[0.0, 1.0],
[1.0, 0.0],
]
)
y_train = np.array(
[
[True, False],
[True, False],
]
)
clf = ScikitLearnClassifier(
KNeighborsClassifier(
n_neighbors=1,
)
)
x_train = np.array([[0.0, 1.0], [1.0, 0.0]])
y_train = np.array([[True, False], [True, False]])
clf = ScikitLearnClassifier(KNeighborsClassifier(n_neighbors=1))
clf.fit(x_train, y_train)
proba = clf.predict_proba(x_train)
assert_array_equal(
proba,
np.array(
[
[1.0, 0.0],
[1.0, 0.0],
]
),
np.array([[1.0, 0.0], [1.0, 0.0]]),
)
def test_regressor():
x_train = np.array([[0.0, 1.0], [1.0, 4.0], [2.0, 2.0]])
y_train = np.array([[1.0], [5.0], [4.0]])
x_test = np.array([[4.0, 4.0], [0.0, 0.0]])
clf = ScikitLearnRegressor(LinearRegression())
clf.fit(x_train, y_train)
y_test_actual = clf.predict(x_test)
y_test_expected = np.array([[8.0], [0.0]])
assert_array_equal(np.round(y_test_actual, 2), y_test_expected)