oracle-ads 2.13.8__py3-none-any.whl → 2.13.9rc0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (857) hide show
  1. {oracle_ads-2.13.8.dist-info → oracle_ads-2.13.9rc0.dist-info}/METADATA +151 -151
  2. oracle_ads-2.13.9rc0.dist-info/RECORD +9 -0
  3. {oracle_ads-2.13.8.dist-info → oracle_ads-2.13.9rc0.dist-info}/WHEEL +2 -1
  4. {oracle_ads-2.13.8.dist-info → oracle_ads-2.13.9rc0.dist-info}/entry_points.txt +1 -2
  5. oracle_ads-2.13.9rc0.dist-info/top_level.txt +1 -0
  6. ads/aqua/__init__.py +0 -40
  7. ads/aqua/app.py +0 -506
  8. ads/aqua/cli.py +0 -96
  9. ads/aqua/client/__init__.py +0 -3
  10. ads/aqua/client/client.py +0 -836
  11. ads/aqua/client/openai_client.py +0 -305
  12. ads/aqua/common/__init__.py +0 -5
  13. ads/aqua/common/decorator.py +0 -125
  14. ads/aqua/common/entities.py +0 -266
  15. ads/aqua/common/enums.py +0 -122
  16. ads/aqua/common/errors.py +0 -109
  17. ads/aqua/common/utils.py +0 -1285
  18. ads/aqua/config/__init__.py +0 -4
  19. ads/aqua/config/container_config.py +0 -248
  20. ads/aqua/config/evaluation/__init__.py +0 -4
  21. ads/aqua/config/evaluation/evaluation_service_config.py +0 -147
  22. ads/aqua/config/utils/__init__.py +0 -4
  23. ads/aqua/config/utils/serializer.py +0 -339
  24. ads/aqua/constants.py +0 -114
  25. ads/aqua/data.py +0 -14
  26. ads/aqua/dummy_data/icon.txt +0 -1
  27. ads/aqua/dummy_data/oci_model_deployments.json +0 -56
  28. ads/aqua/dummy_data/oci_models.json +0 -1
  29. ads/aqua/dummy_data/readme.md +0 -26
  30. ads/aqua/evaluation/__init__.py +0 -8
  31. ads/aqua/evaluation/constants.py +0 -53
  32. ads/aqua/evaluation/entities.py +0 -186
  33. ads/aqua/evaluation/errors.py +0 -70
  34. ads/aqua/evaluation/evaluation.py +0 -1814
  35. ads/aqua/extension/__init__.py +0 -42
  36. ads/aqua/extension/aqua_ws_msg_handler.py +0 -76
  37. ads/aqua/extension/base_handler.py +0 -90
  38. ads/aqua/extension/common_handler.py +0 -121
  39. ads/aqua/extension/common_ws_msg_handler.py +0 -36
  40. ads/aqua/extension/deployment_handler.py +0 -298
  41. ads/aqua/extension/deployment_ws_msg_handler.py +0 -54
  42. ads/aqua/extension/errors.py +0 -30
  43. ads/aqua/extension/evaluation_handler.py +0 -129
  44. ads/aqua/extension/evaluation_ws_msg_handler.py +0 -61
  45. ads/aqua/extension/finetune_handler.py +0 -96
  46. ads/aqua/extension/model_handler.py +0 -390
  47. ads/aqua/extension/models/__init__.py +0 -0
  48. ads/aqua/extension/models/ws_models.py +0 -145
  49. ads/aqua/extension/models_ws_msg_handler.py +0 -50
  50. ads/aqua/extension/ui_handler.py +0 -282
  51. ads/aqua/extension/ui_websocket_handler.py +0 -130
  52. ads/aqua/extension/utils.py +0 -133
  53. ads/aqua/finetuning/__init__.py +0 -7
  54. ads/aqua/finetuning/constants.py +0 -23
  55. ads/aqua/finetuning/entities.py +0 -181
  56. ads/aqua/finetuning/finetuning.py +0 -731
  57. ads/aqua/model/__init__.py +0 -8
  58. ads/aqua/model/constants.py +0 -60
  59. ads/aqua/model/entities.py +0 -306
  60. ads/aqua/model/enums.py +0 -30
  61. ads/aqua/model/model.py +0 -2080
  62. ads/aqua/modeldeployment/__init__.py +0 -8
  63. ads/aqua/modeldeployment/constants.py +0 -10
  64. ads/aqua/modeldeployment/deployment.py +0 -1324
  65. ads/aqua/modeldeployment/entities.py +0 -653
  66. ads/aqua/modeldeployment/inference.py +0 -74
  67. ads/aqua/modeldeployment/utils.py +0 -543
  68. ads/aqua/resources/gpu_shapes_index.json +0 -94
  69. ads/aqua/server/__init__.py +0 -4
  70. ads/aqua/server/__main__.py +0 -24
  71. ads/aqua/server/app.py +0 -47
  72. ads/aqua/server/aqua_spec.yml +0 -1291
  73. ads/aqua/training/__init__.py +0 -4
  74. ads/aqua/training/exceptions.py +0 -476
  75. ads/aqua/ui.py +0 -499
  76. ads/automl/__init__.py +0 -9
  77. ads/automl/driver.py +0 -330
  78. ads/automl/provider.py +0 -975
  79. ads/bds/__init__.py +0 -5
  80. ads/bds/auth.py +0 -127
  81. ads/bds/big_data_service.py +0 -255
  82. ads/catalog/__init__.py +0 -19
  83. ads/catalog/model.py +0 -1576
  84. ads/catalog/notebook.py +0 -461
  85. ads/catalog/project.py +0 -468
  86. ads/catalog/summary.py +0 -178
  87. ads/common/__init__.py +0 -11
  88. ads/common/analyzer.py +0 -65
  89. ads/common/artifact/.model-ignore +0 -63
  90. ads/common/artifact/__init__.py +0 -10
  91. ads/common/auth.py +0 -1122
  92. ads/common/card_identifier.py +0 -83
  93. ads/common/config.py +0 -647
  94. ads/common/data.py +0 -165
  95. ads/common/decorator/__init__.py +0 -9
  96. ads/common/decorator/argument_to_case.py +0 -88
  97. ads/common/decorator/deprecate.py +0 -69
  98. ads/common/decorator/require_nonempty_arg.py +0 -65
  99. ads/common/decorator/runtime_dependency.py +0 -178
  100. ads/common/decorator/threaded.py +0 -97
  101. ads/common/decorator/utils.py +0 -35
  102. ads/common/dsc_file_system.py +0 -303
  103. ads/common/error.py +0 -14
  104. ads/common/extended_enum.py +0 -81
  105. ads/common/function/__init__.py +0 -5
  106. ads/common/function/fn_util.py +0 -142
  107. ads/common/function/func_conf.yaml +0 -25
  108. ads/common/ipython.py +0 -76
  109. ads/common/model.py +0 -679
  110. ads/common/model_artifact.py +0 -1759
  111. ads/common/model_artifact_schema.json +0 -107
  112. ads/common/model_export_util.py +0 -664
  113. ads/common/model_metadata.py +0 -24
  114. ads/common/object_storage_details.py +0 -296
  115. ads/common/oci_client.py +0 -175
  116. ads/common/oci_datascience.py +0 -46
  117. ads/common/oci_logging.py +0 -1144
  118. ads/common/oci_mixin.py +0 -957
  119. ads/common/oci_resource.py +0 -136
  120. ads/common/serializer.py +0 -559
  121. ads/common/utils.py +0 -1852
  122. ads/common/word_lists.py +0 -1491
  123. ads/common/work_request.py +0 -189
  124. ads/data_labeling/__init__.py +0 -13
  125. ads/data_labeling/boundingbox.py +0 -253
  126. ads/data_labeling/constants.py +0 -47
  127. ads/data_labeling/data_labeling_service.py +0 -244
  128. ads/data_labeling/interface/__init__.py +0 -5
  129. ads/data_labeling/interface/loader.py +0 -16
  130. ads/data_labeling/interface/parser.py +0 -16
  131. ads/data_labeling/interface/reader.py +0 -23
  132. ads/data_labeling/loader/__init__.py +0 -5
  133. ads/data_labeling/loader/file_loader.py +0 -241
  134. ads/data_labeling/metadata.py +0 -110
  135. ads/data_labeling/mixin/__init__.py +0 -5
  136. ads/data_labeling/mixin/data_labeling.py +0 -232
  137. ads/data_labeling/ner.py +0 -129
  138. ads/data_labeling/parser/__init__.py +0 -5
  139. ads/data_labeling/parser/dls_record_parser.py +0 -388
  140. ads/data_labeling/parser/export_metadata_parser.py +0 -94
  141. ads/data_labeling/parser/export_record_parser.py +0 -473
  142. ads/data_labeling/reader/__init__.py +0 -5
  143. ads/data_labeling/reader/dataset_reader.py +0 -574
  144. ads/data_labeling/reader/dls_record_reader.py +0 -121
  145. ads/data_labeling/reader/export_record_reader.py +0 -62
  146. ads/data_labeling/reader/jsonl_reader.py +0 -75
  147. ads/data_labeling/reader/metadata_reader.py +0 -203
  148. ads/data_labeling/reader/record_reader.py +0 -263
  149. ads/data_labeling/record.py +0 -52
  150. ads/data_labeling/visualizer/__init__.py +0 -5
  151. ads/data_labeling/visualizer/image_visualizer.py +0 -525
  152. ads/data_labeling/visualizer/text_visualizer.py +0 -357
  153. ads/database/__init__.py +0 -5
  154. ads/database/connection.py +0 -338
  155. ads/dataset/__init__.py +0 -10
  156. ads/dataset/capabilities.md +0 -51
  157. ads/dataset/classification_dataset.py +0 -339
  158. ads/dataset/correlation.py +0 -226
  159. ads/dataset/correlation_plot.py +0 -563
  160. ads/dataset/dask_series.py +0 -173
  161. ads/dataset/dataframe_transformer.py +0 -110
  162. ads/dataset/dataset.py +0 -1979
  163. ads/dataset/dataset_browser.py +0 -360
  164. ads/dataset/dataset_with_target.py +0 -995
  165. ads/dataset/exception.py +0 -25
  166. ads/dataset/factory.py +0 -987
  167. ads/dataset/feature_engineering_transformer.py +0 -35
  168. ads/dataset/feature_selection.py +0 -107
  169. ads/dataset/forecasting_dataset.py +0 -26
  170. ads/dataset/helper.py +0 -1450
  171. ads/dataset/label_encoder.py +0 -99
  172. ads/dataset/mixin/__init__.py +0 -5
  173. ads/dataset/mixin/dataset_accessor.py +0 -134
  174. ads/dataset/pipeline.py +0 -58
  175. ads/dataset/plot.py +0 -710
  176. ads/dataset/progress.py +0 -86
  177. ads/dataset/recommendation.py +0 -297
  178. ads/dataset/recommendation_transformer.py +0 -502
  179. ads/dataset/regression_dataset.py +0 -14
  180. ads/dataset/sampled_dataset.py +0 -1050
  181. ads/dataset/target.py +0 -98
  182. ads/dataset/timeseries.py +0 -18
  183. ads/dbmixin/__init__.py +0 -5
  184. ads/dbmixin/db_pandas_accessor.py +0 -153
  185. ads/environment/__init__.py +0 -9
  186. ads/environment/ml_runtime.py +0 -66
  187. ads/evaluations/README.md +0 -14
  188. ads/evaluations/__init__.py +0 -109
  189. ads/evaluations/evaluation_plot.py +0 -983
  190. ads/evaluations/evaluator.py +0 -1334
  191. ads/evaluations/statistical_metrics.py +0 -543
  192. ads/experiments/__init__.py +0 -9
  193. ads/experiments/capabilities.md +0 -0
  194. ads/explanations/__init__.py +0 -21
  195. ads/explanations/base_explainer.py +0 -142
  196. ads/explanations/capabilities.md +0 -83
  197. ads/explanations/explainer.py +0 -190
  198. ads/explanations/mlx_global_explainer.py +0 -1050
  199. ads/explanations/mlx_interface.py +0 -386
  200. ads/explanations/mlx_local_explainer.py +0 -287
  201. ads/explanations/mlx_whatif_explainer.py +0 -201
  202. ads/feature_engineering/__init__.py +0 -20
  203. ads/feature_engineering/accessor/__init__.py +0 -5
  204. ads/feature_engineering/accessor/dataframe_accessor.py +0 -535
  205. ads/feature_engineering/accessor/mixin/__init__.py +0 -5
  206. ads/feature_engineering/accessor/mixin/correlation.py +0 -166
  207. ads/feature_engineering/accessor/mixin/eda_mixin.py +0 -266
  208. ads/feature_engineering/accessor/mixin/eda_mixin_series.py +0 -85
  209. ads/feature_engineering/accessor/mixin/feature_types_mixin.py +0 -211
  210. ads/feature_engineering/accessor/mixin/utils.py +0 -65
  211. ads/feature_engineering/accessor/series_accessor.py +0 -431
  212. ads/feature_engineering/adsimage/__init__.py +0 -5
  213. ads/feature_engineering/adsimage/image.py +0 -192
  214. ads/feature_engineering/adsimage/image_reader.py +0 -170
  215. ads/feature_engineering/adsimage/interface/__init__.py +0 -5
  216. ads/feature_engineering/adsimage/interface/reader.py +0 -19
  217. ads/feature_engineering/adsstring/__init__.py +0 -7
  218. ads/feature_engineering/adsstring/oci_language/__init__.py +0 -8
  219. ads/feature_engineering/adsstring/string/__init__.py +0 -8
  220. ads/feature_engineering/data_schema.json +0 -57
  221. ads/feature_engineering/dataset/__init__.py +0 -5
  222. ads/feature_engineering/dataset/zip_code_data.py +0 -42062
  223. ads/feature_engineering/exceptions.py +0 -40
  224. ads/feature_engineering/feature_type/__init__.py +0 -133
  225. ads/feature_engineering/feature_type/address.py +0 -184
  226. ads/feature_engineering/feature_type/adsstring/__init__.py +0 -5
  227. ads/feature_engineering/feature_type/adsstring/common_regex_mixin.py +0 -164
  228. ads/feature_engineering/feature_type/adsstring/oci_language.py +0 -93
  229. ads/feature_engineering/feature_type/adsstring/parsers/__init__.py +0 -5
  230. ads/feature_engineering/feature_type/adsstring/parsers/base.py +0 -47
  231. ads/feature_engineering/feature_type/adsstring/parsers/nltk_parser.py +0 -96
  232. ads/feature_engineering/feature_type/adsstring/parsers/spacy_parser.py +0 -221
  233. ads/feature_engineering/feature_type/adsstring/string.py +0 -258
  234. ads/feature_engineering/feature_type/base.py +0 -58
  235. ads/feature_engineering/feature_type/boolean.py +0 -183
  236. ads/feature_engineering/feature_type/category.py +0 -146
  237. ads/feature_engineering/feature_type/constant.py +0 -137
  238. ads/feature_engineering/feature_type/continuous.py +0 -151
  239. ads/feature_engineering/feature_type/creditcard.py +0 -314
  240. ads/feature_engineering/feature_type/datetime.py +0 -190
  241. ads/feature_engineering/feature_type/discrete.py +0 -134
  242. ads/feature_engineering/feature_type/document.py +0 -43
  243. ads/feature_engineering/feature_type/gis.py +0 -251
  244. ads/feature_engineering/feature_type/handler/__init__.py +0 -5
  245. ads/feature_engineering/feature_type/handler/feature_validator.py +0 -524
  246. ads/feature_engineering/feature_type/handler/feature_warning.py +0 -319
  247. ads/feature_engineering/feature_type/handler/warnings.py +0 -128
  248. ads/feature_engineering/feature_type/integer.py +0 -142
  249. ads/feature_engineering/feature_type/ip_address.py +0 -144
  250. ads/feature_engineering/feature_type/ip_address_v4.py +0 -138
  251. ads/feature_engineering/feature_type/ip_address_v6.py +0 -138
  252. ads/feature_engineering/feature_type/lat_long.py +0 -256
  253. ads/feature_engineering/feature_type/object.py +0 -43
  254. ads/feature_engineering/feature_type/ordinal.py +0 -132
  255. ads/feature_engineering/feature_type/phone_number.py +0 -135
  256. ads/feature_engineering/feature_type/string.py +0 -171
  257. ads/feature_engineering/feature_type/text.py +0 -93
  258. ads/feature_engineering/feature_type/unknown.py +0 -43
  259. ads/feature_engineering/feature_type/zip_code.py +0 -164
  260. ads/feature_engineering/feature_type_manager.py +0 -406
  261. ads/feature_engineering/schema.py +0 -795
  262. ads/feature_engineering/utils.py +0 -245
  263. ads/feature_store/.readthedocs.yaml +0 -19
  264. ads/feature_store/README.md +0 -65
  265. ads/feature_store/__init__.py +0 -9
  266. ads/feature_store/common/__init__.py +0 -0
  267. ads/feature_store/common/enums.py +0 -339
  268. ads/feature_store/common/exceptions.py +0 -18
  269. ads/feature_store/common/spark_session_singleton.py +0 -125
  270. ads/feature_store/common/utils/__init__.py +0 -0
  271. ads/feature_store/common/utils/base64_encoder_decoder.py +0 -72
  272. ads/feature_store/common/utils/feature_schema_mapper.py +0 -283
  273. ads/feature_store/common/utils/transformation_utils.py +0 -82
  274. ads/feature_store/common/utils/utility.py +0 -403
  275. ads/feature_store/data_validation/__init__.py +0 -0
  276. ads/feature_store/data_validation/great_expectation.py +0 -129
  277. ads/feature_store/dataset.py +0 -1230
  278. ads/feature_store/dataset_job.py +0 -530
  279. ads/feature_store/docs/Dockerfile +0 -7
  280. ads/feature_store/docs/Makefile +0 -44
  281. ads/feature_store/docs/conf.py +0 -28
  282. ads/feature_store/docs/requirements.txt +0 -14
  283. ads/feature_store/docs/source/ads.feature_store.query.rst +0 -20
  284. ads/feature_store/docs/source/cicd.rst +0 -137
  285. ads/feature_store/docs/source/conf.py +0 -86
  286. ads/feature_store/docs/source/data_versioning.rst +0 -33
  287. ads/feature_store/docs/source/dataset.rst +0 -388
  288. ads/feature_store/docs/source/dataset_job.rst +0 -27
  289. ads/feature_store/docs/source/demo.rst +0 -70
  290. ads/feature_store/docs/source/entity.rst +0 -78
  291. ads/feature_store/docs/source/feature_group.rst +0 -624
  292. ads/feature_store/docs/source/feature_group_job.rst +0 -29
  293. ads/feature_store/docs/source/feature_store.rst +0 -122
  294. ads/feature_store/docs/source/feature_store_class.rst +0 -123
  295. ads/feature_store/docs/source/feature_validation.rst +0 -66
  296. ads/feature_store/docs/source/figures/cicd.png +0 -0
  297. ads/feature_store/docs/source/figures/data_validation.png +0 -0
  298. ads/feature_store/docs/source/figures/data_versioning.png +0 -0
  299. ads/feature_store/docs/source/figures/dataset.gif +0 -0
  300. ads/feature_store/docs/source/figures/dataset.png +0 -0
  301. ads/feature_store/docs/source/figures/dataset_lineage.png +0 -0
  302. ads/feature_store/docs/source/figures/dataset_statistics.png +0 -0
  303. ads/feature_store/docs/source/figures/dataset_statistics_viz.png +0 -0
  304. ads/feature_store/docs/source/figures/dataset_validation_results.png +0 -0
  305. ads/feature_store/docs/source/figures/dataset_validation_summary.png +0 -0
  306. ads/feature_store/docs/source/figures/drift_monitoring.png +0 -0
  307. ads/feature_store/docs/source/figures/entity.png +0 -0
  308. ads/feature_store/docs/source/figures/feature_group.png +0 -0
  309. ads/feature_store/docs/source/figures/feature_group_lineage.png +0 -0
  310. ads/feature_store/docs/source/figures/feature_group_statistics_viz.png +0 -0
  311. ads/feature_store/docs/source/figures/feature_store_deployment.png +0 -0
  312. ads/feature_store/docs/source/figures/feature_store_overview.png +0 -0
  313. ads/feature_store/docs/source/figures/featuregroup.gif +0 -0
  314. ads/feature_store/docs/source/figures/lineage_d1.png +0 -0
  315. ads/feature_store/docs/source/figures/lineage_d2.png +0 -0
  316. ads/feature_store/docs/source/figures/lineage_fg.png +0 -0
  317. ads/feature_store/docs/source/figures/logo-dark-mode.png +0 -0
  318. ads/feature_store/docs/source/figures/logo-light-mode.png +0 -0
  319. ads/feature_store/docs/source/figures/overview.png +0 -0
  320. ads/feature_store/docs/source/figures/resource_manager.png +0 -0
  321. ads/feature_store/docs/source/figures/resource_manager_feature_store_stack.png +0 -0
  322. ads/feature_store/docs/source/figures/resource_manager_home.png +0 -0
  323. ads/feature_store/docs/source/figures/stats_1.png +0 -0
  324. ads/feature_store/docs/source/figures/stats_2.png +0 -0
  325. ads/feature_store/docs/source/figures/stats_d.png +0 -0
  326. ads/feature_store/docs/source/figures/stats_fg.png +0 -0
  327. ads/feature_store/docs/source/figures/transformation.png +0 -0
  328. ads/feature_store/docs/source/figures/transformations.gif +0 -0
  329. ads/feature_store/docs/source/figures/validation.png +0 -0
  330. ads/feature_store/docs/source/figures/validation_fg.png +0 -0
  331. ads/feature_store/docs/source/figures/validation_results.png +0 -0
  332. ads/feature_store/docs/source/figures/validation_summary.png +0 -0
  333. ads/feature_store/docs/source/index.rst +0 -81
  334. ads/feature_store/docs/source/module.rst +0 -8
  335. ads/feature_store/docs/source/notebook.rst +0 -94
  336. ads/feature_store/docs/source/overview.rst +0 -47
  337. ads/feature_store/docs/source/quickstart.rst +0 -176
  338. ads/feature_store/docs/source/release_notes.rst +0 -194
  339. ads/feature_store/docs/source/setup_feature_store.rst +0 -81
  340. ads/feature_store/docs/source/statistics.rst +0 -58
  341. ads/feature_store/docs/source/transformation.rst +0 -199
  342. ads/feature_store/docs/source/ui.rst +0 -65
  343. ads/feature_store/docs/source/user_guides.setup.feature_store_operator.rst +0 -66
  344. ads/feature_store/docs/source/user_guides.setup.helm_chart.rst +0 -192
  345. ads/feature_store/docs/source/user_guides.setup.terraform.rst +0 -338
  346. ads/feature_store/entity.py +0 -718
  347. ads/feature_store/execution_strategy/__init__.py +0 -0
  348. ads/feature_store/execution_strategy/delta_lake/__init__.py +0 -0
  349. ads/feature_store/execution_strategy/delta_lake/delta_lake_service.py +0 -375
  350. ads/feature_store/execution_strategy/engine/__init__.py +0 -0
  351. ads/feature_store/execution_strategy/engine/spark_engine.py +0 -316
  352. ads/feature_store/execution_strategy/execution_strategy.py +0 -113
  353. ads/feature_store/execution_strategy/execution_strategy_provider.py +0 -47
  354. ads/feature_store/execution_strategy/spark/__init__.py +0 -0
  355. ads/feature_store/execution_strategy/spark/spark_execution.py +0 -618
  356. ads/feature_store/feature.py +0 -192
  357. ads/feature_store/feature_group.py +0 -1494
  358. ads/feature_store/feature_group_expectation.py +0 -346
  359. ads/feature_store/feature_group_job.py +0 -602
  360. ads/feature_store/feature_lineage/__init__.py +0 -0
  361. ads/feature_store/feature_lineage/graphviz_service.py +0 -180
  362. ads/feature_store/feature_option_details.py +0 -50
  363. ads/feature_store/feature_statistics/__init__.py +0 -0
  364. ads/feature_store/feature_statistics/statistics_service.py +0 -99
  365. ads/feature_store/feature_store.py +0 -699
  366. ads/feature_store/feature_store_registrar.py +0 -518
  367. ads/feature_store/input_feature_detail.py +0 -149
  368. ads/feature_store/mixin/__init__.py +0 -4
  369. ads/feature_store/mixin/oci_feature_store.py +0 -145
  370. ads/feature_store/model_details.py +0 -73
  371. ads/feature_store/query/__init__.py +0 -0
  372. ads/feature_store/query/filter.py +0 -266
  373. ads/feature_store/query/generator/__init__.py +0 -0
  374. ads/feature_store/query/generator/query_generator.py +0 -298
  375. ads/feature_store/query/join.py +0 -161
  376. ads/feature_store/query/query.py +0 -403
  377. ads/feature_store/query/validator/__init__.py +0 -0
  378. ads/feature_store/query/validator/query_validator.py +0 -57
  379. ads/feature_store/response/__init__.py +0 -0
  380. ads/feature_store/response/response_builder.py +0 -68
  381. ads/feature_store/service/__init__.py +0 -0
  382. ads/feature_store/service/oci_dataset.py +0 -139
  383. ads/feature_store/service/oci_dataset_job.py +0 -199
  384. ads/feature_store/service/oci_entity.py +0 -125
  385. ads/feature_store/service/oci_feature_group.py +0 -164
  386. ads/feature_store/service/oci_feature_group_job.py +0 -214
  387. ads/feature_store/service/oci_feature_store.py +0 -182
  388. ads/feature_store/service/oci_lineage.py +0 -87
  389. ads/feature_store/service/oci_transformation.py +0 -104
  390. ads/feature_store/statistics/__init__.py +0 -0
  391. ads/feature_store/statistics/abs_feature_value.py +0 -49
  392. ads/feature_store/statistics/charts/__init__.py +0 -0
  393. ads/feature_store/statistics/charts/abstract_feature_plot.py +0 -37
  394. ads/feature_store/statistics/charts/box_plot.py +0 -148
  395. ads/feature_store/statistics/charts/frequency_distribution.py +0 -65
  396. ads/feature_store/statistics/charts/probability_distribution.py +0 -68
  397. ads/feature_store/statistics/charts/top_k_frequent_elements.py +0 -98
  398. ads/feature_store/statistics/feature_stat.py +0 -126
  399. ads/feature_store/statistics/generic_feature_value.py +0 -33
  400. ads/feature_store/statistics/statistics.py +0 -41
  401. ads/feature_store/statistics_config.py +0 -101
  402. ads/feature_store/templates/feature_store_template.yaml +0 -45
  403. ads/feature_store/transformation.py +0 -499
  404. ads/feature_store/validation_output.py +0 -57
  405. ads/hpo/__init__.py +0 -9
  406. ads/hpo/_imports.py +0 -91
  407. ads/hpo/ads_search_space.py +0 -439
  408. ads/hpo/distributions.py +0 -325
  409. ads/hpo/objective.py +0 -280
  410. ads/hpo/search_cv.py +0 -1657
  411. ads/hpo/stopping_criterion.py +0 -75
  412. ads/hpo/tuner_artifact.py +0 -413
  413. ads/hpo/utils.py +0 -91
  414. ads/hpo/validation.py +0 -140
  415. ads/hpo/visualization/__init__.py +0 -5
  416. ads/hpo/visualization/_contour.py +0 -23
  417. ads/hpo/visualization/_edf.py +0 -20
  418. ads/hpo/visualization/_intermediate_values.py +0 -21
  419. ads/hpo/visualization/_optimization_history.py +0 -25
  420. ads/hpo/visualization/_parallel_coordinate.py +0 -169
  421. ads/hpo/visualization/_param_importances.py +0 -26
  422. ads/jobs/__init__.py +0 -53
  423. ads/jobs/ads_job.py +0 -663
  424. ads/jobs/builders/__init__.py +0 -5
  425. ads/jobs/builders/base.py +0 -156
  426. ads/jobs/builders/infrastructure/__init__.py +0 -6
  427. ads/jobs/builders/infrastructure/base.py +0 -165
  428. ads/jobs/builders/infrastructure/dataflow.py +0 -1252
  429. ads/jobs/builders/infrastructure/dsc_job.py +0 -1894
  430. ads/jobs/builders/infrastructure/dsc_job_runtime.py +0 -1233
  431. ads/jobs/builders/infrastructure/utils.py +0 -65
  432. ads/jobs/builders/runtimes/__init__.py +0 -5
  433. ads/jobs/builders/runtimes/artifact.py +0 -338
  434. ads/jobs/builders/runtimes/base.py +0 -325
  435. ads/jobs/builders/runtimes/container_runtime.py +0 -242
  436. ads/jobs/builders/runtimes/python_runtime.py +0 -1016
  437. ads/jobs/builders/runtimes/pytorch_runtime.py +0 -204
  438. ads/jobs/cli.py +0 -104
  439. ads/jobs/env_var_parser.py +0 -131
  440. ads/jobs/extension.py +0 -160
  441. ads/jobs/schema/__init__.py +0 -5
  442. ads/jobs/schema/infrastructure_schema.json +0 -116
  443. ads/jobs/schema/job_schema.json +0 -42
  444. ads/jobs/schema/runtime_schema.json +0 -183
  445. ads/jobs/schema/validator.py +0 -141
  446. ads/jobs/serializer.py +0 -296
  447. ads/jobs/templates/__init__.py +0 -5
  448. ads/jobs/templates/container.py +0 -6
  449. ads/jobs/templates/driver_notebook.py +0 -177
  450. ads/jobs/templates/driver_oci.py +0 -500
  451. ads/jobs/templates/driver_python.py +0 -48
  452. ads/jobs/templates/driver_pytorch.py +0 -852
  453. ads/jobs/templates/driver_utils.py +0 -615
  454. ads/jobs/templates/hostname_from_env.c +0 -55
  455. ads/jobs/templates/oci_metrics.py +0 -181
  456. ads/jobs/utils.py +0 -104
  457. ads/llm/__init__.py +0 -28
  458. ads/llm/autogen/__init__.py +0 -2
  459. ads/llm/autogen/constants.py +0 -15
  460. ads/llm/autogen/reports/__init__.py +0 -2
  461. ads/llm/autogen/reports/base.py +0 -67
  462. ads/llm/autogen/reports/data.py +0 -103
  463. ads/llm/autogen/reports/session.py +0 -526
  464. ads/llm/autogen/reports/templates/chat_box.html +0 -13
  465. ads/llm/autogen/reports/templates/chat_box_lt.html +0 -5
  466. ads/llm/autogen/reports/templates/chat_box_rt.html +0 -6
  467. ads/llm/autogen/reports/utils.py +0 -56
  468. ads/llm/autogen/v02/__init__.py +0 -4
  469. ads/llm/autogen/v02/client.py +0 -295
  470. ads/llm/autogen/v02/log_handlers/__init__.py +0 -2
  471. ads/llm/autogen/v02/log_handlers/oci_file_handler.py +0 -83
  472. ads/llm/autogen/v02/loggers/__init__.py +0 -6
  473. ads/llm/autogen/v02/loggers/metric_logger.py +0 -320
  474. ads/llm/autogen/v02/loggers/session_logger.py +0 -580
  475. ads/llm/autogen/v02/loggers/utils.py +0 -86
  476. ads/llm/autogen/v02/runtime_logging.py +0 -163
  477. ads/llm/chain.py +0 -268
  478. ads/llm/chat_template.py +0 -31
  479. ads/llm/deploy.py +0 -63
  480. ads/llm/guardrails/__init__.py +0 -5
  481. ads/llm/guardrails/base.py +0 -442
  482. ads/llm/guardrails/huggingface.py +0 -44
  483. ads/llm/langchain/__init__.py +0 -5
  484. ads/llm/langchain/plugins/__init__.py +0 -5
  485. ads/llm/langchain/plugins/chat_models/__init__.py +0 -5
  486. ads/llm/langchain/plugins/chat_models/oci_data_science.py +0 -1027
  487. ads/llm/langchain/plugins/embeddings/__init__.py +0 -4
  488. ads/llm/langchain/plugins/embeddings/oci_data_science_model_deployment_endpoint.py +0 -184
  489. ads/llm/langchain/plugins/llms/__init__.py +0 -5
  490. ads/llm/langchain/plugins/llms/oci_data_science_model_deployment_endpoint.py +0 -979
  491. ads/llm/requirements.txt +0 -3
  492. ads/llm/serialize.py +0 -219
  493. ads/llm/serializers/__init__.py +0 -0
  494. ads/llm/serializers/retrieval_qa.py +0 -153
  495. ads/llm/serializers/runnable_parallel.py +0 -27
  496. ads/llm/templates/score_chain.jinja2 +0 -155
  497. ads/llm/templates/tool_chat_template_hermes.jinja +0 -130
  498. ads/llm/templates/tool_chat_template_mistral_parallel.jinja +0 -94
  499. ads/model/__init__.py +0 -52
  500. ads/model/artifact.py +0 -573
  501. ads/model/artifact_downloader.py +0 -254
  502. ads/model/artifact_uploader.py +0 -267
  503. ads/model/base_properties.py +0 -238
  504. ads/model/common/.model-ignore +0 -66
  505. ads/model/common/__init__.py +0 -5
  506. ads/model/common/utils.py +0 -142
  507. ads/model/datascience_model.py +0 -2635
  508. ads/model/deployment/__init__.py +0 -20
  509. ads/model/deployment/common/__init__.py +0 -5
  510. ads/model/deployment/common/utils.py +0 -308
  511. ads/model/deployment/model_deployer.py +0 -466
  512. ads/model/deployment/model_deployment.py +0 -1846
  513. ads/model/deployment/model_deployment_infrastructure.py +0 -671
  514. ads/model/deployment/model_deployment_properties.py +0 -493
  515. ads/model/deployment/model_deployment_runtime.py +0 -838
  516. ads/model/extractor/__init__.py +0 -5
  517. ads/model/extractor/automl_extractor.py +0 -74
  518. ads/model/extractor/embedding_onnx_extractor.py +0 -80
  519. ads/model/extractor/huggingface_extractor.py +0 -88
  520. ads/model/extractor/keras_extractor.py +0 -84
  521. ads/model/extractor/lightgbm_extractor.py +0 -93
  522. ads/model/extractor/model_info_extractor.py +0 -114
  523. ads/model/extractor/model_info_extractor_factory.py +0 -105
  524. ads/model/extractor/pytorch_extractor.py +0 -87
  525. ads/model/extractor/sklearn_extractor.py +0 -112
  526. ads/model/extractor/spark_extractor.py +0 -89
  527. ads/model/extractor/tensorflow_extractor.py +0 -85
  528. ads/model/extractor/xgboost_extractor.py +0 -94
  529. ads/model/framework/__init__.py +0 -5
  530. ads/model/framework/automl_model.py +0 -178
  531. ads/model/framework/embedding_onnx_model.py +0 -438
  532. ads/model/framework/huggingface_model.py +0 -399
  533. ads/model/framework/lightgbm_model.py +0 -266
  534. ads/model/framework/pytorch_model.py +0 -266
  535. ads/model/framework/sklearn_model.py +0 -250
  536. ads/model/framework/spark_model.py +0 -326
  537. ads/model/framework/tensorflow_model.py +0 -254
  538. ads/model/framework/xgboost_model.py +0 -258
  539. ads/model/generic_model.py +0 -3518
  540. ads/model/model_artifact_boilerplate/README.md +0 -381
  541. ads/model/model_artifact_boilerplate/__init__.py +0 -5
  542. ads/model/model_artifact_boilerplate/artifact_introspection_test/__init__.py +0 -5
  543. ads/model/model_artifact_boilerplate/artifact_introspection_test/model_artifact_validate.py +0 -427
  544. ads/model/model_artifact_boilerplate/artifact_introspection_test/requirements.txt +0 -2
  545. ads/model/model_artifact_boilerplate/runtime.yaml +0 -7
  546. ads/model/model_artifact_boilerplate/score.py +0 -61
  547. ads/model/model_file_description_schema.json +0 -68
  548. ads/model/model_introspect.py +0 -331
  549. ads/model/model_metadata.py +0 -1810
  550. ads/model/model_metadata_mixin.py +0 -460
  551. ads/model/model_properties.py +0 -63
  552. ads/model/model_version_set.py +0 -739
  553. ads/model/runtime/__init__.py +0 -5
  554. ads/model/runtime/env_info.py +0 -306
  555. ads/model/runtime/model_deployment_details.py +0 -37
  556. ads/model/runtime/model_provenance_details.py +0 -58
  557. ads/model/runtime/runtime_info.py +0 -81
  558. ads/model/runtime/schemas/inference_env_info_schema.yaml +0 -16
  559. ads/model/runtime/schemas/model_provenance_schema.yaml +0 -36
  560. ads/model/runtime/schemas/training_env_info_schema.yaml +0 -16
  561. ads/model/runtime/utils.py +0 -201
  562. ads/model/serde/__init__.py +0 -5
  563. ads/model/serde/common.py +0 -40
  564. ads/model/serde/model_input.py +0 -547
  565. ads/model/serde/model_serializer.py +0 -1184
  566. ads/model/service/__init__.py +0 -5
  567. ads/model/service/oci_datascience_model.py +0 -1076
  568. ads/model/service/oci_datascience_model_deployment.py +0 -500
  569. ads/model/service/oci_datascience_model_version_set.py +0 -176
  570. ads/model/transformer/__init__.py +0 -5
  571. ads/model/transformer/onnx_transformer.py +0 -324
  572. ads/mysqldb/__init__.py +0 -5
  573. ads/mysqldb/mysql_db.py +0 -227
  574. ads/opctl/__init__.py +0 -18
  575. ads/opctl/anomaly_detection.py +0 -11
  576. ads/opctl/backend/__init__.py +0 -5
  577. ads/opctl/backend/ads_dataflow.py +0 -353
  578. ads/opctl/backend/ads_ml_job.py +0 -710
  579. ads/opctl/backend/ads_ml_pipeline.py +0 -164
  580. ads/opctl/backend/ads_model_deployment.py +0 -209
  581. ads/opctl/backend/base.py +0 -146
  582. ads/opctl/backend/local.py +0 -1053
  583. ads/opctl/backend/marketplace/__init__.py +0 -9
  584. ads/opctl/backend/marketplace/helm_helper.py +0 -173
  585. ads/opctl/backend/marketplace/local_marketplace.py +0 -271
  586. ads/opctl/backend/marketplace/marketplace_backend_runner.py +0 -71
  587. ads/opctl/backend/marketplace/marketplace_operator_interface.py +0 -44
  588. ads/opctl/backend/marketplace/marketplace_operator_runner.py +0 -24
  589. ads/opctl/backend/marketplace/marketplace_utils.py +0 -212
  590. ads/opctl/backend/marketplace/models/__init__.py +0 -5
  591. ads/opctl/backend/marketplace/models/bearer_token.py +0 -94
  592. ads/opctl/backend/marketplace/models/marketplace_type.py +0 -70
  593. ads/opctl/backend/marketplace/models/ocir_details.py +0 -56
  594. ads/opctl/backend/marketplace/prerequisite_checker.py +0 -238
  595. ads/opctl/cli.py +0 -707
  596. ads/opctl/cmds.py +0 -869
  597. ads/opctl/conda/__init__.py +0 -5
  598. ads/opctl/conda/cli.py +0 -193
  599. ads/opctl/conda/cmds.py +0 -749
  600. ads/opctl/conda/config.yaml +0 -34
  601. ads/opctl/conda/manifest_template.yaml +0 -13
  602. ads/opctl/conda/multipart_uploader.py +0 -188
  603. ads/opctl/conda/pack.py +0 -89
  604. ads/opctl/config/__init__.py +0 -5
  605. ads/opctl/config/base.py +0 -57
  606. ads/opctl/config/diagnostics/__init__.py +0 -5
  607. ads/opctl/config/diagnostics/distributed/default_requirements_config.yaml +0 -62
  608. ads/opctl/config/merger.py +0 -255
  609. ads/opctl/config/resolver.py +0 -297
  610. ads/opctl/config/utils.py +0 -79
  611. ads/opctl/config/validator.py +0 -17
  612. ads/opctl/config/versioner.py +0 -68
  613. ads/opctl/config/yaml_parsers/__init__.py +0 -7
  614. ads/opctl/config/yaml_parsers/base.py +0 -58
  615. ads/opctl/config/yaml_parsers/distributed/__init__.py +0 -7
  616. ads/opctl/config/yaml_parsers/distributed/yaml_parser.py +0 -201
  617. ads/opctl/constants.py +0 -66
  618. ads/opctl/decorator/__init__.py +0 -5
  619. ads/opctl/decorator/common.py +0 -129
  620. ads/opctl/diagnostics/__init__.py +0 -5
  621. ads/opctl/diagnostics/__main__.py +0 -25
  622. ads/opctl/diagnostics/check_distributed_job_requirements.py +0 -212
  623. ads/opctl/diagnostics/check_requirements.py +0 -144
  624. ads/opctl/diagnostics/requirement_exception.py +0 -9
  625. ads/opctl/distributed/README.md +0 -109
  626. ads/opctl/distributed/__init__.py +0 -5
  627. ads/opctl/distributed/certificates.py +0 -32
  628. ads/opctl/distributed/cli.py +0 -207
  629. ads/opctl/distributed/cmds.py +0 -731
  630. ads/opctl/distributed/common/__init__.py +0 -5
  631. ads/opctl/distributed/common/abstract_cluster_provider.py +0 -449
  632. ads/opctl/distributed/common/abstract_framework_spec_builder.py +0 -88
  633. ads/opctl/distributed/common/cluster_config_helper.py +0 -103
  634. ads/opctl/distributed/common/cluster_provider_factory.py +0 -21
  635. ads/opctl/distributed/common/cluster_runner.py +0 -54
  636. ads/opctl/distributed/common/framework_factory.py +0 -29
  637. ads/opctl/docker/Dockerfile.job +0 -103
  638. ads/opctl/docker/Dockerfile.job.arm +0 -107
  639. ads/opctl/docker/Dockerfile.job.gpu +0 -175
  640. ads/opctl/docker/base-env.yaml +0 -13
  641. ads/opctl/docker/cuda.repo +0 -6
  642. ads/opctl/docker/operator/.dockerignore +0 -0
  643. ads/opctl/docker/operator/Dockerfile +0 -41
  644. ads/opctl/docker/operator/Dockerfile.gpu +0 -85
  645. ads/opctl/docker/operator/cuda.repo +0 -6
  646. ads/opctl/docker/operator/environment.yaml +0 -8
  647. ads/opctl/forecast.py +0 -11
  648. ads/opctl/index.yaml +0 -3
  649. ads/opctl/model/__init__.py +0 -5
  650. ads/opctl/model/cli.py +0 -65
  651. ads/opctl/model/cmds.py +0 -73
  652. ads/opctl/operator/README.md +0 -4
  653. ads/opctl/operator/__init__.py +0 -31
  654. ads/opctl/operator/cli.py +0 -344
  655. ads/opctl/operator/cmd.py +0 -596
  656. ads/opctl/operator/common/__init__.py +0 -5
  657. ads/opctl/operator/common/backend_factory.py +0 -460
  658. ads/opctl/operator/common/const.py +0 -27
  659. ads/opctl/operator/common/data/synthetic.csv +0 -16001
  660. ads/opctl/operator/common/dictionary_merger.py +0 -148
  661. ads/opctl/operator/common/errors.py +0 -42
  662. ads/opctl/operator/common/operator_config.py +0 -99
  663. ads/opctl/operator/common/operator_loader.py +0 -811
  664. ads/opctl/operator/common/operator_schema.yaml +0 -130
  665. ads/opctl/operator/common/operator_yaml_generator.py +0 -152
  666. ads/opctl/operator/common/utils.py +0 -208
  667. ads/opctl/operator/lowcode/__init__.py +0 -5
  668. ads/opctl/operator/lowcode/anomaly/MLoperator +0 -16
  669. ads/opctl/operator/lowcode/anomaly/README.md +0 -207
  670. ads/opctl/operator/lowcode/anomaly/__init__.py +0 -5
  671. ads/opctl/operator/lowcode/anomaly/__main__.py +0 -103
  672. ads/opctl/operator/lowcode/anomaly/cmd.py +0 -35
  673. ads/opctl/operator/lowcode/anomaly/const.py +0 -167
  674. ads/opctl/operator/lowcode/anomaly/environment.yaml +0 -10
  675. ads/opctl/operator/lowcode/anomaly/model/__init__.py +0 -5
  676. ads/opctl/operator/lowcode/anomaly/model/anomaly_dataset.py +0 -146
  677. ads/opctl/operator/lowcode/anomaly/model/anomaly_merlion.py +0 -162
  678. ads/opctl/operator/lowcode/anomaly/model/automlx.py +0 -99
  679. ads/opctl/operator/lowcode/anomaly/model/autots.py +0 -115
  680. ads/opctl/operator/lowcode/anomaly/model/base_model.py +0 -404
  681. ads/opctl/operator/lowcode/anomaly/model/factory.py +0 -110
  682. ads/opctl/operator/lowcode/anomaly/model/isolationforest.py +0 -78
  683. ads/opctl/operator/lowcode/anomaly/model/oneclasssvm.py +0 -78
  684. ads/opctl/operator/lowcode/anomaly/model/randomcutforest.py +0 -120
  685. ads/opctl/operator/lowcode/anomaly/model/tods.py +0 -119
  686. ads/opctl/operator/lowcode/anomaly/operator_config.py +0 -127
  687. ads/opctl/operator/lowcode/anomaly/schema.yaml +0 -401
  688. ads/opctl/operator/lowcode/anomaly/utils.py +0 -88
  689. ads/opctl/operator/lowcode/common/__init__.py +0 -5
  690. ads/opctl/operator/lowcode/common/const.py +0 -10
  691. ads/opctl/operator/lowcode/common/data.py +0 -116
  692. ads/opctl/operator/lowcode/common/errors.py +0 -47
  693. ads/opctl/operator/lowcode/common/transformations.py +0 -296
  694. ads/opctl/operator/lowcode/common/utils.py +0 -293
  695. ads/opctl/operator/lowcode/feature_store_marketplace/MLoperator +0 -13
  696. ads/opctl/operator/lowcode/feature_store_marketplace/README.md +0 -30
  697. ads/opctl/operator/lowcode/feature_store_marketplace/__init__.py +0 -5
  698. ads/opctl/operator/lowcode/feature_store_marketplace/__main__.py +0 -116
  699. ads/opctl/operator/lowcode/feature_store_marketplace/cmd.py +0 -85
  700. ads/opctl/operator/lowcode/feature_store_marketplace/const.py +0 -15
  701. ads/opctl/operator/lowcode/feature_store_marketplace/environment.yaml +0 -0
  702. ads/opctl/operator/lowcode/feature_store_marketplace/models/__init__.py +0 -4
  703. ads/opctl/operator/lowcode/feature_store_marketplace/models/apigw_config.py +0 -32
  704. ads/opctl/operator/lowcode/feature_store_marketplace/models/db_config.py +0 -43
  705. ads/opctl/operator/lowcode/feature_store_marketplace/models/mysql_config.py +0 -120
  706. ads/opctl/operator/lowcode/feature_store_marketplace/models/serializable_yaml_model.py +0 -34
  707. ads/opctl/operator/lowcode/feature_store_marketplace/operator_utils.py +0 -386
  708. ads/opctl/operator/lowcode/feature_store_marketplace/schema.yaml +0 -160
  709. ads/opctl/operator/lowcode/forecast/MLoperator +0 -25
  710. ads/opctl/operator/lowcode/forecast/README.md +0 -209
  711. ads/opctl/operator/lowcode/forecast/__init__.py +0 -5
  712. ads/opctl/operator/lowcode/forecast/__main__.py +0 -89
  713. ads/opctl/operator/lowcode/forecast/cmd.py +0 -40
  714. ads/opctl/operator/lowcode/forecast/const.py +0 -92
  715. ads/opctl/operator/lowcode/forecast/environment.yaml +0 -20
  716. ads/opctl/operator/lowcode/forecast/errors.py +0 -26
  717. ads/opctl/operator/lowcode/forecast/model/__init__.py +0 -5
  718. ads/opctl/operator/lowcode/forecast/model/arima.py +0 -279
  719. ads/opctl/operator/lowcode/forecast/model/automlx.py +0 -542
  720. ads/opctl/operator/lowcode/forecast/model/autots.py +0 -312
  721. ads/opctl/operator/lowcode/forecast/model/base_model.py +0 -863
  722. ads/opctl/operator/lowcode/forecast/model/factory.py +0 -106
  723. ads/opctl/operator/lowcode/forecast/model/forecast_datasets.py +0 -492
  724. ads/opctl/operator/lowcode/forecast/model/ml_forecast.py +0 -243
  725. ads/opctl/operator/lowcode/forecast/model/neuralprophet.py +0 -486
  726. ads/opctl/operator/lowcode/forecast/model/prophet.py +0 -445
  727. ads/opctl/operator/lowcode/forecast/model_evaluator.py +0 -244
  728. ads/opctl/operator/lowcode/forecast/operator_config.py +0 -234
  729. ads/opctl/operator/lowcode/forecast/schema.yaml +0 -506
  730. ads/opctl/operator/lowcode/forecast/utils.py +0 -413
  731. ads/opctl/operator/lowcode/forecast/whatifserve/__init__.py +0 -7
  732. ads/opctl/operator/lowcode/forecast/whatifserve/deployment_manager.py +0 -285
  733. ads/opctl/operator/lowcode/forecast/whatifserve/score.py +0 -246
  734. ads/opctl/operator/lowcode/pii/MLoperator +0 -17
  735. ads/opctl/operator/lowcode/pii/README.md +0 -208
  736. ads/opctl/operator/lowcode/pii/__init__.py +0 -5
  737. ads/opctl/operator/lowcode/pii/__main__.py +0 -78
  738. ads/opctl/operator/lowcode/pii/cmd.py +0 -39
  739. ads/opctl/operator/lowcode/pii/constant.py +0 -84
  740. ads/opctl/operator/lowcode/pii/environment.yaml +0 -17
  741. ads/opctl/operator/lowcode/pii/errors.py +0 -27
  742. ads/opctl/operator/lowcode/pii/model/__init__.py +0 -5
  743. ads/opctl/operator/lowcode/pii/model/factory.py +0 -82
  744. ads/opctl/operator/lowcode/pii/model/guardrails.py +0 -167
  745. ads/opctl/operator/lowcode/pii/model/pii.py +0 -145
  746. ads/opctl/operator/lowcode/pii/model/processor/__init__.py +0 -34
  747. ads/opctl/operator/lowcode/pii/model/processor/email_replacer.py +0 -34
  748. ads/opctl/operator/lowcode/pii/model/processor/mbi_replacer.py +0 -35
  749. ads/opctl/operator/lowcode/pii/model/processor/name_replacer.py +0 -225
  750. ads/opctl/operator/lowcode/pii/model/processor/number_replacer.py +0 -73
  751. ads/opctl/operator/lowcode/pii/model/processor/remover.py +0 -26
  752. ads/opctl/operator/lowcode/pii/model/report.py +0 -487
  753. ads/opctl/operator/lowcode/pii/operator_config.py +0 -95
  754. ads/opctl/operator/lowcode/pii/schema.yaml +0 -108
  755. ads/opctl/operator/lowcode/pii/utils.py +0 -43
  756. ads/opctl/operator/lowcode/recommender/MLoperator +0 -16
  757. ads/opctl/operator/lowcode/recommender/README.md +0 -206
  758. ads/opctl/operator/lowcode/recommender/__init__.py +0 -5
  759. ads/opctl/operator/lowcode/recommender/__main__.py +0 -82
  760. ads/opctl/operator/lowcode/recommender/cmd.py +0 -33
  761. ads/opctl/operator/lowcode/recommender/constant.py +0 -30
  762. ads/opctl/operator/lowcode/recommender/environment.yaml +0 -11
  763. ads/opctl/operator/lowcode/recommender/model/base_model.py +0 -212
  764. ads/opctl/operator/lowcode/recommender/model/factory.py +0 -56
  765. ads/opctl/operator/lowcode/recommender/model/recommender_dataset.py +0 -25
  766. ads/opctl/operator/lowcode/recommender/model/svd.py +0 -106
  767. ads/opctl/operator/lowcode/recommender/operator_config.py +0 -81
  768. ads/opctl/operator/lowcode/recommender/schema.yaml +0 -265
  769. ads/opctl/operator/lowcode/recommender/utils.py +0 -13
  770. ads/opctl/operator/runtime/__init__.py +0 -5
  771. ads/opctl/operator/runtime/const.py +0 -17
  772. ads/opctl/operator/runtime/container_runtime_schema.yaml +0 -50
  773. ads/opctl/operator/runtime/marketplace_runtime.py +0 -50
  774. ads/opctl/operator/runtime/python_marketplace_runtime_schema.yaml +0 -21
  775. ads/opctl/operator/runtime/python_runtime_schema.yaml +0 -21
  776. ads/opctl/operator/runtime/runtime.py +0 -115
  777. ads/opctl/schema.yaml.yml +0 -36
  778. ads/opctl/script.py +0 -40
  779. ads/opctl/spark/__init__.py +0 -5
  780. ads/opctl/spark/cli.py +0 -43
  781. ads/opctl/spark/cmds.py +0 -147
  782. ads/opctl/templates/diagnostic_report_template.jinja2 +0 -102
  783. ads/opctl/utils.py +0 -344
  784. ads/oracledb/__init__.py +0 -5
  785. ads/oracledb/oracle_db.py +0 -346
  786. ads/pipeline/__init__.py +0 -39
  787. ads/pipeline/ads_pipeline.py +0 -2279
  788. ads/pipeline/ads_pipeline_run.py +0 -772
  789. ads/pipeline/ads_pipeline_step.py +0 -605
  790. ads/pipeline/builders/__init__.py +0 -5
  791. ads/pipeline/builders/infrastructure/__init__.py +0 -5
  792. ads/pipeline/builders/infrastructure/custom_script.py +0 -32
  793. ads/pipeline/cli.py +0 -119
  794. ads/pipeline/extension.py +0 -291
  795. ads/pipeline/schema/__init__.py +0 -5
  796. ads/pipeline/schema/cs_step_schema.json +0 -35
  797. ads/pipeline/schema/ml_step_schema.json +0 -31
  798. ads/pipeline/schema/pipeline_schema.json +0 -71
  799. ads/pipeline/visualizer/__init__.py +0 -5
  800. ads/pipeline/visualizer/base.py +0 -570
  801. ads/pipeline/visualizer/graph_renderer.py +0 -272
  802. ads/pipeline/visualizer/text_renderer.py +0 -84
  803. ads/secrets/__init__.py +0 -11
  804. ads/secrets/adb.py +0 -386
  805. ads/secrets/auth_token.py +0 -86
  806. ads/secrets/big_data_service.py +0 -365
  807. ads/secrets/mysqldb.py +0 -149
  808. ads/secrets/oracledb.py +0 -160
  809. ads/secrets/secrets.py +0 -407
  810. ads/telemetry/__init__.py +0 -7
  811. ads/telemetry/base.py +0 -69
  812. ads/telemetry/client.py +0 -125
  813. ads/telemetry/telemetry.py +0 -257
  814. ads/templates/dataflow_pyspark.jinja2 +0 -13
  815. ads/templates/dataflow_sparksql.jinja2 +0 -22
  816. ads/templates/func.jinja2 +0 -20
  817. ads/templates/schemas/openapi.json +0 -1740
  818. ads/templates/score-pkl.jinja2 +0 -173
  819. ads/templates/score.jinja2 +0 -322
  820. ads/templates/score_embedding_onnx.jinja2 +0 -202
  821. ads/templates/score_generic.jinja2 +0 -165
  822. ads/templates/score_huggingface_pipeline.jinja2 +0 -217
  823. ads/templates/score_lightgbm.jinja2 +0 -185
  824. ads/templates/score_onnx.jinja2 +0 -407
  825. ads/templates/score_onnx_new.jinja2 +0 -473
  826. ads/templates/score_oracle_automl.jinja2 +0 -185
  827. ads/templates/score_pyspark.jinja2 +0 -154
  828. ads/templates/score_pytorch.jinja2 +0 -219
  829. ads/templates/score_scikit-learn.jinja2 +0 -184
  830. ads/templates/score_tensorflow.jinja2 +0 -184
  831. ads/templates/score_xgboost.jinja2 +0 -178
  832. ads/text_dataset/__init__.py +0 -5
  833. ads/text_dataset/backends.py +0 -211
  834. ads/text_dataset/dataset.py +0 -445
  835. ads/text_dataset/extractor.py +0 -207
  836. ads/text_dataset/options.py +0 -53
  837. ads/text_dataset/udfs.py +0 -22
  838. ads/text_dataset/utils.py +0 -49
  839. ads/type_discovery/__init__.py +0 -9
  840. ads/type_discovery/abstract_detector.py +0 -21
  841. ads/type_discovery/constant_detector.py +0 -41
  842. ads/type_discovery/continuous_detector.py +0 -54
  843. ads/type_discovery/credit_card_detector.py +0 -99
  844. ads/type_discovery/datetime_detector.py +0 -92
  845. ads/type_discovery/discrete_detector.py +0 -118
  846. ads/type_discovery/document_detector.py +0 -146
  847. ads/type_discovery/ip_detector.py +0 -68
  848. ads/type_discovery/latlon_detector.py +0 -90
  849. ads/type_discovery/phone_number_detector.py +0 -63
  850. ads/type_discovery/type_discovery_driver.py +0 -87
  851. ads/type_discovery/typed_feature.py +0 -594
  852. ads/type_discovery/unknown_detector.py +0 -41
  853. ads/type_discovery/zipcode_detector.py +0 -48
  854. ads/vault/__init__.py +0 -7
  855. ads/vault/vault.py +0 -237
  856. oracle_ads-2.13.8.dist-info/RECORD +0 -858
  857. {oracle_ads-2.13.8.dist-info → oracle_ads-2.13.9rc0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -1,983 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8; -*-
3
-
4
- # Copyright (c) 2020, 2023 Oracle and/or its affiliates.
5
- # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
6
-
7
- from __future__ import print_function, absolute_import, division
8
-
9
- import base64
10
- from io import BytesIO
11
- import matplotlib as mpl
12
- import matplotlib.pyplot as plt
13
- import matplotlib.lines as mlines
14
- from matplotlib.ticker import FormatStrFormatter
15
- import numpy as np
16
- import math
17
- from ads.common import logger
18
- from ads.common.decorator.runtime_dependency import (
19
- runtime_dependency,
20
- OptionalDependency,
21
- )
22
- import itertools
23
- import pandas as pd
24
-
25
- MAX_TITLE_LEN = 20
26
- MAX_LEGEND_LEN = 10
27
- MAX_PLOTS_PER_ROW = 2
28
- # Maximum class number evaluation plotting supporting for multiclass problems
29
- MAX_PLOTTING_CLASSES = 10
30
- # Maximum characters in class label able to be shown without being truncated
31
- MAX_CHARACTERS_LEN = 13
32
-
33
-
34
- def _fig_to_html(fig):
35
- tmpfile = BytesIO()
36
- fig.savefig(tmpfile, format="png")
37
- encoded = base64.b64encode(tmpfile.getvalue()).decode("utf-8")
38
-
39
- html = "<img src='data:image/png;base64,{}'>".format(encoded)
40
- return html
41
-
42
-
43
- class EvaluationPlot:
44
- """EvaluationPlot holds data and methods for plots and it used to output them
45
-
46
- Attributes
47
- ----------
48
- baseline (bool):
49
- whether to plot the null model or zero information model
50
- baseline_kwargs (dict):
51
- keyword arguments for the baseline plot
52
- color_wheel (dict):
53
- color information used by the plot
54
- font_sz (dict):
55
- dictionary of plot methods
56
- perfect (bool):
57
- determines whether a "perfect" classifier curve is displayed
58
- perfect_kwargs (dict):
59
- parameters for the perfect classifier for precision/recall curves
60
- prob_type (str):
61
- model type, i.e. classification or regression
62
-
63
- Methods
64
- -------
65
- get_legend_labels(legend_labels)
66
- Renders the legend labels on the plot
67
- plot(evaluation, plots, num_classes, perfect, baseline, legend_labels)
68
- Generates the evalation plot
69
- """
70
-
71
- # dict of plot methods
72
- font_sz = {
73
- "xl": 16, # Plot type title
74
- "l": 14, # Individual plot title (name of model)
75
- "m": 12, # Axis titles
76
- "s": 10, # Axis labels
77
- "xs": 8,
78
- } # test within the plot
79
-
80
- baseline_kwargs = {"ls": "--", "c": ".2"} # lw = ??
81
- perfect_kwargs = {"label": "Perfect Classifier", "ls": "--", "color": "gold"}
82
- perfect = None
83
- baseline = None
84
- prob_type = None
85
- color_wheel = ["teal", "blueviolet", "forestgreen", "peru", "y", "dodgerblue", "r"]
86
-
87
- _pretty_titles_map = {
88
- "normalized_confusion_matrix": "Normalized Confusion Matrix",
89
- "lift_chart": "Lift Chart",
90
- "gain_chart": "Gain Chart",
91
- "ks_statistics": "KS Statistics",
92
- "residuals_qq": "Residuals Q-Q Plot",
93
- "residuals_vs_predicted": "Residuals vs Predicted",
94
- "residuals_vs_observed": "Residuals vs Observed",
95
- "observed_vs_predicted": "Observed vs Predicted",
96
- "precision_by_label": "Precision by Label",
97
- "recall_by_label": "Recall by Label",
98
- "f1_by_label": "F1 by Label",
99
- "jaccard_by_label": "Jaccard by Label",
100
- "pr_curve": "PR Curve",
101
- "roc_curve": "ROC Curve",
102
- "pr_and_roc_curve": "PR Curve, ROC Curve",
103
- "lift_and_gain_chart": "Lift Chart, Gain Chart",
104
- }
105
-
106
- _ugly_titles_map = {v: k for k, v in _pretty_titles_map.items()}
107
-
108
- double_overlay_plots = ["pr_and_roc_curve", "lift_and_gain_chart"]
109
- single_overlay_plots = ["lift_chart", "gain_chart", "roc_curve", "pr_curve"]
110
-
111
- _bin_plots = [
112
- "pr_curve",
113
- "roc_curve",
114
- "lift_chart",
115
- "gain_chart",
116
- "normalized_confusion_matrix",
117
- ]
118
- _multi_plots = [
119
- "normalized_confusion_matrix",
120
- "roc_curve",
121
- "pr_curve",
122
- "precision_by_label",
123
- "recall_by_label",
124
- "f1_by_label",
125
- "jaccard_by_label",
126
- ]
127
- _reg_plots = [
128
- "observed_vs_predicted",
129
- "residuals_qq",
130
- "residuals_vs_predicted",
131
- "residuals_vs_observed",
132
- ]
133
-
134
- # list of detailed descriptions of each plot type for every classification type, can be extended when adding more metrics
135
- _bin_plots_details = """
136
- In pattern recognition, information retrieval and binary classification, precision (also called positive predictive value)
137
- is the fraction of relevant instances among the retrieved instances, while recall (also known as sensitivity) is the
138
- fraction of relevant instances that have been retrieved over the total amount of relevant instances. \n
139
- A receiver operating characteristic curve, or ROC curve, is a graphical plot that illustrates the diagnostic ability of a
140
- binary classifier system as its discrimination threshold is varied. \n
141
- In data mining and association rule learning, lift is a measure of the performance of a targeting model (association rule)
142
- at predicting or classifying cases as having an enhanced response (with respect to the population as a whole), measured
143
- against a random choice targeting model. \n
144
- A gain graph is a graph whose edges are labelled 'invertibly', or 'orientably', by elements of a group G. \n
145
- In the field of machine learning and specifically the problem of statistical classification, a confusion matrix, also known
146
- as an error matrix, is a specific table layout that allows visualization of the performance of an algorithm, typically a
147
- supervised learning one (in unsupervised learning it is usually called a matching matrix).
148
- """
149
- # Removed for now:
150
- # Kuiper 's test (ks_statistics) is used in statistics to test that whether a given distribution, or family of
151
- # distributions, is contradicted by evidence from a sample of data. \n
152
-
153
- _multi_plots_details = """
154
- In the field of machine learning and specifically the problem of statistical classification, a confusion matrix, also known
155
- as an error matrix, is a specific table layout that allows visualization of the performance of an algorithm, typically a
156
- supervised learning one (in unsupervised learning it is usually called a matching matrix). \n
157
- A receiver operating characteristic curve, or ROC curve, is a graphical plot that illustrates the diagnostic ability of a
158
- binary classifier system as its discrimination threshold is varied. \n
159
- In pattern recognition, information retrieval and binary classification, precision (also called positive predictive value)
160
- is the fraction of relevant instances among the retrieved instances, while recall (also known as sensitivity) is the
161
- fraction of relevant instances that have been retrieved over the total amount of relevant instances. \n
162
- In statistical analysis of binary classification, the F1 score (also F-score or F-measure) is a measure of a test's accuracy.
163
- It considers both the precision p and the recall r of the test to compute the score: p is the number of correct positive results
164
- divided by the number of all positive results returned by the classifier, and r is the number of correct positive results divided
165
- by the number of all relevant samples (all samples that should have been identified as positive). The F1 score is the harmonic mean
166
- of the precision and recall, where an F1 score reaches its best value at 1 (perfect precision and recall) and worst at 0. \n
167
- The Jaccard index, also known as Intersection over Union and the Jaccard similarity coefficient, is a statistic used for gauging
168
- the similarity and diversity of sample sets. The Jaccard coefficient measures similarity between finite sample sets, and is defined
169
- as the size of the intersection divided by the size of the union of the sample sets
170
- """
171
- _reg_plots_details = """
172
- In statistics, a Q–Q (quantile-quantile) plot is a probability plot, which is a graphical method for comparing two probability distributions
173
- by plotting their quantiles against each other. \n
174
- In statistics and optimization, errors and residuals are two closely related and easily confused measures of the deviation of an observed value
175
- of an element of a statistical sample from its "theoretical value". The error (or disturbance) of an observed value is the deviation of the
176
- observed value from the (unobservable) true value of a quantity of interest (for example, a population mean), and the residual of an observed
177
- value is the difference between the observed value and the estimated value of the quantity of interest (for example, a sample mean).
178
- """
179
-
180
- @classmethod
181
- def _get_formatted_title(cls, title, max_len=MAX_TITLE_LEN):
182
- return title if len(title) < max_len + 3 else title[:max_len] + "..."
183
-
184
- @classmethod
185
- def get_legend_labels(cls, legend_labels):
186
- """Gets the legend labels, resolves any conflicts such as length, and renders
187
- the labels for the plot
188
-
189
- Parameters
190
- ----------
191
- legend_labels (dict):
192
- key/value dictionary containing legend label data
193
-
194
- Returns
195
- -------
196
- Nothing
197
-
198
- Examples
199
- --------
200
-
201
- EvaluationPlot.get_legend_labels({'class_0': 'green', 'class_1': 'yellow', 'class_2': 'red'})
202
- """
203
-
204
- @runtime_dependency(module="IPython", install_from=OptionalDependency.NOTEBOOK)
205
- @runtime_dependency(
206
- module="ipywidgets", object="HTML", install_from=OptionalDependency.NOTEBOOK
207
- )
208
- def render_legend_labels(label_dict):
209
- encodings = pd.DataFrame(
210
- pd.Series(label_dict, index=label_dict.keys()),
211
- columns=["Shortened labels"],
212
- )
213
- from IPython.core.display import display, HTML
214
-
215
- display(
216
- HTML(
217
- encodings.style.format(precision=4)
218
- .set_properties(**{"text-align": "center"})
219
- .set_table_styles(
220
- [dict(selector="", props=[("text-align", "center")])]
221
- )
222
- .set_table_attributes("class=table")
223
- .set_caption(
224
- '<div align="left"><b style="font-size:20px;">'
225
- + "Legend for labels of the target feature:</b></div>"
226
- )
227
- .to_html()
228
- )
229
- )
230
-
231
- if legend_labels is not None:
232
- # CAUTION: cls.classes is a list of strings. Make sure users know that labels are all converted to strings.
233
- if isinstance(legend_labels, dict) and set(cls.classes).issubset(
234
- set(legend_labels.keys())
235
- ):
236
- render_legend_labels(legend_labels)
237
- cls.legend_labels = legend_labels
238
- else:
239
- logger.error(
240
- "The provided `legend_labels` is either not a Python dict or does not possess all possible class labels."
241
- )
242
- return
243
-
244
- # try to remove leading words
245
- def _check_for_redundant_words(label_vec, prefix, max_len=MAX_LEGEND_LEN):
246
- words_found = False
247
- classes = [lab for lab in label_vec]
248
- while len(set([lab.split()[0] for lab in classes])) <= 1:
249
- # remove that word from vec, and add it to prefix
250
- additional_prefix = classes[0].split()[0]
251
- prefix = (
252
- prefix[:-3] + additional_prefix + " ..."
253
- if words_found
254
- else additional_prefix + " ..."
255
- )
256
- classes = [lab[len(additional_prefix) + 1 :] for lab in classes]
257
- words_found = True
258
-
259
- classes = (
260
- classes if words_found else [label[max_len:] for label in label_vec]
261
- )
262
- return classes, prefix
263
-
264
- # returns mapping from real labels to psuedo-labels, when psuedo-labels are not the first X letter
265
- def _resolve_conflict(label_vec, prefix, max_len=MAX_LEGEND_LEN):
266
- classes, prefix = _check_for_redundant_words(label_vec, prefix)
267
- label_dict = _get_labels(classes, max_len=max_len)
268
- resolved = {}
269
- for orig, new in label_dict.items():
270
- resolved[prefix[:-3] + orig] = "..." + new if new[:3] != "..." else new
271
- return resolved
272
-
273
- # returns mapping from provided list of strings, to short, unique substrings
274
- def _get_labels(classes, max_len=MAX_LEGEND_LEN):
275
- conflict_dict = {}
276
- for label in classes:
277
- prefix = label if len(label) < max_len + 3 else label[:max_len] + "..."
278
- if conflict_dict.get(prefix, None) is None:
279
- conflict_dict[prefix] = [label]
280
- else:
281
- conflict_dict[prefix].append(label)
282
- out = {}
283
- for k, v in conflict_dict.items():
284
- if len(v) == 1:
285
- out[v[0]] = k
286
- else:
287
- resolved = _resolve_conflict(v, k, max_len=MAX_LEGEND_LEN)
288
- out.update(resolved)
289
- return out
290
-
291
- cls.legend_labels = _get_labels(cls.classes)
292
- if set(cls.legend_labels.keys()) != set(cls.legend_labels.values()):
293
- logger.info(
294
- f"Class labels greater than {MAX_CHARACTERS_LEN} characters have been truncated. "
295
- "Use the `legend_labels` parameter to define labels."
296
- )
297
- render_legend_labels(cls.legend_labels)
298
-
299
- # evaluation is a DataFrame with models as columns and metrics as rows
300
- @classmethod
301
- def plot(
302
- cls,
303
- evaluation,
304
- plots,
305
- num_classes,
306
- perfect=False,
307
- baseline=True,
308
- legend_labels=None,
309
- ):
310
- """Generates the evaluation plot
311
-
312
- Parameters
313
- ----------
314
- evaluation (DataFrame):
315
- DataFrame with models as columns and metrics as rows.
316
- plots (str):
317
- The plot type based on class attribute `prob_type`.
318
- num_classes (int):
319
- The number of classes for the model.
320
- perfect (bool, optional):
321
- Whether to display the curve of a perfect classifier. Default value is `False`.
322
- baseline (bool, optional):
323
- Whether to display the curve of the baseline, featureless model. Default value is `True`.
324
- legend_labels (dict, optional):
325
- Legend labels dictionary. Default value is `None`. If legend_labels not specified class names will be used for plots.
326
-
327
- Returns
328
- -------
329
- Nothing
330
- """
331
-
332
- cls.perfect = perfect
333
- cls.baseline = baseline
334
- # get plots to show
335
- if num_classes == 2:
336
- cls.prob_type = "_bin"
337
- elif num_classes > 2:
338
- cls.prob_type = "_multi"
339
- else:
340
- cls.prob_type = "_reg"
341
- plot_details = getattr(cls, cls.prob_type + "_plots_details")
342
- if plots is None:
343
- plots = getattr(cls, cls.prob_type + "_plots")
344
- logger.info(
345
- "Showing plot types: {}.".format(
346
- ", ".join(
347
- [
348
- "{}".format(EvaluationPlot._pretty_titles_map[str(p)])
349
- for p in plots
350
- ]
351
- ),
352
- ", ".join(["{}".format(x) for x in map(str, plots)]),
353
- )
354
- )
355
- logger.info(plot_details)
356
-
357
- if cls.prob_type == "_bin":
358
- if "lift_chart" in plots and "gain_chart" in plots:
359
- plots.remove("lift_chart")
360
- plots.remove("gain_chart")
361
- plots.insert(0, "lift_and_gain_chart")
362
-
363
- if "roc_curve" in plots and "pr_curve" in plots:
364
- plots.remove("roc_curve")
365
- plots.remove("pr_curve")
366
- plots.insert(0, "pr_and_roc_curve")
367
- elif cls.prob_type == "_multi":
368
- if (
369
- "normalized_confusion_matrix" in plots
370
- and len(evaluation[evaluation.columns[0]]["classes"])
371
- >= MAX_PLOTTING_CLASSES
372
- ):
373
- logger.error(
374
- f"Evaluation plotting is not yet supported for multiclass problems with {MAX_PLOTTING_CLASSES} or more classes."
375
- )
376
- plots = []
377
- classes = evaluation[evaluation.columns[0]]["classes"]
378
- if classes is not None:
379
- # CAUTION: class labels are converted to strings here.
380
- # If users are passing in legend_labels, they have to use strings as well.
381
- # Otherwise get_legend_labels() will complaint.
382
- # If users are not passing in legend_labels, get_legend_labels() generates them from cls.classes.
383
- # cls.legend_labels are assigned/created in cls.get_lengend_labels() and contain only strings as keys.
384
- cls.classes = [str(c) for c in classes]
385
- cls.get_legend_labels(legend_labels)
386
-
387
- mpl.style.use("default")
388
- html_raw = []
389
- for i, plot_type in enumerate(plots):
390
- fig_title, fig = None, None
391
- try:
392
- fig_title, ax_title = plt.subplots(1, 1, figsize=(18, 0.5), dpi=144)
393
- ax_title.text(
394
- 0.5,
395
- 0.5,
396
- cls._pretty_titles_map[plot_type],
397
- fontsize=16,
398
- fontweight="semibold",
399
- horizontalalignment="center",
400
- verticalalignment="center",
401
- transform=ax_title.transAxes,
402
- )
403
- ax_title.axis("off")
404
- html_raw.append(_fig_to_html(fig_title))
405
- if cls.prob_type == "_bin" and plot_type in cls.double_overlay_plots:
406
- fig, ax = plt.subplots(1, 2, figsize=(12, 4.5), dpi=144)
407
- elif cls.prob_type == "_bin" and plot_type in ["roc_curve", "pr_curve"]:
408
- fig, axs = plt.subplots(1, 2, figsize=(12, 4.5), dpi=144)
409
- axs[1].axis("off")
410
- ax = [axs[0]]
411
- elif cls.prob_type == "_bin" and plot_type in [
412
- "lift_chart",
413
- "gain_chart",
414
- ]:
415
- fig, axs = plt.subplots(1, 2, figsize=(12, 4.5), dpi=144)
416
- axs[1].axis("off")
417
- ax = axs[0]
418
- else:
419
- nrows = math.ceil(len(evaluation.columns) / MAX_PLOTS_PER_ROW)
420
- fig, ax = plt.subplots(
421
- nrows, MAX_PLOTS_PER_ROW, figsize=(10, 4 * nrows), dpi=144
422
- ) # 10, 3.5
423
- ax = ax.flatten()
424
- getattr(cls, "_" + plot_type)(ax, evaluation)
425
- fig.tight_layout()
426
- html_raw.append(_fig_to_html(fig))
427
- except KeyError as e:
428
- try:
429
- if fig_title:
430
- plt.close(fig=fig_title)
431
- if fig:
432
- plt.close(fig=fig)
433
- except:
434
- pass
435
- logger.warning(
436
- f"Evaluator was not able to plot "
437
- f"{cls._pretty_titles_map.get(plot_type, plot_type)}, because the relevant "
438
- f"metrics had complications. Ensure that `predict` and `predict_proba` "
439
- f"are valid."
440
- )
441
- return html_raw
442
-
443
- @classmethod
444
- def _lift_and_gain_chart(cls, ax, evaluation):
445
- cls._lift_chart(ax[0], evaluation)
446
- cls._gain_chart(ax[1], evaluation)
447
-
448
- @classmethod
449
- def _lift_chart(cls, ax, evaluation):
450
- for mod_name, col in evaluation.items():
451
- if col["y_score"] is not None:
452
- ax.plot(
453
- col["percentages"][1:],
454
- [1] + list(col["lift"]),
455
- label=cls._get_formatted_title(mod_name),
456
- )
457
- if cls.baseline:
458
- ax.plot([-10, 110], [1, 1], **cls.baseline_kwargs)
459
- if cls.perfect:
460
- perf_idx = next(
461
- idx
462
- for idx, scores in enumerate(evaluation.loc["y_score"])
463
- if scores is not None
464
- )
465
- ax.plot(
466
- evaluation.loc["percentages"][perf_idx][1:],
467
- [1] + list(evaluation.loc["perfect_lift"][perf_idx]),
468
- **cls.perfect_kwargs,
469
- )
470
- ax.legend(loc="upper right", frameon=False)
471
- ax.set_xlabel("Percentage of Population", fontsize=12)
472
- ax.set_ylabel("Lift", fontsize=12)
473
- ax.set_title("Lift Chart", y=1.08, fontsize=14)
474
- ax.grid(linewidth=0.2, which="both")
475
- ax.set_xlim([-10, 110])
476
-
477
- @classmethod
478
- def _gain_chart(cls, ax, evaluation):
479
- for mod_name, col in evaluation.items():
480
- if col["y_score"] is not None:
481
- ax.plot(
482
- col["percentages"],
483
- list(col["cumulative_gain"]),
484
- label=cls._get_formatted_title(mod_name),
485
- )
486
- if cls.baseline:
487
- ax.plot([-10, 110], [-10, 110], **cls.baseline_kwargs)
488
- if cls.perfect:
489
- perf_idx = next(
490
- idx
491
- for idx, scores in enumerate(evaluation.loc["y_score"])
492
- if scores is not None
493
- )
494
- ax.plot(
495
- evaluation.loc["percentages"][perf_idx],
496
- evaluation.loc["perfect_gain"][perf_idx],
497
- **cls.perfect_kwargs,
498
- )
499
- ax.legend(loc="lower right", frameon=False)
500
- ax.set_xlabel("Percentage of Population", fontsize=12)
501
- ax.set_ylabel("Percentage of Positive Class", fontsize=12)
502
- ax.set_title("Gain Chart", y=1.08, fontsize=14)
503
- ax.grid(linewidth=0.2, which="both")
504
- ax.set_xlim([-10, 110])
505
- ax.set_ylim([-10, 110])
506
-
507
- @classmethod
508
- def _pr_and_roc_curve(cls, ax, evaluation):
509
- cls._pr_curve([ax[0]], evaluation)
510
- cls._roc_curve([ax[1]], evaluation)
511
-
512
- @classmethod
513
- def _pr_curve(cls, axs, evaluation):
514
- n_models = len(evaluation.columns)
515
- for i, ax in enumerate(axs):
516
- if i >= n_models:
517
- ax.axis("off")
518
- return
519
- if cls.prob_type == "_bin":
520
- for mod_name, col in evaluation.items():
521
- if col["y_score"] is not None:
522
- ax.plot(
523
- col["recall_values"],
524
- col["precision_values"],
525
- label="%s (Precision: %s)"
526
- % (
527
- cls._get_formatted_title(mod_name),
528
- "{:.3f}".format(col["precision"]),
529
- ),
530
- )
531
- ax.plot(
532
- *col["pr_best_model_score"],
533
- color=ax.get_lines()[-1].get_color(),
534
- marker="*",
535
- )
536
- else:
537
- model_name = evaluation.columns[i]
538
- mod = evaluation[model_name]
539
- if mod["y_score"] is not None:
540
- for j, lab in enumerate(mod.classes):
541
- # cls.legend_labels contains only strings as keys.
542
- lab = str(lab)
543
- ax.plot(
544
- mod["recall_values"][j],
545
- mod["precision_values"][j],
546
- label="%s (Precision: %s)"
547
- % (
548
- cls.legend_labels[lab],
549
- "{:.3f}".format(mod["precision_by_label"][j]),
550
- ),
551
- )
552
- ax.plot(
553
- *mod["pr_best_model_score"][j],
554
- color=ax.get_lines()[-1].get_color(),
555
- marker="*",
556
- )
557
-
558
- ax.set_xlabel("Recall", fontsize=12)
559
- ax.set_ylabel("Precision", fontsize=12)
560
- ax.set_title("Precision Recall Curve", y=1.08, fontsize=14)
561
- ax.grid(linewidth=0.2, which="both")
562
- ax.set_xlim([-0.1, 1.1])
563
- ax.set_ylim([-0.1, 1.1])
564
- handles, labels = ax.get_legend_handles_labels()
565
- star = mlines.Line2D(
566
- [],
567
- [],
568
- color="black",
569
- marker="*",
570
- linestyle="None",
571
- markersize=5,
572
- label="Minimum Error Rate",
573
- )
574
- handles.append(star)
575
- labels.append("Minimum Error Rate")
576
- ax.legend(
577
- loc="upper right",
578
- labels=labels,
579
- handles=handles,
580
- frameon=False,
581
- fontsize="x-small",
582
- )
583
-
584
- @classmethod
585
- def _roc_curve(cls, axs, evaluation):
586
- n_models = len(evaluation.columns)
587
- for i, ax in enumerate(axs):
588
- if i >= n_models:
589
- ax.axis("off")
590
- return
591
- if cls.prob_type == "_bin":
592
- for mod_name, col in evaluation.items():
593
- if col["y_score"] is not None:
594
- ax.plot(
595
- col["false_positive_rate"],
596
- col["true_positive_rate"],
597
- label="%s (AUC: %s)"
598
- % (
599
- cls._get_formatted_title(mod_name),
600
- "{:.3f}".format(col["auc"]),
601
- ),
602
- )
603
- ax.plot(
604
- *col["roc_best_model_score"],
605
- color=ax.get_lines()[-1].get_color(),
606
- marker="*",
607
- )
608
- else:
609
- model_name = evaluation.columns[i]
610
- mod = evaluation[model_name]
611
- if mod["y_score"] is not None:
612
- for j, lab in enumerate(mod.classes):
613
- # cls.legend_labels contains only strings as keys.
614
- lab = str(lab)
615
- ax.plot(
616
- mod["fpr_by_label"][j],
617
- mod["tpr_by_label"][j],
618
- label="%s (AUC: %s)"
619
- % (cls.legend_labels[lab], "{:.3f}".format(mod["auc"][j])),
620
- )
621
- ax.plot(
622
- *mod["roc_best_model_score"][j],
623
- color=ax.get_lines()[-1].get_color(),
624
- marker="*",
625
- )
626
- if cls.baseline:
627
- ax.plot([-0.1, 1.1], [-0.1, 1.1], **cls.baseline_kwargs)
628
- ax.set_xlabel("False Positive Rate", fontsize=12)
629
- ax.set_ylabel("True Positive Rate", fontsize=12)
630
- ax.set_title("ROC Curve", y=1.08, fontsize=14)
631
- ax.grid(linewidth=0.2, which="both")
632
- ax.set_xlim([-0.1, 1.1])
633
- ax.set_ylim([-0.1, 1.1])
634
- handles, labels = ax.get_legend_handles_labels()
635
- star = mlines.Line2D(
636
- [],
637
- [],
638
- color="black",
639
- marker="*",
640
- linestyle="None",
641
- markersize=5,
642
- label="Youden's J Statistic",
643
- )
644
- handles.append(star)
645
- labels.append("Youden's J Statistic")
646
- ax.legend(
647
- loc="lower right",
648
- labels=labels,
649
- handles=handles,
650
- frameon=False,
651
- fontsize="x-small",
652
- )
653
-
654
- @classmethod
655
- def _ks_statistics(cls, axs, evaluation):
656
- n_models = len(evaluation.columns)
657
- for i, ax in enumerate(axs):
658
- if i >= n_models:
659
- ax.axis("off")
660
- return
661
- model_name = evaluation.columns[i]
662
- mod = evaluation[model_name]
663
-
664
- ax.set_title(model_name, fontsize=14)
665
- if mod["y_score"] is not None:
666
- ax.plot(
667
- mod["ks_thresholds"],
668
- mod["ks_pct1"],
669
- lw=3,
670
- label=mod["ks_labels"][0],
671
- )
672
- ax.plot(
673
- mod["ks_thresholds"],
674
- mod["ks_pct2"],
675
- lw=3,
676
- label=mod["ks_labels"][1],
677
- )
678
- if cls.baseline:
679
- idx = np.where(mod["ks_thresholds"] == mod["max_distance_at"])[0][0]
680
- ax.axvline(
681
- mod["max_distance_at"],
682
- *sorted([mod["ks_pct1"][idx], mod["ks_pct2"][idx]]),
683
- label="KS Statistic: {:.3f} at {:.3f}".format(
684
- mod["ks_statistic"], mod["max_distance_at"]
685
- ),
686
- linestyle="--",
687
- color=".2",
688
- )
689
-
690
- ax.set_xlim([0.0, 1.0])
691
- ax.set_ylim([0.0, 1.0])
692
-
693
- ax.set_xlabel("Threshold", fontsize=12)
694
- ax.set_ylabel("Percentage below threshold", fontsize=12)
695
- ax.tick_params(labelsize=10)
696
- ax.legend(loc="lower right", fontsize=8)
697
-
698
- @classmethod
699
- def _pretty_barh(
700
- cls, ax, x, y, axis_labels=None, title=None, axis_lim=None, plot_kwargs=None
701
- ):
702
- # cls.legend_labels contains only strings as keys.
703
- new_lab = [cls.legend_labels[str(item)] for item in x]
704
- ax.barh(
705
- new_lab,
706
- y,
707
- color=["teal", "blueviolet", "forestgreen", "peru", "y", "dodgerblue", "r"],
708
- )
709
- for j, v in enumerate(y):
710
- ax.annotate("{:.3f}".format(v), xy=(v / 2, j), va="center", ha="left")
711
- if axis_labels:
712
- if axis_labels[0]:
713
- ax.set_xlabel(axis_labels[0], fontsize=12)
714
- if axis_labels[1]:
715
- ax.set_ylabel(axis_labels[1], fontsize=12)
716
- if title:
717
- title = cls._get_formatted_title(title)
718
- ax.set_title(title, y=1.08, fontsize=14)
719
- if axis_lim:
720
- ax.set_xlim(axis_lim)
721
-
722
- @classmethod
723
- def _precision_by_label(cls, axs, evaluation):
724
- n_models = len(evaluation.columns)
725
- for i, ax in enumerate(axs):
726
- if i < n_models:
727
- col = evaluation.columns[i]
728
- cls._pretty_barh(
729
- ax,
730
- evaluation[col]["classes"],
731
- evaluation[col]["precision_by_label"],
732
- axis_lim=[0, 1],
733
- axis_labels=["Precision", None],
734
- title=col,
735
- )
736
- else:
737
- ax.axis("off")
738
-
739
- @classmethod
740
- def _recall_by_label(cls, axs, evaluation):
741
- n_models = len(evaluation.columns)
742
- for i, ax in enumerate(axs):
743
- if i < n_models:
744
- col = evaluation.columns[i]
745
- cls._pretty_barh(
746
- ax,
747
- evaluation[col]["classes"],
748
- evaluation[col]["recall_by_label"],
749
- axis_lim=[0, 1],
750
- axis_labels=["Recall", None],
751
- title=col,
752
- )
753
- else:
754
- ax.axis("off")
755
-
756
- @classmethod
757
- def _f1_by_label(cls, axs, evaluation):
758
- n_models = len(evaluation.columns)
759
- for i, ax in enumerate(axs):
760
- if i < n_models:
761
- col = evaluation.columns[i]
762
- cls._pretty_barh(
763
- ax,
764
- evaluation[col]["classes"],
765
- evaluation[col]["f1_by_label"],
766
- axis_lim=[0, 1],
767
- axis_labels=["F1 Score", None],
768
- title=col,
769
- )
770
- else:
771
- ax.axis("off")
772
-
773
- @classmethod
774
- def _jaccard_by_label(cls, axs, evaluation):
775
- n_models = len(evaluation.columns)
776
- for i, ax in enumerate(axs):
777
- if i < n_models:
778
- col = evaluation.columns[i]
779
- cls._pretty_barh(
780
- ax,
781
- evaluation[col]["classes"],
782
- evaluation[col]["jaccard_by_label"],
783
- axis_lim=[0, 1],
784
- axis_labels=["Jaccard Score", None],
785
- title=col,
786
- )
787
- else:
788
- ax.axis("off")
789
-
790
- @classmethod
791
- def _pretty_scatter(
792
- cls,
793
- ax,
794
- x,
795
- y,
796
- s=5,
797
- alpha=1.0,
798
- title=None,
799
- legend=False,
800
- axis_labels=None,
801
- axis_lim=None,
802
- grid=True,
803
- label=None,
804
- plot_kwargs=None,
805
- ):
806
- if plot_kwargs is None:
807
- plot_kwargs = {}
808
- ax.scatter(x, y, s=s, label=label, marker="o", alpha=alpha, **plot_kwargs)
809
- ax.xaxis.set_major_formatter(FormatStrFormatter("%.2f"))
810
- ax.yaxis.set_major_formatter(FormatStrFormatter("%.2f"))
811
- if legend:
812
- ax.legend(frameon=False)
813
- if axis_labels:
814
- ax.set_xlabel(axis_labels[0])
815
- ax.set_ylabel(axis_labels[1])
816
- if title:
817
- ax.set_title(title, y=1.08, fontsize=14)
818
- if grid:
819
- ax.grid(linewidth=0.2)
820
- if axis_lim:
821
- if axis_lim[0]:
822
- ax.set_xlim(axis_lim[0])
823
- if axis_lim[1]:
824
- ax.set_ylim(axis_lim[1])
825
-
826
- @classmethod
827
- def _top_2_features(cls, axs, evaluation):
828
- pass
829
-
830
- @classmethod
831
- def _residuals_qq(cls, axs, evaluation):
832
- n_models = len(evaluation.columns)
833
- for i, ax in enumerate(axs):
834
- if i >= n_models:
835
- ax.axis("off")
836
- return
837
- model_name = evaluation.columns[i]
838
- mod = evaluation[model_name]
839
- # getattr(ax, self.plot_method)(self.x, y, **self.plot_kwargs, color='#4a91c2', label=label)
840
- cls._pretty_scatter(
841
- ax,
842
- mod["norm_quantiles"],
843
- mod["residual_quantiles"],
844
- title=model_name,
845
- axis_lim=[(-2.7, 2.7), (-3.1, 3.1)],
846
- axis_labels=["Theoretical Quantiles", "Sample Quantiles"],
847
- )
848
- if cls.baseline:
849
- ax.plot((-100, 100), (-100, 100), **cls.baseline_kwargs)
850
-
851
- @classmethod
852
- def _residuals_vs_predicted(cls, axs, evaluation):
853
- n_models = len(evaluation.columns)
854
- for i, ax in enumerate(axs):
855
- if i >= n_models:
856
- ax.axis("off")
857
- return
858
- model_name = evaluation.columns[i]
859
- mod = evaluation[model_name]
860
- y_pred = np.asarray(mod["y_pred"])
861
- resid = np.asarray(mod["residuals"])
862
- cls._pretty_scatter(
863
- ax,
864
- y_pred,
865
- resid,
866
- s=4,
867
- alpha=0.5,
868
- title=model_name,
869
- axis_labels=["Predicted Values", "Residuals"],
870
- )
871
- x_lim = (
872
- y_pred.min() - y_pred.min() * 0.05,
873
- y_pred.max() + y_pred.max() * 0.05,
874
- )
875
- if cls.baseline:
876
- ax.plot(x_lim, (0, 0), **cls.baseline_kwargs)
877
- ax.set_xlim(x_lim)
878
- ax.xaxis.set_major_formatter(FormatStrFormatter("%.2f"))
879
- ax.yaxis.set_major_formatter(FormatStrFormatter("%.2f"))
880
-
881
- @classmethod
882
- def _residuals_vs_observed(cls, axs, evaluation):
883
- n_models = len(evaluation.columns)
884
- for i, ax in enumerate(axs):
885
- if i >= n_models:
886
- ax.axis("off")
887
- return
888
- model_name = evaluation.columns[i]
889
- mod = evaluation[model_name]
890
- y_true = np.asarray(mod["y_true"])
891
- cls._pretty_scatter(
892
- ax,
893
- y_true,
894
- mod["residuals"],
895
- s=4,
896
- alpha=0.5,
897
- title=model_name,
898
- axis_labels=["Observed Values", "Residuals"],
899
- )
900
- x_lim = (
901
- y_true.min() - y_true.min() * 0.05,
902
- y_true.max() + y_true.max() * 0.05,
903
- )
904
- if cls.baseline:
905
- ax.plot(x_lim, (0, 0), **cls.baseline_kwargs)
906
- ax.set_xlim(x_lim)
907
- ax.xaxis.set_major_formatter(FormatStrFormatter("%.2f"))
908
- ax.yaxis.set_major_formatter(FormatStrFormatter("%.2f"))
909
-
910
- @classmethod
911
- def _observed_vs_predicted(cls, axs, evaluation):
912
- n_models = len(evaluation.columns)
913
- for i, ax in enumerate(axs):
914
- if i >= n_models:
915
- ax.axis("off")
916
- return
917
-
918
- model_name = evaluation.columns[i]
919
- mod = evaluation[model_name]
920
- ax.scatter(mod["y_true"], mod["y_pred"], s=4, marker="o", alpha=0.5)
921
-
922
- y_true = np.asarray(mod["y_true"])
923
-
924
- yt_min = y_true.min()
925
- yt_max = y_true.max()
926
-
927
- x_lim = (yt_min - yt_min * 0.05, yt_max + yt_max * 0.05)
928
- if cls.baseline:
929
- ax.plot(x_lim, x_lim, **cls.baseline_kwargs)
930
- ax.set_xlabel("Observed Values")
931
- ax.set_ylabel("Predicted Values")
932
- ax.set_title(model_name, y=1.08, fontsize=14)
933
- ax.grid(linewidth=0.2)
934
- ax.set_xlim(x_lim)
935
-
936
- ax.xaxis.set_major_formatter(FormatStrFormatter("%.2f"))
937
- ax.yaxis.set_major_formatter(FormatStrFormatter("%.2f"))
938
-
939
- @classmethod
940
- def _normalized_confusion_matrix(cls, axs, evaluation):
941
- for model_num, ax in enumerate(axs):
942
- if model_num >= len(evaluation.columns):
943
- ax.axis("off")
944
- return
945
- model_name = evaluation.columns[model_num]
946
- mod = evaluation[model_name]
947
- if cls.prob_type == "_bin":
948
- labels = [str(lab == mod["positive_class"]) for lab in mod["classes"]]
949
- else:
950
- labels = cls.legend_labels.values()
951
-
952
- raw_cm = mod["raw_confusion_matrix"]
953
- cm = np.asarray(mod["confusion_matrix"])
954
-
955
- ax.set_title(
956
- "%s\n" % cls._get_formatted_title(model_name), y=1.08, fontsize=14
957
- )
958
- ax.imshow(cm, interpolation="nearest", cmap="BuGn")
959
- x_tick_marks = np.arange(len(labels))
960
- y_tick_marks = np.arange(len(labels))
961
- ax.set_xticks(x_tick_marks)
962
- ax.set_yticks(y_tick_marks)
963
-
964
- ax.set_xticklabels(labels, rotation=90, fontsize=10)
965
- ax.set_yticklabels(labels, fontsize=10)
966
-
967
- for i, j in itertools.product(
968
- range(raw_cm.shape[0]), range(raw_cm.shape[1])
969
- ):
970
- ax.text(
971
- j,
972
- i,
973
- "%s [%s]" % (round(cm[i][j], 3), raw_cm[i, j]),
974
- horizontalalignment="center",
975
- verticalalignment="center",
976
- rotation=45,
977
- fontsize=max(3, 10 - max(raw_cm.shape[0], raw_cm.shape[1])),
978
- color="white" if cm[i, j] > 0.5 else "black",
979
- )
980
-
981
- ax.set_ylabel("True label", fontsize=10)
982
- ax.set_xlabel("Predicted label", fontsize=10)
983
- ax.grid(False)