Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit ed8876d

Browse files
authoredNov 21, 2023
feat: add the recent api method for ML component (#225)
* feat: add the recent api method for ML component
1 parent 1d14771 commit ed8876d

11 files changed

+34
-1
lines changed
 

‎bigframes/ml/cluster.py

+2
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@
2222
from google.cloud import bigquery
2323

2424
import bigframes
25+
from bigframes.core import log_adapter
2526
from bigframes.ml import base, core, globals, utils
2627
import bigframes.pandas as bpd
2728
import third_party.bigframes_vendored.sklearn.cluster._kmeans
2829

2930

31+
@log_adapter.class_logger
3032
class KMeans(
3133
base.UnsupervisedTrainablePredictor,
3234
third_party.bigframes_vendored.sklearn.cluster._kmeans.KMeans,

‎bigframes/ml/compose.py

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from typing import List, Optional, Tuple, Union
2323

2424
from bigframes import constants
25+
from bigframes.core import log_adapter
2526
from bigframes.ml import base, core, globals, preprocessing, utils
2627
import bigframes.pandas as bpd
2728
import third_party.bigframes_vendored.sklearn.compose._column_transformer
@@ -36,6 +37,7 @@
3637
]
3738

3839

40+
@log_adapter.class_logger
3941
class ColumnTransformer(
4042
base.Transformer,
4143
third_party.bigframes_vendored.sklearn.compose._column_transformer.ColumnTransformer,

‎bigframes/ml/decomposition.py

+2
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@
2222
from google.cloud import bigquery
2323

2424
import bigframes
25+
from bigframes.core import log_adapter
2526
from bigframes.ml import base, core, globals, utils
2627
import bigframes.pandas as bpd
2728
import third_party.bigframes_vendored.sklearn.decomposition._pca
2829

2930

31+
@log_adapter.class_logger
3032
class PCA(
3133
base.UnsupervisedTrainablePredictor,
3234
third_party.bigframes_vendored.sklearn.decomposition._pca.PCA,

‎bigframes/ml/ensemble.py

+5
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from google.cloud import bigquery
2323

2424
import bigframes
25+
from bigframes.core import log_adapter
2526
from bigframes.ml import base, core, globals, utils
2627
import bigframes.pandas as bpd
2728
import third_party.bigframes_vendored.sklearn.ensemble._forest
@@ -47,6 +48,7 @@
4748
}
4849

4950

51+
@log_adapter.class_logger
5052
class XGBRegressor(
5153
base.SupervisedTrainablePredictor,
5254
third_party.bigframes_vendored.xgboost.sklearn.XGBRegressor,
@@ -202,6 +204,7 @@ def to_gbq(self, model_name: str, replace: bool = False) -> XGBRegressor:
202204
return new_model.session.read_gbq_model(model_name)
203205

204206

207+
@log_adapter.class_logger
205208
class XGBClassifier(
206209
base.SupervisedTrainablePredictor,
207210
third_party.bigframes_vendored.xgboost.sklearn.XGBClassifier,
@@ -356,6 +359,7 @@ def to_gbq(self, model_name: str, replace: bool = False) -> XGBClassifier:
356359
return new_model.session.read_gbq_model(model_name)
357360

358361

362+
@log_adapter.class_logger
359363
class RandomForestRegressor(
360364
base.SupervisedTrainablePredictor,
361365
third_party.bigframes_vendored.sklearn.ensemble._forest.RandomForestRegressor,
@@ -521,6 +525,7 @@ def to_gbq(self, model_name: str, replace: bool = False) -> RandomForestRegresso
521525
return new_model.session.read_gbq_model(model_name)
522526

523527

528+
@log_adapter.class_logger
524529
class RandomForestClassifier(
525530
base.SupervisedTrainablePredictor,
526531
third_party.bigframes_vendored.sklearn.ensemble._forest.RandomForestClassifier,

‎bigframes/ml/forecasting.py

+2
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
from google.cloud import bigquery
2222

2323
import bigframes
24+
from bigframes.core import log_adapter
2425
from bigframes.ml import base, core, globals, utils
2526
import bigframes.pandas as bpd
2627

2728

29+
@log_adapter.class_logger
2830
class ARIMAPlus(base.SupervisedTrainablePredictor):
2931
"""Time Series ARIMA Plus model."""
3032

‎bigframes/ml/imported.py

+3
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
from google.cloud import bigquery
2222

2323
import bigframes
24+
from bigframes.core import log_adapter
2425
from bigframes.ml import base, core, globals, utils
2526
import bigframes.pandas as bpd
2627

2728

29+
@log_adapter.class_logger
2830
class TensorFlowModel(base.Predictor):
2931
"""Imported TensorFlow model.
3032
@@ -101,6 +103,7 @@ def to_gbq(self, model_name: str, replace: bool = False) -> TensorFlowModel:
101103
return new_model.session.read_gbq_model(model_name)
102104

103105

106+
@log_adapter.class_logger
104107
class ONNXModel(base.Predictor):
105108
"""Imported Open Neural Network Exchange (ONNX) model.
106109

‎bigframes/ml/linear_model.py

+3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import bigframes
2525
import bigframes.constants as constants
26+
from bigframes.core import log_adapter
2627
from bigframes.ml import base, core, globals, utils
2728
import bigframes.pandas as bpd
2829
import third_party.bigframes_vendored.sklearn.linear_model._base
@@ -46,6 +47,7 @@
4647
}
4748

4849

50+
@log_adapter.class_logger
4951
class LinearRegression(
5052
base.SupervisedTrainablePredictor,
5153
third_party.bigframes_vendored.sklearn.linear_model._base.LinearRegression,
@@ -178,6 +180,7 @@ def to_gbq(self, model_name: str, replace: bool = False) -> LinearRegression:
178180
return new_model.session.read_gbq_model(model_name)
179181

180182

183+
@log_adapter.class_logger
181184
class LogisticRegression(
182185
base.SupervisedTrainablePredictor,
183186
third_party.bigframes_vendored.sklearn.linear_model._logistic.LogisticRegression,

‎bigframes/ml/llm.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
import bigframes
2323
from bigframes import clients, constants
24-
from bigframes.core import blocks
24+
from bigframes.core import blocks, log_adapter
2525
from bigframes.ml import base, core, globals, utils
2626
import bigframes.pandas as bpd
2727

@@ -43,6 +43,7 @@
4343
_ML_EMBED_TEXT_STATUS = "ml_embed_text_status"
4444

4545

46+
@log_adapter.class_logger
4647
class PaLM2TextGenerator(base.Predictor):
4748
"""PaLM2 text generator LLM model.
4849
@@ -200,6 +201,7 @@ def predict(
200201
return df
201202

202203

204+
@log_adapter.class_logger
203205
class PaLM2TextEmbeddingGenerator(base.Predictor):
204206
"""PaLM2 text embedding generator LLM model.
205207

‎bigframes/ml/pipeline.py

+2
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@
2424

2525
import bigframes
2626
import bigframes.constants as constants
27+
from bigframes.core import log_adapter
2728
from bigframes.ml import base, compose, forecasting, loader, preprocessing, utils
2829
import bigframes.pandas as bpd
2930
import third_party.bigframes_vendored.sklearn.pipeline
3031

3132

33+
@log_adapter.class_logger
3234
class Pipeline(
3335
base.BaseEstimator,
3436
third_party.bigframes_vendored.sklearn.pipeline.Pipeline,

‎bigframes/ml/preprocessing.py

+7
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import typing
2121
from typing import Any, cast, List, Literal, Optional, Tuple, Union
2222

23+
from bigframes.core import log_adapter
2324
from bigframes.ml import base, core, globals, utils
2425
import bigframes.pandas as bpd
2526
import third_party.bigframes_vendored.sklearn.preprocessing._data
@@ -28,6 +29,7 @@
2829
import third_party.bigframes_vendored.sklearn.preprocessing._label
2930

3031

32+
@log_adapter.class_logger
3133
class StandardScaler(
3234
base.Transformer,
3335
third_party.bigframes_vendored.sklearn.preprocessing._data.StandardScaler,
@@ -111,6 +113,7 @@ def transform(self, X: Union[bpd.DataFrame, bpd.Series]) -> bpd.DataFrame:
111113
)
112114

113115

116+
@log_adapter.class_logger
114117
class MaxAbsScaler(
115118
base.Transformer,
116119
third_party.bigframes_vendored.sklearn.preprocessing._data.MaxAbsScaler,
@@ -194,6 +197,7 @@ def transform(self, X: Union[bpd.DataFrame, bpd.Series]) -> bpd.DataFrame:
194197
)
195198

196199

200+
@log_adapter.class_logger
197201
class MinMaxScaler(
198202
base.Transformer,
199203
third_party.bigframes_vendored.sklearn.preprocessing._data.MinMaxScaler,
@@ -277,6 +281,7 @@ def transform(self, X: Union[bpd.DataFrame, bpd.Series]) -> bpd.DataFrame:
277281
)
278282

279283

284+
@log_adapter.class_logger
280285
class KBinsDiscretizer(
281286
base.Transformer,
282287
third_party.bigframes_vendored.sklearn.preprocessing._discretization.KBinsDiscretizer,
@@ -395,6 +400,7 @@ def transform(self, X: Union[bpd.DataFrame, bpd.Series]) -> bpd.DataFrame:
395400
)
396401

397402

403+
@log_adapter.class_logger
398404
class OneHotEncoder(
399405
base.Transformer,
400406
third_party.bigframes_vendored.sklearn.preprocessing._encoder.OneHotEncoder,
@@ -524,6 +530,7 @@ def transform(self, X: Union[bpd.DataFrame, bpd.Series]) -> bpd.DataFrame:
524530
)
525531

526532

533+
@log_adapter.class_logger
527534
class LabelEncoder(
528535
base.LabelTransformer,
529536
third_party.bigframes_vendored.sklearn.preprocessing._label.LabelEncoder,

‎tests/unit/session/test_io_bigquery.py

+3
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ def test_create_job_configs_labels_length_limit_not_met():
5959

6060

6161
def test_create_job_configs_labels_log_adaptor_call_method_under_length_limit():
62+
log_adapter.get_and_reset_api_methods()
6263
cur_labels = {
6364
"bigframes-api": "read_pandas",
6465
"source": "bigquery-dataframes-temp",
@@ -87,6 +88,7 @@ def test_create_job_configs_labels_log_adaptor_call_method_under_length_limit():
8788

8889

8990
def test_create_job_configs_labels_length_limit_met_and_labels_is_none():
91+
log_adapter.get_and_reset_api_methods()
9092
df = bpd.DataFrame({"col1": [1, 2], "col2": [3, 4]})
9193
# Test running methods more than the labels' length limit
9294
for i in range(66):
@@ -102,6 +104,7 @@ def test_create_job_configs_labels_length_limit_met_and_labels_is_none():
102104

103105

104106
def test_create_job_configs_labels_length_limit_met():
107+
log_adapter.get_and_reset_api_methods()
105108
cur_labels = {
106109
"bigframes-api": "read_pandas",
107110
"source": "bigquery-dataframes-temp",

0 commit comments

Comments
 (0)
Failed to load comments.