Skip to content

Commit

Permalink
fix: fix the docs link for metrics.pairwise
Browse files Browse the repository at this point in the history
  • Loading branch information
ashleyxuu committed Feb 28, 2024
1 parent 350499b commit 695a16a
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 0 deletions.
16 changes: 16 additions & 0 deletions bigframes/ml/metrics/pairwise.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,19 @@ def paired_manhattan_distance(
paired_manhattan_distance.__doc__ = inspect.getdoc(
vendored_metrics_pairwise.paired_manhattan_distance
)


def paired_euclidean_distances(
X: Union[bpd.DataFrame, bpd.Series], Y: Union[bpd.DataFrame, bpd.Series]
) -> bpd.DataFrame:
X, Y = utils.convert_to_dataframe(X, Y)
if len(X.columns) != 1 or len(Y.columns) != 1:
raise ValueError("Inputs X and Y can only contain 1 column.")

base_bqml = core.BaseBqml(session=X._session)
return base_bqml.distance(X, Y, type="EUCLIDEAN", name="euclidean_distance")


paired_euclidean_distances.__doc__ = inspect.getdoc(
vendored_metrics_pairwise.paired_euclidean_distances
)
7 changes: 7 additions & 0 deletions docs/reference/bigframes.ml/metrics.pairwise.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
bigframes.ml.metrics.pairwise
=============================

.. automodule:: bigframes.ml.metrics.pairwise
:members:
:inherited-members:
:undoc-members:
16 changes: 16 additions & 0 deletions tests/system/small/ml/test_metrics_pairwise.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,19 @@ def test_paired_manhattan_distance():
pd.testing.assert_frame_equal(
result.to_pandas(), expected_pd_df, check_dtype=False, check_index_type=False
)


def test_paired_euclidean_distances():
x_col = [np.array([4.1, 0.5, 1.0])]
y_col = [np.array([3.0, 0.0, 2.5])]
X = bpd.read_pandas(pd.DataFrame({"X": x_col}))
Y = bpd.read_pandas(pd.DataFrame({"Y": y_col}))

result = metrics.pairwise.paired_euclidean_distances(X, Y)
expected_pd_df = pd.DataFrame(
{"X": x_col, "Y": y_col, "euclidean_distance": [1.926136]}
)

pd.testing.assert_frame_equal(
result.to_pandas(), expected_pd_df, check_dtype=False, check_index_type=False
)
15 changes: 15 additions & 0 deletions third_party/bigframes_vendored/sklearn/metrics/pairwise.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,18 @@ def paired_manhattan_distance(X, Y) -> bpd.DataFrame:
bigframes.dataframe.DataFrame: DataFrame with columns of X, Y and manhattan_distance
"""
raise NotImplementedError(constants.ABSTRACT_METHOD_ERROR_MESSAGE)


def paired_euclidean_distances(X, Y) -> bpd.DataFrame:
"""Compute the paired euclidean distances between X and Y.
Args:
X (Series or single column DataFrame of array of numeric type):
Input data.
Y (Series or single column DataFrame of array of numeric type):
Input data. X and Y are mapped by indexes, must have the same index.
Returns:
bigframes.dataframe.DataFrame: DataFrame with columns of X, Y and euclidean_distance
"""
raise NotImplementedError(constants.ABSTRACT_METHOD_ERROR_MESSAGE)

0 comments on commit 695a16a

Please sign in to comment.