oracle-ads 2.13.7__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.7.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.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/WHEEL +2 -1
  4. {oracle_ads-2.13.7.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 -2079
  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.7.dist-info/RECORD +0 -858
  857. {oracle_ads-2.13.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -1,1050 +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
- import numpy as np
8
- from abc import ABC, abstractmethod
9
-
10
- from ads.common import logger, utils
11
- from ads.explanations.base_explainer import GlobalExplainer
12
- from ads.explanations.mlx_interface import check_tabular_or_text
13
- from ads.explanations.mlx_interface import init_lime_explainer
14
- from ads.explanations.mlx_interface import init_permutation_importance_explainer
15
- from ads.explanations.mlx_interface import (
16
- init_partial_dependence_explainer,
17
- init_ale_explainer,
18
- )
19
- from ads.common.decorator.runtime_dependency import (
20
- runtime_dependency,
21
- OptionalDependency,
22
- )
23
- from ads.common.decorator.deprecate import deprecated
24
-
25
-
26
- class MLXGlobalExplainer(GlobalExplainer):
27
- """
28
- Global Explainer class.
29
-
30
- Generates global explanations to help understand the general model
31
- behavior. Supported explanations:
32
-
33
- - (Tabular) Feature Permutation Importance.
34
- - (Tabular) Partial Dependence Plots (PDP) & Individual Conditional
35
- Expectation (ICE).
36
- - (Text) Aggregate local explanations (global explanation approximation
37
- constructed from multiple local explanations).
38
-
39
- Supports:
40
-
41
- - Binary classification.
42
- - Multi-class classification.
43
- - Regression.
44
-
45
- """
46
-
47
- @deprecated(
48
- details="Working with AutoML has moved from within ADS to working directly with the AutoMLx library. AutoMLx are preinstalled in conda pack automlx_p38_cpu_v2 and later, and can now be updated independently of ADS. AutoMLx documentation may be found at https://docs.oracle.com/en-us/iaas/tools/automlx/latest/html/multiversion/v23.1.1/index.html. Notebook examples are in Oracle's samples repository: https://github.com/oracle-samples/oci-data-science-ai-samples/tree/master/notebook_examples and a migration tutorial can be found at https://accelerated-data-science.readthedocs.io/en/latest/user_guide/model_training/automl/quick_start.html .",
49
- raise_error=True,
50
- )
51
- def __init__(self):
52
- super(GlobalExplainer, self).__init__()
53
- self.explainer = None
54
- self.selected_features = None
55
- self.pdp_explainer = None
56
- self.ale_explainer = None
57
-
58
- def compute_feature_importance(
59
- self,
60
- n_iter=20,
61
- sampling=None,
62
- balance=False,
63
- scoring_metric=None,
64
- selected_features=None,
65
- ):
66
- """
67
- Generates a global explanation to help understand the general behavior
68
- of the model. This explainer identifies which features are most important
69
- to the model.
70
-
71
- If the dataset is tabular, computes a global feature permutation importance
72
- explanation. If the dataset is text, approximates a global explanation by
73
- generating and aggregating multiple local explanations.
74
-
75
- Parameters
76
- ----------
77
- n_iter : int, optional
78
- Number of iterations of the permutation importance algorithm to
79
- perform. Increasing this value increases the quality/stability of
80
- the explanation, but increases the explanation time. Default value is 20.
81
- sampling : dict, optional
82
- If not `None`, the dataset is clustered or sampled according to the
83
- provided technique. `sampling` is a dictionary containing the technique
84
- to use and the corresponding parameters. Format is described below:
85
-
86
- - `technique`: Either `cluster` or `random`.
87
- - If `cluster`, also requires:
88
-
89
- - `eps`: Maximum distance between two samples to be considered
90
- in the same cluster.
91
- - `min_samples`: Minimum number of samples to include in each
92
- cluster.
93
-
94
- - If `random`, also requires:
95
-
96
- - `n_samples`: Number of samples to return.
97
-
98
- By default None. Note that text datasets are always sampled. If not provided
99
- with a sampling option, defaults to 40 random samples.
100
- balance : bool, optional
101
- If True, the dataset will be balanced via sampling. If 'sampling' is not
102
- set, the sampling technique defaults to 'random'.
103
- scoring_metric : string, optional
104
- If specified, propegates a string indicating the supported scoring metric.
105
- The scoring metrics available out of the box are the ones made available
106
- by ScyPy. Supported Metrics:
107
-
108
- - Multi-class Classification
109
-
110
- `f1_weighted`, `f1_micro`, `f1_macro`, `recall_weighted`, `recall_micro`, `recall_macro`,
111
- `accuracy`, `balanced_accuracy`, `roc_auc`, `precision_weighted`, `precision_macro`,
112
- `precision_micro`
113
-
114
- - Binary Classification
115
-
116
- Same as multi-class classification
117
-
118
- - Regression
119
-
120
- `r2`, `neg_mean_squared_error`, `neg_root_mean_squared_error`, `neg_mean_absolute_error`,
121
- `neg_median_absolute_error`, `neg_mean_absolute_percentage_error`,
122
- `neg_symmetric_mean_absolute_percentage_error`
123
- selected_features: list[str], list[int], optional
124
- List of the selected features. It can be any subset of
125
- the original features that are in the dataset provided to the model.
126
- Default value is None.
127
-
128
- Returns
129
- -------
130
- :class:FeatureImportance
131
- `FeaturePermutationImportance` explanation object.
132
-
133
- """
134
- self.selected_features = selected_features
135
- self.configure_feature_importance(selected_features=self.selected_features)
136
- if self.explainer.config.type == "text":
137
- labels = list(range(len(self.class_names)))
138
- # The requirement to downsample the text datasets should be fixed at somepoint
139
- if sampling is None:
140
- sampling = {"technique": "random", "n_samples": 40}
141
- explanation = self.explainer.explain_aggregate_local(
142
- self.X_test, sampling=sampling, labels=labels
143
- )
144
- else:
145
- if self.mode_ == "regression":
146
- allowed_metrics = [
147
- "r2",
148
- "neg_mean_squared_error",
149
- "neg_root_mean_squared_error",
150
- "neg_mean_absolute_error",
151
- "neg_median_absolute_error",
152
- "neg_mean_absolute_percentage_error",
153
- "neg_symmetric_mean_absolute_percentage_error",
154
- ]
155
- elif self.mode_ == "classification" and len(self.class_names) == 2:
156
- # Binary classification
157
- allowed_metrics = [
158
- "f1_weighted",
159
- "f1_micro",
160
- "f1_macro",
161
- "recall_weighted",
162
- "recall_micro",
163
- "recall_macro",
164
- "accuracy",
165
- "balanced_accuracy",
166
- "roc_auc",
167
- "precision_weighted",
168
- "precision_macro",
169
- "precision_micro",
170
- ]
171
- else:
172
- # Multiclass classification
173
- allowed_metrics = [
174
- "f1_weighted",
175
- "f1_micro",
176
- "f1_macro",
177
- "recall_weighted",
178
- "recall_micro",
179
- "recall_macro",
180
- "accuracy",
181
- "balanced_accuracy",
182
- "roc_auc",
183
- "precision_weighted",
184
- "precision_macro",
185
- "precision_micro",
186
- ]
187
- if scoring_metric not in allowed_metrics and scoring_metric is not None:
188
- raise Exception(
189
- "Scoring Metric not supported for this type of problem: {}, for problem type {}, the availble supported metrics are {}".format(
190
- scoring_metric, self.mode_, allowed_metrics
191
- )
192
- )
193
- if balance and sampling is None:
194
- sampling = {"technique": "random"}
195
- try:
196
- explanation = self.explainer.compute(
197
- self.X_test,
198
- self.y_test,
199
- n_iter=n_iter,
200
- sampling=sampling,
201
- balance=balance,
202
- scoring_metric=scoring_metric,
203
- )
204
- except IndexError as e:
205
- if selected_features is not None:
206
- raise IndexError(
207
- f"Unable to calculate permutation importance due to: {e}. "
208
- f"selected_features must be a list of features within the bounds of the existing features "
209
- f"(that were provided to model). Provided selected_features: {selected_features}."
210
- )
211
- except Exception as e:
212
- logger.error(
213
- f"Unable to calculate permutation importance scores due to: {e}."
214
- )
215
- raise e
216
- return FeatureImportance(explanation, self.class_names, self.explainer.config)
217
-
218
- def compute_partial_dependence(
219
- self, features, partial_range=(0.00, 1.0), num_samples=30, sampling=None
220
- ):
221
- """
222
- Generates a global partial dependence plot (PDP) and individual conditional
223
- expectation (ICE) plots to help understand the relationship between feature
224
- values and the model target.
225
-
226
- Only supported for tabular datasets.
227
-
228
- Parameters
229
- ----------
230
-
231
- features : list of int, list of str
232
- List of feature names or feature indices to explain.
233
- partial_range : tuple, optional
234
- 2-tuple with the minimum and maximum percentile values to consider for the PDP from
235
- the feature's train distribution. Must be between 0.0 and 1.0.
236
- Defaults to `partial_range = (0.05, 0.95)`.
237
- num_samples : int, optional
238
- Maximum number of samples to generate for each feature within the
239
- `partial_range` of its value distribution. Increasing this value
240
- generates more points to evaluate, but increases the explanation
241
- time. If there are fewer unique values for a feature within the
242
- `partial_range`, the number of unique values is selected. For two-feature
243
- PDP, the total number of evaluated samples is the multiplication
244
- of `num_samples`. Default value is 30.
245
- sampling : dict, optional
246
- If not None, the dataset will be clustered or sampled according to the
247
- provided technique. 'sampling' is a dictionary containing the technique
248
- to use and the corresponding parameters. Format is described below:
249
-
250
- - `technique`: Either "cluster" or "random".
251
- - `cluster` also requires:
252
-
253
- - `eps`: Maximum distance between two samples to be considered
254
- in the same cluster.
255
- - `min_samples`: Minimum number of samples to include in each
256
- cluster.
257
-
258
- - `random` also requires:
259
-
260
- - 'n_samples': Number of samples to return.
261
-
262
- Default value is `None` (no sampling).
263
-
264
- Returns
265
- -------
266
- :class:MLXPartialDependencies
267
- `MLXPartialDependencies` object.
268
-
269
- """
270
- if self.pdp_explainer is None:
271
- self._init_partial_dependence()
272
-
273
- # Wrap in a list if a list is not provided
274
- if not isinstance(features, list):
275
- features = [features]
276
-
277
- # Convert to uppercase to be case-insensitive
278
- features = [str(f).upper() for f in features]
279
- feature_names = np.char.upper(self.X_train.columns.tolist())
280
-
281
- # Fail if we were not provided valid feature names
282
- if not all(np.isin(features, feature_names)):
283
- print("One or more features (%s) does not exist in data." % str(features))
284
- print("Existing features: %s" % str(feature_names))
285
- return
286
-
287
- # Extract the feature ids
288
- feature_ids = np.where(np.isin(feature_names, features))[0].tolist()
289
-
290
- if check_tabular_or_text(self.est, self.X_train) == "tabular":
291
- if len(feature_ids) > 2:
292
- raise ValueError("Maximum number of partial dependency features is 2.")
293
-
294
- return MLXPartialDependencies(
295
- pdp=self.pdp_explainer.compute(
296
- data=self.X_train,
297
- partial_ids=feature_ids,
298
- partial_range=partial_range,
299
- num_samples=num_samples,
300
- sampling=sampling,
301
- ),
302
- pdp_exp=self.pdp_explainer,
303
- )
304
- else:
305
- raise ValueError(
306
- "Partial Dependence Plot is not supported for text classification dataset."
307
- )
308
-
309
- def compute_accumulated_local_effects(
310
- self,
311
- feature,
312
- partial_range=(0.00, 1.0),
313
- num_samples=30,
314
- sampling=None,
315
- corr_threshold=0.7,
316
- ):
317
- """
318
- Generates the accumulated local effects plots to help understand the relationship between feature
319
- values and the model target.
320
-
321
- Only supported for tabular datasets.
322
-
323
- Parameters
324
- ----------
325
- feature : str
326
- Feature name to explain.
327
- partial_range : tuple, optional
328
- Min/max percentile values to consider for the ALE from the
329
- feature's train distribution. Must be between 0.0 and 1.0.
330
- By default `partial = (0.05, 0.95)`.
331
- num_samples : int, optional
332
- Maximum number of samples to generate for each feature within the
333
- `partial_range` of its value distribution. Increasing this value
334
- generates more points to evaluate, but increases the explanation
335
- time. If there are fewer unique values for a feature within the
336
- `partial_range`, the number of unique values is selected.
337
- sampling : dict, optional
338
- If not `None`, the dataset is clustered or sampled according to the
339
- provided technique. `sampling` is a dictionary containing the technique
340
- to use and the corresponding parameters. The format is:
341
-
342
- - `technique`: Can be either "cluster" or "random".
343
- - `cluster` also requires:
344
-
345
- - `eps`: Maximum distance between two samples to be considered
346
- in the same cluster.
347
- - `min_samples`: Minimum number of samples to include in each
348
- cluster.
349
-
350
- - `random` also requires:
351
-
352
- - `n_samples`: Number of samples to return.
353
-
354
- Defaults to `None` (no sampling).
355
-
356
- corr_threshold : float, optional
357
- Value between 0.0 and 1.0 for which a feature is considered highly correlated with
358
- another feature (Default = 0.7).
359
-
360
- Returns
361
- -------
362
- :class:MLXAccumulatedLocalEffects
363
- `AccumulatedLocalEffects` explanation object.
364
-
365
- """
366
- if self.ale_explainer is None:
367
- self._init_accumulated_local_effects()
368
-
369
- # Wrap in a list if a list is not provide, to be able support list of two features in the near future.
370
- if not isinstance(feature, list):
371
- feature = [feature]
372
-
373
- # Convert to uppercase to be case-insensitive
374
- feature = [str(f).upper() for f in feature]
375
- feature_names = np.char.upper(self.X_train.columns.tolist())
376
-
377
- # Fail if we were not provided valid feature names
378
- if not all(np.isin(feature, feature_names)):
379
- print("One or more features (%s) does not exist in data." % str(feature))
380
- print("Existing features: %s" % str(feature_names))
381
- return
382
-
383
- # Extract the feature ids
384
- feature_ids = np.where(np.isin(feature_names, feature))[0].tolist()
385
-
386
- if check_tabular_or_text(self.est, self.X_train) == "tabular":
387
- if len(feature_ids) > 1:
388
- raise ValueError(
389
- "Maximum number of Accumulated Local Effects features is 1."
390
- )
391
-
392
- return MLXAccumulatedLocalEffects(
393
- ale=self.ale_explainer.compute(
394
- data=self.X_train,
395
- partial_ids=feature_ids,
396
- partial_range=partial_range,
397
- num_samples=num_samples,
398
- sampling=sampling,
399
- corr_threshold=corr_threshold,
400
- ),
401
- ale_exp=self.ale_explainer,
402
- )
403
- else:
404
- raise ValueError(
405
- "Accumulated Local Effects Plot is not supported for text classification dataset."
406
- )
407
-
408
- @runtime_dependency(module="IPython", install_from=OptionalDependency.NOTEBOOK)
409
- def show_in_notebook(self): # pragma: no cover
410
- """
411
- Generates and visualizes the global feature importance explanation.
412
- """
413
- with utils.get_progress_bar(3, description="Model Explanation") as bar:
414
- bar.update("begin computing")
415
- bar.update("calculating feature importance")
416
- explainer_holder = self.compute_feature_importance(
417
- selected_features=self.selected_features
418
- )
419
- plot1 = explainer_holder.show_in_notebook()
420
- bar.update("calculating partial dependence plot")
421
- pdp_plot_feature_name = explainer_holder.explanation
422
- # pdp_plot_feature_name = explainer_holder.explanation.get_global_explanation().index[0]
423
- pdp_plot = self.compute_partial_dependence([pdp_plot_feature_name])
424
- # plot2 = pdp_plot.show_in_notebook()
425
-
426
- from IPython.core.display import display, HTML
427
-
428
- display(HTML(plot1.data))
429
- # display(HTML(plot1.data + plot2.data))
430
-
431
- def configure_feature_importance(self, **kwargs):
432
- """
433
- Validates and initializes the feature importance explainer based on the provided
434
- configuration parameters in kwargs. Tabular datasets use the feature permutation
435
- importance explainer, text datasets use the aggregate local explainer.
436
-
437
- Supported configuration options:
438
-
439
- - For tabular datasets:
440
-
441
- - `client`: Currently only allowed to be None to disable parallelization.
442
- - `random_state`: None, int, or instance of Randomstate.
443
- - `selected_features`: None, or list of the selected features.
444
-
445
- - For text datasets:
446
-
447
- - `surrogate_model`: Surrogate model to use. Can be 'linear' or 'decision_tree'.
448
- - `num_samples`: Number of generated samples to fit the surrogate model. Int.
449
- - `exp_sorting`: Feature importance sorting. Can be 'absolute' or 'ordered'.
450
- - `scale_weight`: Normalizes the feature importance coefficients from LIME to sum to one.
451
- - `client`: Currently only allowed to be None to disable parallelization.
452
- - `batch_size`: Number of local explanations per Dask worker.
453
- - `random_state`: None, int, or instance of Randomstate.
454
- - `selected_features`: None, or list of the selected features.
455
-
456
- Parameters
457
- ----------
458
- kwargs : dict
459
- Keyword parameter dictionary.
460
-
461
- Returns
462
- -------
463
- MLXGlobalExplainer
464
- the modified instance (self)
465
-
466
- """
467
-
468
- if check_tabular_or_text(self.est, self.X_train) == "tabular":
469
- avail_args = ["client", "random_state", "selected_features"]
470
- else:
471
- avail_args = [
472
- "client",
473
- "random_state",
474
- "surrogate_model",
475
- "num_samples",
476
- "exp_sorting",
477
- "scale_weight",
478
- "batch_size",
479
- "selected_features",
480
- ]
481
-
482
- for k, _ in kwargs.items():
483
- if k not in avail_args:
484
- raise ValueError(
485
- "Unexpected argument for the feature importance explainer: {}".format(
486
- k
487
- )
488
- )
489
-
490
- if kwargs.get("client", None) is not None:
491
- raise ValueError(
492
- "Invalid client provided. Currently only supports disabling parallelization "
493
- "by setting client=None"
494
- )
495
- if kwargs.get("surrogate_model", None) not in ["linear", "decision_tree", None]:
496
- raise ValueError(
497
- "Invalid surrogate_model provided. Currently only supports linear or decision_tree"
498
- )
499
- selected_features = kwargs.get("selected_features")
500
- if selected_features is not None and not isinstance(selected_features, list):
501
- raise ValueError(
502
- f"selected_features ({selected_features}) value must be a list of features, "
503
- f"but it is of type: {type(selected_features)}."
504
- )
505
-
506
- self._init_feature_importance(**kwargs)
507
- return self
508
-
509
- def configure_partial_dependence(self, **kwargs):
510
- """
511
- Validates and initializes the partial dependence explainer based on the provided
512
- configuration parameters in kwargs. Only supports tabular datasets.
513
-
514
- Supported configuration options:
515
- client: Currently only supports 'None' to disable parallelization.
516
-
517
- Parameters
518
- ----------
519
- kwargs : dict
520
- Keyword parameter dictionary.
521
-
522
- Returns
523
- -------
524
- MLXGlobalExplainer
525
- the modified instance (self)
526
- """
527
-
528
- for k, _ in kwargs.items():
529
- if k not in ["client"]:
530
- raise ValueError(
531
- "Unexpected argument for the partial dependence explainer: {}".format(
532
- k
533
- )
534
- )
535
- if kwargs.get("client", None) is not None:
536
- raise ValueError(
537
- "Invalid client provided. Currently only supports disabling parallelization "
538
- "by setting client=None"
539
- )
540
- self._init_partial_dependence(**kwargs)
541
- return self
542
-
543
- def configure_accumulated_local_effects(self, **kwargs):
544
- """
545
- Validates and initializes the accumulated local effects explainer based on the provided
546
- configuration parameters in kwargs. Only supports tabular datasets.
547
-
548
- Supported configuration options:
549
-
550
- - client: Currently only supports 'None' to disable parallelization.
551
-
552
- Parameters
553
- ----------
554
- kwargs : dict
555
- Keyword parameter dictionary.
556
-
557
- Returns
558
- -------
559
- MLXGlobalExplainer
560
- the modified instance (self)
561
- """
562
-
563
- for k, _ in kwargs.items():
564
- if k not in ["client"]:
565
- raise ValueError(
566
- "Unexpected argument for the accumulated local effects explainer: {}".format(
567
- k
568
- )
569
- )
570
- if kwargs.get("client", None) is not None:
571
- raise ValueError(
572
- "Invalid client provided. Currently only supports disabling parallelization "
573
- "by setting client=None"
574
- )
575
- self._init_accumulated_local_effects(**kwargs)
576
- return self
577
-
578
- def feature_importance_summary(self):
579
- """
580
- Displays detailed information about the feature importance explainer.
581
-
582
- Returns
583
- -------
584
- str
585
- HTML object representing the explainer summary.
586
-
587
- """
588
-
589
- if self.explainer is None:
590
- self.compute_feature_importance(selected_features=self.selected_features)
591
- return self.explainer.show_in_notebook()
592
-
593
- def partial_dependence_summary(self):
594
- """
595
- Displays detailed information about the partial dependence explainer.
596
-
597
- Returns
598
- -------
599
- str
600
- HTML object representing the explainer summary.
601
- """
602
-
603
- if self.pdp_explainer is None:
604
- self._init_partial_dependence()
605
- return self.pdp_explainer.show_in_notebook()
606
-
607
- def accumulated_local_effects_summary(self):
608
- """
609
- Displays detailed information about the accumulated local effects explainer.
610
-
611
- Returns
612
- -------
613
- str
614
- HTML object representing the explainer summary.
615
- """
616
-
617
- if self.ale_explainer is None:
618
- self._init_accumulated_local_effects()
619
- return self.ale_explainer.show_in_notebook()
620
-
621
- def _init_feature_importance(self, **kwargs):
622
- """
623
- Internal function to initialize the feature importance explainer. Tabular datasets
624
- use the feature permutation importance explainer, text datasets use the aggregate local
625
- explainer.
626
-
627
- Parameters
628
- ----------
629
- kwargs : dict
630
- Keyword parameter dictionary.
631
- """
632
- if self.mode == "regression":
633
- self.class_names_ = ["Target"]
634
- if check_tabular_or_text(self.est, self.X_train) == "tabular":
635
- self.explainer = init_permutation_importance_explainer(
636
- self.explainer,
637
- self.est,
638
- self.X_train,
639
- self.y_train,
640
- self.mode,
641
- class_names=self.class_names,
642
- **kwargs,
643
- )
644
- else:
645
- self.explainer = init_lime_explainer(
646
- self.explainer,
647
- self.est,
648
- self.X_train,
649
- self.y_train,
650
- self.mode,
651
- class_names=self.class_names,
652
- **kwargs,
653
- )
654
-
655
- def _init_partial_dependence(self, **kwargs):
656
- """
657
- Internal function to initialize the partial dependence explainer.
658
-
659
- Parameters
660
- ----------
661
- kwargs : dict
662
- Keyword parameter dictionary.
663
- """
664
- if self.mode == "regression":
665
- self.class_names_ = ["Target"]
666
- self.pdp_explainer = init_partial_dependence_explainer(
667
- self.pdp_explainer,
668
- self.est,
669
- self.X_train,
670
- self.y_train,
671
- self.mode,
672
- class_names=self.class_names,
673
- **kwargs,
674
- )
675
-
676
- def _init_accumulated_local_effects(self, **kwargs):
677
- """
678
- Internal function to initialize the accumulated local effects explainer.
679
-
680
- Parameters
681
- ----------
682
- kwargs : dict
683
- Keyword parameter dictionary.
684
- """
685
- if self.mode == "regression":
686
- self.class_names_ = ["Target"]
687
- self.ale_explainer = init_ale_explainer(
688
- self.ale_explainer,
689
- self.est,
690
- self.X_train,
691
- self.y_train,
692
- self.mode,
693
- class_names=self.class_names,
694
- **kwargs,
695
- )
696
-
697
-
698
- class MLXFeatureDependenceExplanation(ABC):
699
-
700
- __name__ = "MLXFeatureDependenceExplanation"
701
-
702
- def __init__(self, fd, fd_exp):
703
- self.fd = fd
704
- self.fd_exp = fd_exp
705
-
706
- @abstractmethod
707
- def show_in_notebook(
708
- self,
709
- labels=None,
710
- cscale="YIGnBu",
711
- show_distribution=True,
712
- discrete_threshold=0.15,
713
- # line_gap=0, # will add it back after ALE starts handling two features, remember to add the doc string too
714
- show_correlation_warning=True,
715
- centered=False,
716
- show_median=True,
717
- ): # pragma: no cover
718
- """
719
- Visualize PDP/ICE plots in the Notebook.
720
-
721
- Parameters
722
- ----------
723
- labels : tuple, list, int, bool, str, optional
724
- labels to visualize.
725
- cscale : str, optional
726
- Plotly color scale to use for the heatmap. See the standard Plotly color scales for available options
727
- Default value is "YIGnBu".
728
- show_distribution : bool, optional
729
- If `True`, the feature’s value distribution (from the train set) will be shown along the
730
- corresponding axis in the 1-feature or 2-feature plot. Default is `True`.
731
- discrete_threshold : float, optional
732
- Value between 0.0 and 1.0 indicating the fraction of unique values required for a numerical feature
733
- to be considered discrete or continuous. Default is 0.15.
734
- show_correlation_warning : bool, optional
735
- If `True`, the correlated feature warning is shown. Default is `True`.
736
- centered : bool, optional
737
- If `True`, ICE plots is centered based on the first value of each sample (i.e., all values are
738
- subtracted from the first value). Default is False.
739
- show_median : bool, optional
740
- If True, a median line is included in the ICE explanation plot. Default is True.
741
-
742
- Returns
743
- -------
744
- str
745
- Plotly HTML object containing a line chart, heat map, or violin plot for this feature dependence explanation
746
- """
747
- pass
748
-
749
- def as_dataframe(self):
750
- """
751
- Returns the raw explanation data as a pandas.DataFrame.
752
-
753
- Returns
754
- -------
755
- pandas.DataFrame
756
- DataFrame containing the raw PDP explanation data.
757
- """
758
- return self.fd.as_dataframe()
759
-
760
- def get_diagnostics(self):
761
- """
762
- Extracts the raw explanation and evaluation data from the explanation object
763
- (Used to generate the visualizations).
764
-
765
- Returns
766
- -------
767
- dict
768
- Dictionary containing the raw explanation/evaluation data.
769
- """
770
- return self.fd.get_diagnostic()
771
-
772
-
773
- class MLXPartialDependencies(MLXFeatureDependenceExplanation):
774
- """
775
- Represents the object constructed by the :class:`MLXGlobalExplainer`.
776
-
777
- Contains functions to visualize the explanation and extract raw explanation data.
778
- """
779
-
780
- __name__ = "MLXPartialDependencies"
781
-
782
- def __init__(self, pdp, pdp_exp):
783
- super(MLXPartialDependencies, self).__init__(pdp, pdp_exp)
784
-
785
- def show_in_notebook(
786
- self,
787
- mode="pdp",
788
- labels=None,
789
- cscale="YIGnBu",
790
- show_distribution=True,
791
- discrete_threshold=0.15,
792
- line_gap=0,
793
- show_correlation_warning=True,
794
- centered=False,
795
- show_median=True,
796
- ):
797
- """
798
- Visualize PDP/ICE plots in the Notebook.
799
-
800
- Parameters
801
- ----------
802
- mode : str, optional
803
- Type to visualize. Either "pdp" or "ice". Default is "pdp".
804
- labels : tuple, list, int, bool, str, optional
805
- labels to visualize.
806
- cscale : str, optional
807
- Plotly color scale to use for the heatmap. See the standard Plotly color scales for available options
808
- Default value is "YIGnBu".
809
- show_distribution : bool, optional
810
- If `True`, the feature’s value distribution (from the train set) will be shown along the
811
- corresponding axis in the 1-feature or 2-feature plot. Default is `True`.
812
- discrete_threshold : float, optional
813
- Value between 0.0 and 1.0 indicating the fraction of unique values required for a numerical feature
814
- to be considered discrete or continuous. Default is 0.15.
815
- line_gap : int, optional
816
- Width of the gap between values in the two-feature PDP heat map. Default is 0.
817
- show_correlation_warning : bool, optional
818
- If `True`, the correlated feature warning are shown. Default is `True`.
819
- centered : bool, optional
820
- If `True`, ICE plots are centered based on the first value of each sample (i.e., all values are
821
- subtracted from the first value). Default is `False`.
822
- show_median : bool, optional
823
- If `True`, a median line is included in the ICE explanation plot. Default is `True`.
824
-
825
- Returns
826
- -------
827
- str
828
- Plotly HTML object containing a line chart, heat map, or violin plot for this feature dependence explanation
829
- """
830
- return self.fd.show_in_notebook(
831
- mode=mode,
832
- labels=labels,
833
- cscale=cscale,
834
- show_distribution=show_distribution,
835
- discrete_threshold=discrete_threshold,
836
- line_gap=line_gap,
837
- show_correlation_warning=show_correlation_warning,
838
- centered=centered,
839
- show_median=show_median,
840
- )
841
-
842
-
843
- class MLXAccumulatedLocalEffects(MLXFeatureDependenceExplanation):
844
- """
845
- Accumulated Local Effects explanation object constructed by the `:class:MLXGlobalExplainer`.
846
-
847
- Contains functions to visualize the explanation in a Notebook and extract the
848
- raw explanation data.
849
- """
850
-
851
- __name__ = "MLXAccumulatedLocalEffects"
852
-
853
- def __init__(self, ale, ale_exp):
854
- super(MLXAccumulatedLocalEffects, self).__init__(ale, ale_exp)
855
-
856
- def show_in_notebook(
857
- self,
858
- labels=None,
859
- cscale="YIGnBu",
860
- show_distribution=True,
861
- discrete_threshold=0.15,
862
- show_correlation_warning=True,
863
- centered=False,
864
- show_median=True,
865
- ):
866
- """
867
- Visualize ALE plots in the Notebook.
868
-
869
- Parameters
870
- ----------
871
- labels : tuple, list, int, bool, str, optional
872
- labels to visualize.
873
- cscale : str, optional
874
- Plotly color scale to use for the heatmap. See the standard Plotly color scales for available options
875
- Default value is "YIGnBu".
876
- show_distribution : bool, optional
877
- If `True`, the feature’s value distribution (from the train set) will be shown along the
878
- corresponding axis in the 1-feature. Default is `True`.
879
- discrete_threshold : float, optional
880
- Value between 0.0 and 1.0 indicating the fraction of unique values required for a numerical feature
881
- to be considered discrete or continuous. Default is 0.15.
882
- show_correlation_warning : bool, optional
883
- If `True`, the correlated feature warning will be shown. Default is `True`.
884
- centered : bool, optional
885
- If `True`, ALE plots will be centered based on the first value of each sample (i.e., all values are
886
- subtracted from the first value). Default is `False`.
887
- show_median : bool, optional
888
- If `True`, a median line is included in the ALE explanation plot. Default is `True`.
889
-
890
- Returns
891
- -------
892
- str
893
- Plotly HTML object containing a line chart, heat map, or violin plot for this feature dependence explanation
894
- """
895
- return self.fd.show_in_notebook(
896
- mode="pdp",
897
- labels=labels,
898
- cscale=cscale,
899
- show_distribution=show_distribution,
900
- discrete_threshold=discrete_threshold,
901
- line_gap=0,
902
- show_correlation_warning=show_correlation_warning,
903
- centered=centered,
904
- show_median=show_median,
905
- )
906
-
907
-
908
- class FeatureImportance:
909
- """
910
- Feature Permutation Importance explanation object constructed by the
911
- :class:`MLXGlobalExplainer` class.
912
-
913
- Contains functions to visualize the explanation in a Notebook and extract the
914
- raw explanation data.
915
- """
916
-
917
- def __init__(self, explanation, class_names, type):
918
- self.explanation = explanation
919
- self.class_names = class_names
920
- self.type = type
921
- if isinstance(self.class_names, np.ndarray):
922
- self.class_names = self.class_names.tolist()
923
-
924
- def show_in_notebook(
925
- self,
926
- mode=None,
927
- show=None,
928
- labels=None,
929
- cscale="YIGnBu",
930
- colormap=None,
931
- return_wordcloud=False,
932
- n_features=None,
933
- **kwargs,
934
- ):
935
- """
936
- Generates a visualization for the local explanation. Depending on the type of explanation, different
937
- visualizations are supported. See the "mode" and "show" parameters below.
938
-
939
- Parameters
940
- ----------
941
- mode : str
942
- Type of visualization to generate. Certain visualization modes are only supported for either text or
943
- tabular datasets. Supported options:
944
-
945
- - `bar`: Generates a horizontal bar chart for the most important features (text and tabular).
946
- - `stacked`: Generates a stacked horizontal bar chart for the most important features (text and tabular).
947
- - `box_plot`: Generates a box plot for the most important features, which provides more information
948
- about the explanation over the different iterations of the feature permutation importance
949
- algorithm (tabular only).
950
- - `detailed`: Generates a scatter plot for the most important features, providing even more
951
- information about the explanation over the different iterations of the Feature Permutation
952
- Importance algorithm (tabular only).
953
- - `heatmap`: Generates a heatmap representing the average feature/word importance over multiple
954
- local explanations (aggregates local explanations). Average feature importance is measured by
955
- the fraction of local explanations where a given feature was assigned a given importance
956
- (text only).
957
- - `wordcloud`: Generates a wordcloud from the average feature importance. Features/words with
958
- higher importance are larger than features/words with lower importance (text only).
959
-
960
- Default value is "bar" for tabular and "wordcloud" for text.
961
- show : str
962
- (text only) Secondary visualization mode for configuring the visualization.
963
- Can be one of:
964
-
965
- - `absolute`: The absolute value of feature importances are shown (i.e., a feature that is highly
966
- important towards or against the target label is considered important).
967
- - `posneg`: Shows both the positive and negative global feature attributions. For bar, the features
968
- are ordered based on their absolute feature importance (sum of pos/neg) and a dual bar chart shows
969
- the fraction of local explanations where the feature contributed both towards and against the
970
- corresponding label. For wordcloud, two wordclouds are generated for the positive and negative feature
971
- importances. Only valid for mode=bar and mode=wordcloud. `mode=heatmap` defaults to `show=absolute`.
972
-
973
- labels : tuple, list, int, bool, str
974
- (text only) Label indices to visualize. If `None`, all of the labels that the explanation was generated for
975
- will be visualized. By default None.
976
- cscale : str, optional
977
- Plotly color scale to use for the heatmap. See the standard Plotly color scales for available
978
- options. Default value is "YIGnBu".
979
- colormap : list of str, optional
980
- List of colormaps to use for the wordclouds. One per label. Defaults to `None`.
981
- return_wordcloud : bool, optional
982
- If `True`, the generated wordcloud objects are returned instead of visualized. Defaults
983
- to `False`.
984
- n_features : int, optional
985
- (tabular only). Allows the user to visualize a subset of the top-N most important features from the explainer.
986
- If `n_features` is `None` or greater than the total number of features, all features are shown. If
987
- `n_features` is not an `int` or <= 0, an exception is thrown.
988
- kwargs : dict
989
- Keyword arguments for configuring the wordclouds.
990
-
991
- Returns
992
- -------
993
- str, list of wordcloud
994
- HTML string for the visualization or list of generated wordcloud objects if `return_wordcloud=True`,
995
- two per label (+/-).
996
- """
997
- if self.type.type == "text":
998
- if labels:
999
- labels = [
1000
- self.class_names.index(label) if isinstance(label, str) else label
1001
- for label in labels
1002
- ]
1003
- else:
1004
- labels = list(range(len(self.class_names)))
1005
- if len(self.class_names) == 2:
1006
- return self.explanation.show_in_notebook()
1007
- else:
1008
- return self.explanation.show_in_notebook(
1009
- mode=mode if mode else "wordcloud",
1010
- show=show,
1011
- labels=labels,
1012
- cscale=cscale,
1013
- colormap=colormap,
1014
- return_wordcloud=return_wordcloud,
1015
- **kwargs,
1016
- )
1017
- else:
1018
- if labels:
1019
- raise ValueError("label is supported only for text explanation.")
1020
- return self.explanation.show_in_notebook(
1021
- n_features=n_features, mode=mode if mode else "bar"
1022
- )
1023
-
1024
- def get_global_explanation(self):
1025
- """
1026
- Returns the raw global explanation data only.
1027
-
1028
- Returns
1029
- -------
1030
- dict
1031
- Dictionary containing raw explanation data.
1032
- """
1033
- return self.explanation.get_global_explanation()
1034
-
1035
- def get_diagnostics(self):
1036
- """
1037
- Extracts the raw explanation and evaluation data from the explanation object
1038
- (Used to generate the visualizations).
1039
-
1040
- Returns
1041
- -------
1042
- dict
1043
- Dictionary containing the raw explanation/evaluation data.
1044
- """
1045
- return self.explanation.get_diagnostic()
1046
-
1047
-
1048
- class GlobalExplanationsException(TypeError):
1049
- def __init__(self, msg):
1050
- super(GlobalExplanationsException, self).__init__(msg)