Skip to content

Commit

Permalink
Fix junit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
maurever committed Jan 10, 2025
1 parent 465c049 commit d19bd44
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 6 deletions.
1 change: 0 additions & 1 deletion h2o-algos/src/main/java/hex/knn/KNNModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ public String javaName() {
}

public int _k = 3;
//public KNNDistance _distance;
public DistanceType _distance;
public boolean _compute_metrics;

Expand Down
10 changes: 5 additions & 5 deletions h2o-algos/src/test/java/hex/knn/KNNTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void testIris() {
KNNModel.KNNParameters parms = new KNNModel.KNNParameters();
parms._train = fr._key;
parms._k = 3;
parms._distance = new EuclideanDistance();
parms._distance = DistanceType.EUCLIDEAN;
parms._response_column = response;
parms._id_column = idColumn;
parms._auc_type = MultinomialAucType.MACRO_OVR;
Expand Down Expand Up @@ -90,7 +90,7 @@ public void testSimpleFrameEuclidean() {
KNNModel.KNNParameters parms = new KNNModel.KNNParameters();
parms._train = fr._key;
parms._k = 2;
parms._distance = new EuclideanDistance();
parms._distance = DistanceType.EUCLIDEAN;
parms._response_column = response;
parms._id_column = idColumn;
parms._auc_type = MultinomialAucType.MACRO_OVR;
Expand Down Expand Up @@ -165,7 +165,7 @@ public void testSimpleFrameManhattan() {
KNNModel.KNNParameters parms = new KNNModel.KNNParameters();
parms._train = fr._key;
parms._k = 2;
parms._distance = new ManhattanDistance();
parms._distance = DistanceType.MANHATTAN;
parms._response_column = response;
parms._id_column = idColumn;
parms._auc_type = MultinomialAucType.MACRO_OVR;
Expand Down Expand Up @@ -240,7 +240,7 @@ public void testSimpleFrameCosine() {
KNNModel.KNNParameters parms = new KNNModel.KNNParameters();
parms._train = fr._key;
parms._k = 2;
parms._distance = new CosineDistance();
parms._distance = DistanceType.COSINE;
parms._response_column = response;
parms._id_column = idColumn;
parms._auc_type = MultinomialAucType.MACRO_OVR;
Expand Down Expand Up @@ -332,7 +332,7 @@ public void testIdColumnIsNotDefined() {
KNNModel.KNNParameters parms = new KNNModel.KNNParameters();
parms._train = fr._key;
parms._k = 2;
parms._distance = new EuclideanDistance();
parms._distance = DistanceType.EUCLIDEAN;
parms._response_column = "class";
parms._id_column = null;

Expand Down
1 change: 1 addition & 0 deletions h2o-py/tests/testdir_algos/knn/pyunit_knn_api_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ def knn_api_smoke():
train_h2o[response_column] = train_h2o[response_column].asfactor()
train_h2o[id_column] = h2o.H2OFrame(np.arange(0, train_h2o.shape[0]))


model = H2OKnnEstimator(
k=3,
id_column=id_column,
Expand Down
52 changes: 52 additions & 0 deletions h2o-py/tests/testdir_algos/knn/pyunit_knn_compare_sklearn.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import sys, os

sys.path.insert(1, os.path.join("..", "..", ".."))
import h2o
from tests import pyunit_utils, assert_equals
from h2o.estimators.knn import H2OKnnEstimator
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.neighbors import kneighbors_graph
import pandas as pd


def knn_sklearn_compare():
seed = 12345
id_column = "id"
response_column = "class"
x_names = ["sepal_len", "sepal_wid", "petal_len", "petal_wid"]

train = pd.read_csv(pyunit_utils.locate("smalldata/iris/iris_wheader.csv"))

knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(train[x_names], train[response_column])
print(knn)
knn_score = knn.score(train[x_names], train[response_column])
print(knn_score)

knn_graph = kneighbors_graph(train[x_names], 3, mode='connectivity', include_self=False, metric="euclidean")
print(knn_graph)

train_h2o = h2o.H2OFrame(train)
train_h2o[response_column] = train_h2o[response_column].asfactor()
train_h2o[id_column] = h2o.H2OFrame(np.arange(0, train_h2o.shape[0]))

h2o_knn = H2OKnnEstimator(
k=3,
id_column=id_column,
distance="euclidean",
seed=seed,
auc_type="macroovr"
)

h2o_knn.train(y=response_column, x=x_names, training_frame=train_h2o)
distances_key = h2o_knn._model_json["output"]["distances"]
print(distances_key)
distances_frame = h2o.get_frame(distances_key)
print(distances_frame)


if __name__ == "__main__":
pyunit_utils.standalone_test(knn_sklearn_compare)
else:
knn_sklearn_compare()

0 comments on commit d19bd44

Please sign in to comment.