diff --git a/machine-learning/labs/oml4py-live-labs/Lab1_Get_Started_with_OML4Py_on_Autonomous_Database.json b/machine-learning/labs/oml4py-live-labs/Lab1_Get_Started_with_OML4Py_on_Autonomous_Database.json index 5e7adf71..a9651ff8 100755 --- a/machine-learning/labs/oml4py-live-labs/Lab1_Get_Started_with_OML4Py_on_Autonomous_Database.json +++ b/machine-learning/labs/oml4py-live-labs/Lab1_Get_Started_with_OML4Py_on_Autonomous_Database.json @@ -1 +1 @@ -{"paragraphs":[{"text":"%md\n## **Initiate a call to the Python interpreter**\nTo run Python commands in a notebook, you must first connect to the Python interpreter. This occurs as a result of running your first `%python` paragraph. To use OML4Py, you must import the `oml` module, which automatically establishes a connection to your database. In an Oracle Machine Learning notebook, you can add multiple paragraphs, and each paragraph can be connected to different interpreters such as SQL or Python. This example shows you how to:\n\n* Connect to a Python interpreter to run Python commands in a notebook\n* Import the Python modules—oml, pandas, numpy, and matplotlib\n* Check if the oml module is connected to the database\n\nNote: `z` is a reserved keyword and must not be used as a variable in %python paragraphs in Oracle Machine Learning Notebooks. You will see `z.show()` fucntion used in the examples to display Python object and proxy object content.\n","user":"OMLUSER","dateUpdated":"2021-09-22T20:18:30+0000","config":{"colWidth":12,"fontSize":9,"enabled":true,"results":{},"editorSetting":{"language":"md","editOnDblClick":false},"editorMode":"ace/mode/markdown","editorHide":true},"settings":{"params":{},"forms":{}},"results":{"code":"SUCCESS","msg":[{"type":"HTML","data":"
To run Python commands in a notebook, you must first connect to the Python interpreter. This occurs as a result of running your first %python paragraph. To use OML4Py, you must import the oml module, which automatically establishes a connection to your database. In an Oracle Machine Learning notebook, you can add multiple paragraphs, and each paragraph can be connected to different interpreters such as SQL or Python. This example shows you how to:
Note: z is a reserved keyword and must not be used as a variable in %python paragraphs in Oracle Machine Learning Notebooks. You will see z.show() fucntion used in the examples to display Python object and proxy object content.
Using the default interpreter bindings, OML Notebooks automatically establishes a database connection for the notebook.
\nTo verify the Python interpreter has established a database connection through the oml module, run the command shown below. If the notebook is connected, the command returns True.
The Python help function is used to display the documentation of packages, modules, functions, classes, and keywords. The help function has the following syntax:
\n"}]},"interrupted":false,"jobName":"paragraph_1633114986450_563552517","id":"20211001-190306_759056463","dateCreated":"2021-03-22T18:18:00+0000","dateStarted":"2021-09-22T20:18:44+0000","dateFinished":"2021-09-22T20:18:44+0000","status":"FINISHED","progressUpdateIntervalMs":500,"commited":true,"$$hashKey":"object:380"},{"text":"%python\n\nhelp([object])","user":"OMLUSER","dateUpdated":"2021-09-22T20:18:44+0000","config":{"editorSetting":{"language":"text","editOnDblClick":false},"colWidth":12,"editorMode":"ace/mode/undefined","fontSize":9,"results":{},"enabled":true},"settings":{"params":{},"forms":{}},"results":{"code":"SUCCESS","msg":[{"type":"TEXT","data":"Help on list object:\n\nclass list(object)\n | list(iterable=(), /)\n | \n | Built-in mutable sequence.\n | \n | If no argument is given, the constructor creates a new empty list.\n | The argument must be an iterable if specified.\n | \n | Methods defined here:\n | \n | __add__(self, value, /)\n | Return self+value.\n | \n | __contains__(self, key, /)\n | Return key in self.\n | \n | __delitem__(self, key, /)\n | Delete self[key].\n | \n | __eq__(self, value, /)\n | Return self==value.\n | \n | __ge__(self, value, /)\n | Return self>=value.\n | \n | __getattribute__(self, name, /)\n | Return getattr(self, name).\n | \n | __getitem__(...)\n | x.__getitem__(y) <==> x[y]\n | \n | __gt__(self, value, /)\n | Return self>value.\n | \n | __iadd__(self, value, /)\n | Implement self+=value.\n | \n | __imul__(self, value, /)\n | Implement self*=value.\n | \n | __init__(self, /, *args, **kwargs)\n | Initialize self. See help(type(self)) for accurate signature.\n | \n | __iter__(self, /)\n | Implement iter(self).\n | \n | __le__(self, value, /)\n | Return self<=value.\n | \n | __len__(self, /)\n | Return len(self).\n | \n | __lt__(self, value, /)\n | Return selfFor example,
\noml.create function, type the below code.To view the help files for oml module, type the code below.
Last Updated Date - September 2021
\nCopyright (c) 2021 Oracle Corporation
\nTo run Python commands in a notebook, you must first connect to the Python interpreter. This occurs as a result of running your first %python paragraph. To use OML4Py, you must import the oml module, which automatically establishes a connection to your database. In an Oracle Machine Learning notebook, you can add multiple paragraphs, and each paragraph can be connected to different interpreters such as SQL or Python. This example shows you how to:
Note: z is a reserved keyword and must not be used as a variable in %python paragraphs in Oracle Machine Learning Notebooks. You will see z.show() fucntion used in the examples to display Python object and proxy object content.
Using the default interpreter bindings, OML Notebooks automatically establishes a database connection for the notebook.
\nTo verify the Python interpreter has established a database connection through the oml module, run the command shown below. If the notebook is connected, the command returns True.
The Python help function is used to display the documentation of packages, modules, functions, classes, and keywords. The help function has the following syntax:
\n"}]},"interrupted":false,"jobName":"paragraph_1633114986450_563552517","id":"20211001-190306_759056463","dateCreated":"2021-03-22T18:18:00+0000","dateStarted":"2021-09-22T20:18:44+0000","dateFinished":"2021-09-22T20:18:44+0000","status":"FINISHED","progressUpdateIntervalMs":500,"commited":true,"$$hashKey":"object:380"},{"text":"%python\n\nhelp([object])","user":"OMLUSER","dateUpdated":"2021-09-22T20:18:44+0000","config":{"editorSetting":{"language":"text","editOnDblClick":false},"colWidth":12,"editorMode":"ace/mode/undefined","fontSize":9,"results":{},"enabled":true},"settings":{"params":{},"forms":{}},"results":{"code":"SUCCESS","msg":[{"type":"TEXT","data":"Help on list object:\n\nclass list(object)\n | list(iterable=(), /)\n | \n | Built-in mutable sequence.\n | \n | If no argument is given, the constructor creates a new empty list.\n | The argument must be an iterable if specified.\n | \n | Methods defined here:\n | \n | __add__(self, value, /)\n | Return self+value.\n | \n | __contains__(self, key, /)\n | Return key in self.\n | \n | __delitem__(self, key, /)\n | Delete self[key].\n | \n | __eq__(self, value, /)\n | Return self==value.\n | \n | __ge__(self, value, /)\n | Return self>=value.\n | \n | __getattribute__(self, name, /)\n | Return getattr(self, name).\n | \n | __getitem__(...)\n | x.__getitem__(y) <==> x[y]\n | \n | __gt__(self, value, /)\n | Return self>value.\n | \n | __iadd__(self, value, /)\n | Implement self+=value.\n | \n | __imul__(self, value, /)\n | Implement self*=value.\n | \n | __init__(self, /, *args, **kwargs)\n | Initialize self. See help(type(self)) for accurate signature.\n | \n | __iter__(self, /)\n | Implement iter(self).\n | \n | __le__(self, value, /)\n | Return self<=value.\n | \n | __len__(self, /)\n | Return len(self).\n | \n | __lt__(self, value, /)\n | Return selfFor example,
\noml.create function, type the below code.To view the help files for oml module, type the code below.
Last Updated Date - September 2021
\nCopyright (c) 2021 Oracle Corporation
\nIn this notebook, we will load data used in other notebooks that require the The original dataset contains customer insurance lifetime value information, including customer financial information, lifetime value, and whether or not the customer bought insurance.<\/p>\n We will take the original table and will tweak the data, with some original values being replaced by The source of the data is a CSV file stored in Oracle Machine Learning GitHub folder<\/a>, which will be imported into the current user's schema using the Copyright (c) 2025 Oracle Corporation<\/p>\n This table will be used in other notebooks and allow us to build the We will pull the data from OML dataset storage in GitHub using the More details on Oracle Machine Learning Notebooks provide a conda interpreter to install third-party Python and R packages in a conda environment for use within OML Notebooks sessions, as well as within OML4R and OML4Py embedded execution invocations. Conda is an open source package and environment management system that enables the use of virtual environments containing third-party R and Python packages. With conda environments, you can install and update packages and their dependencies, and switch between environments to use project-specific packages. Administrators create conda environments and install packages that can then be accessed by non-administrator users and loaded into their OML Notebooks session. The conda environments can be used in the OML4Py Python, SQL, and REST APIs, and the OML4R R, SQL, and REST APIs. In this notebook, we demonstrate a typical workflow for third-party environment creation and package installation in OML notebooks. Section 1 contains common commands used by ADMIN while creating and testing conda environments. In section 2, the ADMIN user creates a conda environment, installs packages, and uploads the conda environment to an Object Storage bucket associated with the Autonomous Database. In the template notebooks titled, OML Third-Party Packages - R Environment Usage and OML Third-Party Packages - Python Environment Usage, the OML user downloads and activates the environment, and uses the packages in their notebook session. Copyright (c) 2025 Oracle Corporation Refer to Using Oracle Machine Learning on Autonomous Database for a table of supported conda commands. This notebook reviews the following conda commands: To get help for conda commands, run the command name followed by the The The A set of enhanced conda commands in the conda environment lifecycle management package The ADMIN user has the permissions to create conda environments and install packages. Start by listing the environments available by default. Conda contains default environments with some core system libraries and conda dependencies. The active environment is marked with an asterisk (*). This section demonstrates creating and installing packages to a conda environment, then removes the environment. We illustrate commonly used options available for environment creation and testing. The environment exists for the duration of the notebook session and does not persist between sessions unless it is saved to Object Storage. For instructions that include both creating and persisting an environment for OML users, refer to the section 2, Create a Conda Environment and Upload to Object Storage. As ADMIN user: Notes: When conda installs a package into an environment it also installs any required dependencies. While we are demonstrating that it's possible to install packages to an existing environment, it is a best practice to install all the packages that you want in a specific environment at the same time to avoid package dependency conflicts. The ADMIN user can access the conda environment from Python and R, but does not have the capability to run embedded Python and R execution commands. For help with the conda Create conda environment called myenv with Python 3.12 for OML4Py compatibility and install the keras package. Verify the myenv environment is in the list of environments. The asterisk (*) indicates active environments. The new environment is created but not activated. Activate the myenv environment and list the environments to verify the activation. The asterisk (*) next to the environment name confirms the activation. The ADMIN user can install and uninstall libraries into an environment using the For help with the conda Install the pytorch package into the activated myenv environment. Note, to avoid dependency conflicts, install all packages when the environment is built. List the packages installed in the current environment, and confirm that keras and pytorch are installed. Libraries can be uninstalled from an environment using the List packages in current environment and verify that the pytorch package was uninstalled. If you don't intend to upload the environment to Object Storage for the OML users in the database, you can simply exit the notebook session and it will go out of scope. Alternatively, it can be explicitly removed using the For help on the This section demonstrates creating two conda environments and uploading them to Object Storage. An environment saved in Object Storage can be used by all of the Autonomous Database users in the database, and will remain in Object Storage until ADMIN deletes it. As ADMIN user: Create a conda environment named mypyenv with Python 3.12 for OML4Py compatibility and install the Create a conda environment named myrenv with R-4.0.5 for OML4R compatibility and install the Upload the environments to the Object Storage bucket associated with the Autonomous Database instance using the The application tag is required for use with embedded execution. For example, OML4Py embedded Python execution works with conda environments containing the OML4PY tag, and OML4R embedded R execution works with conda environments containing the OML4R tag. There is one Object Storage bucket for each data center region. The conda environments are saved to a folder in Object Storage corresponding to the tenancy and database. The folder is managed by Autonomous Database and only available to users through OML notebooks. There is a 8G maximum size for a single conda environment, and no size limit on Object Storage. To get help for the The environments are now available for the OML user to download and will remain in Object Storage until it is deleted. Verify the environments are saved to Object storage using the If an environment is no longer in use, it can be deleted from Object Storage using the For help on the conda Note, do not run the paragraphs containing the A requirement of the SQL API for embedded R and Python execution on Autonomous Database is adding the OML user to the Access Control List (ACL). The ACL provides additional protection to your Autonomous Database by allowing only the client with specific IP addresses to connect to the database. As ADMIN, run the network access control list For example, if your username is OMLUSER and your Autonomous Database resides in the Ashburn region, the root domain is adb.us-ashburn-1.oraclecloudapps.com. Refer to the template notebooks, OML Third-Party Packages - Python Environment Usage and OML Third-Party Packages - R Environment Usage for the steps to download and use the saved environments, mypyenv and myrenv. Oracle Machine Learning Notebooks provide a conda interpreter to install third-party Python and R packages in a conda environment for use within OML Notebooks sessions, as well as within OML4R and OML4Py embedded execution invocations. Conda is an open source package and environment management system that enables the use of virtual environments containing third-party R and Python packages. With conda environments, you can install and update packages and their dependencies, and switch between environments to use project-specific packages. Administrators create conda environments and install packages that can then be accessed by non-administrator users and loaded into their OML Notebooks session. The conda environments can be used in the Python and the OML4Py Python, SQL, and REST APIs, and R and the OML4R R, SQL, and REST APIs. In this notebook, we demonstrate a typical workflow for third-party environment usage in OML notebooks using Python and OML4Py. The OML user downloads and uses the packages in conda environments that were previously created and saved to an Object Storage bucket folder associated with the Autonomous Database. The template notebook titled, OML Third-Party Packages - Environment Creation, the ADMIN user creates a conda environment, installs packages, and uploads the conda environments to Object Storage. Copyright (c) 2025 Oracle Corporation\nThe Universal Permissive License (UPL), Version 1.0 Use The application tag indicates how the environment can be used. For example, the environment In this example, we build a machine learning model that accurately predicts an iris flower species when given flower measurements. The Python packages used are Keras, TensorFlow, Seaborn, Pandas, Numpy, and Scikit-Learn, and the conda environment is mypyenv. We first run the code and create a UDF using Python, followed by invoking the UDF in OML4Py embedded Python execution from the Python, SQL and REST APIs. Note, Pandas, Numpy, and Scikit-Learn are included in OML Notebooks in Oracle Autonomous Database so it is not necessary for ADMIN to install them when creating the conda environment. Conda environments are available after they are downloaded and activated using the The Access Control List (ACL) provides additional protection to your Autonomous Database by allowing only the client with specific IP addresses to connect to the database. As ADMIN, run the network access control list Then run the token store To use the SQL and REST APIs for embedded Python execution, the UDF must be stored in the script repository, and an Oracle Machine Learning (OML) cloud account USERNAME, PASSWORD, and URL must be provided to obtain an authentication token. To use a conda environment when calling OML4Py script execution endpoints, specify the conda environment in the Obtain the token URL from the OML service console in Autonomous Database by first signing into your Oracle Cloud Infrastructure account with your OCI user name and password: The includes the location, tenancy ID, and database name separated by dashes. For example, https://qtraya2braestch-omldb.adb.us-sanjose-1.oraclecloudapps.com. Poll the job status sing the Note, replace your job ID with the one shown here. Oracle Machine Learning for Python<\/strong><\/em> (OML4Py) makes the open source Python scripting language and environment ready for the enterprise and big data. Designed for problems involving both large and small data volumes, OML4Py integrates Python with Oracle Autonomous Database, allowing users to run Python commands and scripts for statistical, machine learning, and visualization analyses on database tables and views using Python syntax. Many familiar Python functions are overloaded that translate Python behavior into SQL for running in-database, as well as automated machine learning capabilities. In this notebook, we highlight the range of OML4Py features.<\/p>\n This notebook is the first of a series (0 through 5) that is intended to introduce the range of OML4Py functionality through short examples.<\/p>\n Copyright (c) 2025 Oracle Corporation<\/p>\n Note: The Oracle Database connectivity package python-oracledb<\/strong><\/em> is used to support database access.\nYou can get access to the underlying connection to use python-oracledb<\/strong><\/em> directly via the function oml.cursor<\/strong><\/em>.\nSee the general cx_Oracle<\/strong><\/em> documentation <\/a> for more information.<\/p>\n For Oracle Autonomous Database, a database connection is automatically established provided you have an appropriate interpreter\nbinding specified and import the oml<\/strong><\/em> package.<\/p>\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":"Import libraries and set display options","message":["%python","","import pandas as pd","import oml","from oml import automl","import warnings","","","pd.set_option('display.max_rows', 500)","pd.set_option('display.max_columns', 500)","pd.set_option('display.width', 1000)","warnings.simplefilter(action='ignore', category=FutureWarning)"],"enabled":true,"result":{"startTime":1737140127410,"interpreter":"python.low","endTime":1737140129899,"results":[],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%md","## Get a proxy object for a database table","Here, we illustrate two ways to get proxy objects to database tables. First, we do so creating a new table with ***oml.create*** based on data from sklearn datasets. The second uses the ***oml.sync*** function to obtain an OML proxy object for the named table. A typical machine learning step is to split the data into train and test sets, followed by separating predictors from the target. This is illustrated on the OML proxy objects using the OML4Py transparency layer functionality. "],"enabled":true,"result":{"startTime":1737140130377,"interpreter":"md.low","endTime":1737140130843,"results":[{"message":" Here, we illustrate two ways to get proxy objects to database tables. First, we do so creating a new table with oml.create<\/strong><\/em> based on data from sklearn datasets. The second uses the oml.sync<\/strong><\/em> function to obtain an OML proxy object for the named table. A typical machine learning step is to split the data into train and test sets, followed by separating predictors from the target. This is illustrated on the OML proxy objects using the OML4Py transparency layer functionality.<\/p>\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":"[{\"raw\":{\"height\":300,\"lastColumns\":[],\"version\":1}}]","hideInIFrame":false,"selectedVisualization":"raw","title":"Create table from Python DataFrame","message":["%python","","from sklearn import datasets","import pandas as pd","pd.set_option('display.width',1000)","","breastcancer = datasets.load_breast_cancer()","bc_data = breastcancer.data.astype(float)","X = pd.DataFrame(bc_data, columns = breastcancer.feature_names)","y = pd.DataFrame(breastcancer.target, columns = ['TARGET'])","","try:"," oml.drop(table='BREASTCANCER')","except:"," pass"," ","BREASTCANCER = oml.create(pd.concat([X, y], axis=1), table = 'BREASTCANCER') # returns proxy object","","print(\"Shape:\",BREASTCANCER.shape)","print(\"Description:\\n\", breastcancer.DESCR)"],"enabled":true,"result":{"startTime":1737140131337,"interpreter":"python.low","endTime":1737140132381,"results":[{"message":"Shape: (569, 31)\nDescription:\n .. _breast_cancer_dataset:\n\nBreast cancer wisconsin (diagnostic) dataset\n--------------------------------------------\n\n**Data Set Characteristics:**\n\n:Number of Instances: 569\n\n:Number of Attributes: 30 numeric, predictive attributes and the class\n\n:Attribute Information:\n - radius (mean of distances from center to points on the perimeter)\n - texture (standard deviation of gray-scale values)\n - perimeter\n - area\n - smoothness (local variation in radius lengths)\n - compactness (perimeter^2 / area - 1.0)\n - concavity (severity of concave portions of the contour)\n - concave points (number of concave portions of the contour)\n - symmetry\n - fractal dimension (\"coastline approximation\" - 1)\n\n The mean, standard error, and \"worst\" or largest (mean of the three\n worst/largest values) of these features were computed for each image,\n resulting in 30 features. For instance, field 0 is Mean Radius, field\n 10 is Radius SE, field 20 is Worst Radius.\n\n - class:\n - WDBC-Malignant\n - WDBC-Benign\n\n:Summary Statistics:\n\n===================================== ====== ======\n Min Max\n===================================== ====== ======\nradius (mean): 6.981 28.11\ntexture (mean): 9.71 39.28\nperimeter (mean): 43.79 188.5\narea (mean): 143.5 2501.0\nsmoothness (mean): 0.053 0.163\ncompactness (mean): 0.019 0.345\nconcavity (mean): 0.0 0.427\nconcave points (mean): 0.0 0.201\nsymmetry (mean): 0.106 0.304\nfractal dimension (mean): 0.05 0.097\nradius (standard error): 0.112 2.873\ntexture (standard error): 0.36 4.885\nperimeter (standard error): 0.757 21.98\narea (standard error): 6.802 542.2\nsmoothness (standard error): 0.002 0.031\ncompactness (standard error): 0.002 0.135\nconcavity (standard error): 0.0 0.396\nconcave points (standard error): 0.0 0.053\nsymmetry (standard error): 0.008 0.079\nfractal dimension (standard error): 0.001 0.03\nradius (worst): 7.93 36.04\ntexture (worst): 12.02 49.54\nperimeter (worst): 50.41 251.2\narea (worst): 185.2 4254.0\nsmoothness (worst): 0.071 0.223\ncompactness (worst): 0.027 1.058\nconcavity (worst): 0.0 1.252\nconcave points (worst): 0.0 0.291\nsymmetry (worst): 0.156 0.664\nfractal dimension (worst): 0.055 0.208\n===================================== ====== ======\n\n:Missing Attribute Values: None\n\n:Class Distribution: 212 - Malignant, 357 - Benign\n\n:Creator: Dr. William H. Wolberg, W. Nick Street, Olvi L. Mangasarian\n\n:Donor: Nick Street\n\n:Date: November, 1995\n\nThis is a copy of UCI ML Breast Cancer Wisconsin (Diagnostic) datasets.\nhttps://goo.gl/U2Uwz2\n\nFeatures are computed from a digitized image of a fine needle\naspirate (FNA) of a breast mass. They describe\ncharacteristics of the cell nuclei present in the image.\n\nSeparating plane described above was obtained using\nMultisurface Method-Tree (MSM-T) [K. P. Bennett, \"Decision Tree\nConstruction Via Linear Programming.\" Proceedings of the 4th\nMidwest Artificial Intelligence and Cognitive Science Society,\npp. 97-101, 1992], a classification method which uses linear\nprogramming to construct a decision tree. Relevant features\nwere selected using an exhaustive search in the space of 1-4\nfeatures and 1-3 separating planes.\n\nThe actual linear program used to obtain the separating plane\nin the 3-dimensional space is that described in:\n[K. P. Bennett and O. L. Mangasarian: \"Robust Linear\nProgramming Discrimination of Two Linearly Inseparable Sets\",\nOptimization Methods and Software 1, 1992, 23-34].\n\nThis database is also available through the UW CS ftp server:\n\nftp ftp.cs.wisc.edu\ncd math-prog/cpo-dataset/machine-learn/WDBC/\n\n|details-start|\n**References**\n|details-split|\n\n- W.N. Street, W.H. Wolberg and O.L. Mangasarian. Nuclear feature extraction\n for breast tumor diagnosis. IS&T/SPIE 1993 International Symposium on\n Electronic Imaging: Science and Technology, volume 1905, pages 861-870,\n San Jose, CA, 1993.\n- O.L. Mangasarian, W.N. Street and W.H. Wolberg. Breast cancer diagnosis and\n prognosis via linear programming. Operations Research, 43(4), pages 570-577,\n July-August 1995.\n- W.H. Wolberg, W.N. Street, and O.L. Mangasarian. Machine learning techniques\n to diagnose breast cancer from fine-needle aspirates. Cancer Letters 77 (1994)\n 163-171.\n\n|details-end|\n\n","type":"TEXT"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":"Get proxy object for named database table and split data","message":["%python","","BREASTCANCER = oml.sync(table = \"BREASTCANCER\") # returns proxy object","print(\"Full Dataset Type: \", type(BREASTCANCER))","print(\"Full Dataset Shape: \", BREASTCANCER.shape)","","BREASTCANCER_X,BREASTCANCER_y = BREASTCANCER.drop('TARGET'), BREASTCANCER['TARGET']","","BREASTCANCER_train, BREASTCANCER_test = BREASTCANCER.split(ratio=(0.6, 0.4))","","BREASTCANCER_train_X, BREASTCANCER_train_y = BREASTCANCER_train.drop('TARGET'), BREASTCANCER_train['TARGET']","BREASTCANCER_test_X, BREASTCANCER_test_y = BREASTCANCER_test.drop('TARGET'), BREASTCANCER_test['TARGET']","","print(\"Train Type: \", type(BREASTCANCER_train))","print(\"Train Shape: \", BREASTCANCER_train.shape)"],"enabled":true,"result":{"startTime":1737140132863,"interpreter":"python.low","endTime":1737140133833,"results":[{"message":"Full Dataset Type: The AutoML workflow consists of<\/p>\n Which algorithm is best to predict my target?<\/p>\n To use AutoML algorithm selection, we create an AlgorithmSelection<\/strong><\/em> object, here with the 'accuracy' score metric. Then, we invoke select<\/strong><\/em> to get the top 4 predicted algorithms by setting k=4. Algorithm Selection automatically selects the best algorithm from the set of supported in-database algorithms by using characteristics of the data set and technique. Algorithm Selection itself uses advanced machine learning and meta-learning<\/strong><\/em> techniques.<\/p>\n Users can select from a variety of score_metric<\/strong><\/em> options:<\/p>\n Automated Algorithm Selection provides a ranked list of algorithms. The first element produced the highest score metric and likely should be chosen for subsequent steps.<\/p>\n See the documentation for Automated Algorithm Selection<\/a> for more details.<\/p>\n In this example, we define a FeatureSelection<\/strong><\/em> object with score metric 'accuracy' and invoke reduce<\/strong><\/em> specifying the neural network algorithm determined above and the data set proxy object.<\/p>\n Automated Feature Selection provides a list of selected features, or columns. Use this set to produce an OML DataFrame with this column subset.<\/p>\n See the documentation for Automated Feature Selection<\/a> for more details.<\/p>\n We see the set of selected columns. Replace the We use the selected set of columns to also reduce the train and test datasets created earlier for use in our manual model building later in this script.<\/p>\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":null,"message":["%python","","fs_bc = automl.FeatureSelection(mining_function = 'classification', score_metric = 'accuracy', parallel=4)","","selected_features = fs_bc.reduce('nn', BREASTCANCER_X, BREASTCANCER_y)","","BREASTCANCER_X_reduced = BREASTCANCER_X[:,selected_features]","","BREASTCANCER_train_X_reduced = BREASTCANCER_train_X[:,selected_features]","BREASTCANCER_test_X_reduced = BREASTCANCER_test_X[:,selected_features]","","print(\"Selected columns:\",BREASTCANCER_train_X_reduced.columns)","","print(\"\\nNumber of columns:\")","\"{} reduced to {}\".format(len(BREASTCANCER_train_X.columns), len(BREASTCANCER_train_X_reduced.columns))"],"enabled":true,"result":{"startTime":1737140176412,"interpreter":"python.low","endTime":1737140275010,"results":[{"message":"UserWarning:Parallelism exceeds the DOP limit 2 (reverting to parallel=2)\nSelected columns: ['mean texture', 'mean perimeter', 'mean area', 'mean smoothness', 'mean compactness', 'mean concavity', 'mean concave points', 'radius error', 'texture error', 'perimeter error', 'area error', 'smoothness error', 'compactness error', 'concave points error', 'fractal dimension error', 'worst radius', 'worst texture', 'worst perimeter', 'worst area', 'worst smoothness', 'worst compactness', 'worst concavity', 'worst concave points']\n\nNumber of columns:\n'30 reduced to 23'\n","type":"TEXT"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%md","### Automated Model Tuning","","Using data set proxy object, we define a ***ModelTuning*** object for classification. We then invoke ***tune*** to produce the tuned model using the neural network algorithm specified by the argument `'nn'`, but you should tune the same algorithm type that you used to do Feature Selection. We also provide the subset of columns determined above when passing the `reduced` attributes to the `X` and `y`. ","","The result of model tuning is a dictionary with the best model and the tuned parameters.","See the documentation for Automated Model Tuning <\/a> for more details."],"enabled":true,"result":{"startTime":1737140275513,"interpreter":"md.low","endTime":1737140275962,"results":[{"message":"CUSTOMER_INSURANCE_LTV<\/code> table, and will also prepare the dataset used by the Data Preparation<\/code> notebooks, in particular those for data cleaning and feature selection.<\/p>\nNULL<\/code>, and adding duplicated rows<\/code> artificially to generate a resulting table we will call CUSTOMER_INSURANCE_LTV_NOISE<\/code>.<\/p>\nDBMS_CLOUD.CREATE_EXTERNAL_TABLE<\/code> function among others.<\/p>\nIMPORTANT<\/code> Please run this notebook before running any of the Data Preparation notebooks.<\/h6>\nThe Universal Permissive License (UPL), Version 1.0<\/a><\/h6>\n
\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":"Cleanup if tables exist","message":["%script","","-- DELETE PREVIOUS DATA IF IT EXISTS","BEGIN "," BEGIN"," EXECUTE IMMEDIATE 'DROP TABLE EXT_CUSTOMER_INSURANCE_LTV';"," EXCEPTION WHEN OTHERS THEN NULL;"," END;"," BEGIN"," EXECUTE IMMEDIATE 'DROP TABLE CUSTOMER_INSURANCE_LTV';"," EXCEPTION WHEN OTHERS THEN NULL;"," END;"," BEGIN"," EXECUTE IMMEDIATE 'DROP TABLE CUSTOMER_INSURANCE_LTV_NOISE';"," EXCEPTION WHEN OTHERS THEN NULL;"," END;"," BEGIN"," EXECUTE IMMEDIATE 'DROP TABLE CUSTOMER_INSURANCE_LTV_SQL';"," EXCEPTION WHEN OTHERS THEN NULL;"," END;"," BEGIN"," EXECUTE IMMEDIATE 'DROP TABLE CUSTOMER_INSURANCE_LTV_PY';"," EXCEPTION WHEN OTHERS THEN NULL;"," END;","END; "],"enabled":true,"result":{"startTime":1737138362545,"interpreter":"script.low","endTime":1737138365251,"results":[{"message":"\nPL/SQL procedure successfully completed.\n\n","type":"TEXT"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%md","","#### Create the `CUSTOMER_INSURANCE_LTV` table ","","This table will be used in other notebooks and allow us to build the `CUSTOMER_INSURANCE_LTV_NOISE` that will also be used.","","We will pull the data from OML dataset storage in GitHub using the `DBMS_CLOUD` capabilities.","","More details on `DBMS_CLOUD` can be found in the Documentation<\/a>"],"enabled":true,"result":{"startTime":1737138365721,"interpreter":"md.low","endTime":1737138366172,"results":[{"message":"Create the
CUSTOMER_INSURANCE_LTV<\/code> table<\/h4>\nCUSTOMER_INSURANCE_LTV_NOISE<\/code> that will also be used.<\/p>\nDBMS_CLOUD<\/code> capabilities.<\/p>\nDBMS_CLOUD<\/code> can be found in the Documentation<\/a><\/p>\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":"Load the data from Object Storage","message":["%script","","-- LOADS THE DATA FROM GITHUB BY CREATING AN EXTERNAL TABLE AND THEN CREATING A TABLE WITH THAT","DECLARE"," uri_data varchar2(1000) := 'https://raw.githubusercontent.com/oracle/oracle-db-examples/master/machine-learning/datasets/CUST_INSUR_LTV_APPLY.csv';"," csv_format varchar2(1000) := '{\"dateformat\":\"YYYY-MM-DD\", \"skipheaders\":\"1\", \"delimiter\":\",\", \"ignoreblanklines\":\"true\", \"removequotes\":\"true\", \"blankasnull\":\"true\", \"trimspaces\":\"lrtrim\", \"truncatecol\":\"true\", \"ignoremissingcolumns\":\"true\"}';","BEGIN","DBMS_CLOUD.CREATE_EXTERNAL_TABLE("," TABLE_NAME => 'EXT_CUSTOMER_INSURANCE_LTV',"," FILE_URI_LIST => uri_data,"," FORMAT => csv_format,"," COLUMN_LIST => 'MARITAL_STATUS VARCHAR2(26),"," STATE CHAR(26),"," CREDIT_BALANCE NUMBER(8,0),"," CUSTOMER_TENURE NUMBER(3,0),"," MORTGAGE_AMOUNT NUMBER(7,0),"," BANK_FUNDS NUMBER(7,0),"," NUM_DEPENDENTS NUMBER(3,0),"," HAS_CHILDREN NUMBER(3,0),"," INCOME NUMBER(7,0),"," CUSTOMER_ID CHAR(26),"," GENDER CHAR(26),"," PROFESSION VARCHAR2(35),"," CREDIT_CARD_LIMITS NUMBER(6,0),"," REGION VARCHAR2(26),"," HOME_OWNERSHIP NUMBER(3,0),"," NUM_ONLINE_TRANS NUMBER(6,0),"," BUY_INSURANCE VARCHAR2(26),"," MONTHLY_CHECKS NUMBER(4,0),"," NUM_TRANS_KIOSK NUMBER(3,0),"," AGE NUMBER(4,0),"," MONEY_MONTLY_OVERDRAWN NUMBER(6,2),"," LTV NUMBER(9,2),"," TOTAL_AUTOM_PAYMENTS NUMBER(8,0),"," NUM_TRANS_TELLER NUMBER(3,0),"," CHECKING_BALANCE NUMBER(7,0),"," NUM_TRANS_ATM NUMBER(3,0),"," LTV_BIN VARCHAR2(26),"," FIRST_NAME VARCHAR2(26),"," NUM_MORTGAGES NUMBER(3,0),"," CAR_OWNERSHIP NUMBER(3,0),"," LAST_NAME VARCHAR2(26)');"," ","-- WRITE A TABLE INTO THE CURRENT USER WITH THE NAME \"CUSTOMER_INSURANCE_LTV\" "," EXECUTE IMMEDIATE 'create table CUSTOMER_INSURANCE_LTV as select * from EXT_CUSTOMER_INSURANCE_LTV';"," EXCEPTION WHEN OTHERS THEN NULL;","","END;"],"enabled":true,"result":{"startTime":1737138366645,"interpreter":"script.low","endTime":1737138369552,"results":[{"message":"\nPL/SQL procedure successfully completed.\n\n","type":"TEXT"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":"Count the number of records","message":["%sql","","SELECT count(*) FROM CUSTOMER_INSURANCE_LTV;"],"enabled":true,"result":{"startTime":1737138370067,"interpreter":"sql.low","endTime":1737138370613,"results":[{"message":"COUNT(*)\n13880\n","type":"TABLE"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":4,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"table","title":"Review the contents of the CUSTOMER_INSURANCE_LTV table","message":["%sql","","SELECT * ","FROM CUSTOMER_INSURANCE_LTV","FETCH FIRST 10 ROWS ONLY;"],"enabled":true,"result":{"startTime":1737138371093,"interpreter":"sql.low","endTime":1737138371596,"results":[{"message":"MARITAL_STATUS\tSTATE\tCREDIT_BALANCE\tCUSTOMER_TENURE\tMORTGAGE_AMOUNT\tBANK_FUNDS\tNUM_DEPENDENTS\tHAS_CHILDREN\tINCOME\tCUSTOMER_ID\tGENDER\tPROFESSION\tCREDIT_CARD_LIMITS\tREGION\tHOME_OWNERSHIP\tNUM_ONLINE_TRANS\tBUY_INSURANCE\tMONTHLY_CHECKS\tNUM_TRANS_KIOSK\tAGE\tMONEY_MONTLY_OVERDRAWN\tLTV\tTOTAL_AUTOM_PAYMENTS\tNUM_TRANS_TELLER\tCHECKING_BALANCE\tNUM_TRANS_ATM\tLTV_BIN\tFIRST_NAME\tNUM_MORTGAGES\tCAR_OWNERSHIP\tLAST_NAME\nSINGLE\tCA \t0\t3\t0\t0\t3\t0\t65871\tCU15154 \tM \tNurse\t1000\tWest\t0\t0\tNo\t0\t1\t24\t53.06\t14367.75\t0\t0\t25\t0\tMEDIUM\tGAYLE\t0\t0\tDURANT\nSINGLE\tNY \t0\t4\t0\t290\t4\t0\t68747\tCU15155 \tM \tProgrammer/Developer\t700\tNorthEast\t0\t0\tYes\t1\t1\t35\t53.84\t14686.75\t287\t2\t25\t4\tMEDIUM\tQUINTON\t0\t1\tMASSEY\nMARRIED\tMI \t0\t3\t1000\t550\t3\t0\t68684\tCU15157 \tM \tProgrammer/Developer\t1000\tMidwest\t1\t1000\tYes\t14\t1\t26\t53.48\t25271\t132\t2\t25\t4\tHIGH\tANIBAL\t1\t1\tJIMENEZ\nMARRIED\tUT \t0\t5\t1200\t1000\t5\t0\t59354\tCU15286 \tF \tFireman\t2500\tSouthwest\t1\t1200\tNo\t4\t5\t24\t53.08\t19738.5\t628\t3\t619\t1\tMEDIUM\tJUNITA\t1\t1\tROBERTSON\nMARRIED\tUT \t0\t4\t1800\t0\t3\t0\t84801\tCU15287 \tF \tPROF-26\t2500\tSouthwest\t1\t1800\tNo\t0\t5\t47\t53.06\t31900.25\t0\t0\t25\t0\tVERY HIGH\tCHASITY\t1\t1\tELLIS\nMARRIED\tUT \t0\t1\t1400\t0\t1\t0\t73987\tCU15289 \tM \tProfessor\t2500\tSouthwest\t1\t1400\tNo\t0\t5\t46\t53.06\t31596.75\t0\t0\t25\t0\tVERY HIGH\tFRANKLIN\t1\t1\tKNOX\nSINGLE\tUT \t0\t3\t578\t0\t3\t0\t51452\tCU15290 \tM \tSales Representative\t2500\tSouthwest\t1\t578\tNo\t0\t5\t33\t53.06\t21663\t0\t0\t25\t0\tMEDIUM\tLINCOLN\t1\t1\tMATTSON\nSINGLE\tUT \t0\t3\t0\t0\t3\t0\t63181\tCU15291 \tM \tConstruction Laborer\t2500\tSouthwest\t0\t0\tNo\t1\t5\t49\t53.07\t16195.25\t0\t0\t25\t1\tMEDIUM\tSTEPHEN\t0\t0\tCARROLL\nSINGLE\tUT \t0\t5\t117\t0\t5\t0\t66654\tCU15292 \tF \tPROF-3\t2500\tSouthwest\t1\t117\tNo\t0\t5\t21\t53.06\t21263.5\t0\t0\t25\t0\tMEDIUM\tCEOLA\t1\t1\tHARRISON\nSINGLE\tUT \t0\t3\t0\t250\t3\t0\t61716\tCU15294 \tM \tProgrammer/Developer\t1500\tSouthwest\t0\t0\tNo\t3\t5\t26\t53.04\t13529\t0\t2\t25\t2\tLOW\tLLOYD\t0\t0\tHOLLEY\n","type":"TABLE"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":8,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%md","","#### Create the `CUSTOMER_INSURANCE_LTV_NOISE` table","","---"],"enabled":true,"result":{"startTime":1737138372065,"interpreter":"md.low","endTime":1737138372531,"results":[{"message":"Create the
CUSTOMER_INSURANCE_LTV_NOISE<\/code> table<\/h4>\n
\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":"Create table with noise from the customer insurance LTV table","message":["%script","","CREATE TABLE CUSTOMER_INSURANCE_LTV_NOISE AS","SELECT * FROM CUSTOMER_INSURANCE_LTV"],"enabled":true,"result":{"startTime":1737138372995,"interpreter":"script.low","endTime":1737138374786,"results":[{"message":"\nTable CUSTOMER_INSURANCE_LTV_NOISE created.\n\n","type":"TEXT"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":"Insert duplicated rows into the table with noise","message":["%script","","BEGIN "," INSERT INTO CUSTOMER_INSURANCE_LTV_NOISE"," SELECT * FROM CUSTOMER_INSURANCE_LTV "," WHERE ORA_HASH(CUSTOMER_ID, 13, 10) = 0"," FETCH FIRST 1000 ROWS ONLY;"," COMMIT;","END;"],"enabled":true,"result":{"startTime":1737138375250,"interpreter":"script.low","endTime":1737138376373,"results":[{"message":"\nPL/SQL procedure successfully completed.\n\n","type":"TEXT"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":"For customer id < 'CU2', change INCOME, BANK_FUNDS, CREDIT_BALANCE, MARITAL_STATUS to null ","message":["%sql","","UPDATE CUSTOMER_INSURANCE_LTV_NOISE","SET INCOME = NULL, BANK_FUNDS = NULL, CREDIT_BALANCE = NULL, MARITAL_STATUS = NULL","WHERE CUSTOMER_ID < 'CU2';"],"enabled":true,"result":{"startTime":1737138376837,"interpreter":"sql.low","endTime":1737138377592,"results":[],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":"For customer id < CU8, change the LAST_NAME to 'THANOS'","message":["%sql","","UPDATE CUSTOMER_INSURANCE_LTV_NOISE","SET LAST_NAME = 'THANOS'","WHERE CUSTOMER_ID < 'CU8';"],"enabled":true,"result":{"startTime":1737138378180,"interpreter":"sql.low","endTime":1737138379016,"results":[],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":"For customer id >= 'CU3' and < 'CU4', use synonyms","message":["%script","","BEGIN"," UPDATE CUSTOMER_INSURANCE_LTV_NOISE"," SET MARITAL_STATUS = 'DIV'"," WHERE CUSTOMER_ID >= 'CU3' and CUSTOMER_ID < 'CU4'"," AND MARITAL_STATUS = 'DIVORCED';"," "," COMMIT;"," "," UPDATE CUSTOMER_INSURANCE_LTV_NOISE"," SET MARITAL_STATUS = 'M'"," WHERE CUSTOMER_ID >= 'CU3' and CUSTOMER_ID < 'CU4'"," AND MARITAL_STATUS = 'MARRIED';"," "," COMMIT;","END;"],"enabled":true,"result":{"startTime":1737138379481,"interpreter":"script.low","endTime":1737138380033,"results":[{"message":"\nPL/SQL procedure successfully completed.\n\n","type":"TEXT"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%md","","#### Create the `CUSTOMER_INSURANCE_LTV_SQL` and the `CUSTOMER_INSURANCE_LTV_PY` tables ","","---"],"enabled":true,"result":{"startTime":1737138380501,"interpreter":"md.low","endTime":1737138380947,"results":[{"message":"Create the
CUSTOMER_INSURANCE_LTV_SQL<\/code> and the CUSTOMER_INSURANCE_LTV_PY<\/code> tables<\/h4>\n
\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":"Create noise tables for SQL and Python","message":["%script","","CREATE TABLE CUSTOMER_INSURANCE_LTV_SQL AS SELECT * FROM CUSTOMER_INSURANCE_LTV_NOISE;","CREATE TABLE CUSTOMER_INSURANCE_LTV_PY AS SELECT * FROM CUSTOMER_INSURANCE_LTV_NOISE;"],"enabled":true,"result":{"startTime":1737138381425,"interpreter":"script.low","endTime":1737138384411,"results":[{"message":"\nTable CUSTOMER_INSURANCE_LTV_SQL created.\n\n\n---------------------------\n\nTable CUSTOMER_INSURANCE_LTV_PY created.\n\n\n---------------------------\n","type":"TEXT"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":true,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%md","","## End of Script"],"enabled":true,"result":{"startTime":1737138384885,"interpreter":"md.low","endTime":1737138385400,"results":[{"message":"End of Script<\/h2>\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%sql"],"enabled":true,"result":{"startTime":1737138385871,"interpreter":"sql.low","endTime":1737138386333,"results":[],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":true,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"}],"version":"6","snapshot":false,"tags":null}]
\ No newline at end of file
diff --git a/machine-learning/notebooks-oml/python/OML Third-Party Packages - Environment Creation.dsnb b/machine-learning/notebooks-oml/python/OML Third-Party Packages - Environment Creation.dsnb
new file mode 100644
index 00000000..03576052
--- /dev/null
+++ b/machine-learning/notebooks-oml/python/OML Third-Party Packages - Environment Creation.dsnb
@@ -0,0 +1,2512 @@
+[
+ {
+ "name" : "OML Third-Party Packages - Environment Creation",
+ "description" : null,
+ "tags" : null,
+ "version" : "7",
+ "layout" : "jupyter",
+ "type" : "medium",
+ "snapshot" : false,
+ "isEditable" : true,
+ "isRunnable" : true,
+ "template" : null,
+ "templateConfig" : null,
+ "paragraphs" : [
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : null,
+ "hasTitle" : false,
+ "message" : [
+ "%md",
+ " "
+ ],
+ "selectedVisualization" : null,
+ "visualizationConfig" : null,
+ "hideCode" : true,
+ "hideResult" : true,
+ "hideGutter" : true,
+ "hideVizConfig" : true,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988358548,
+ "endTime" : 1739988359568,
+ "interpreter" : "md.medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : null,
+ "hasTitle" : false,
+ "message" : [
+ "%md",
+ "",
+ "# OML Third-Party Packages - Environment Creation",
+ "",
+ "Oracle Machine Learning Notebooks provide a conda interpreter to install third-party Python and R packages in a conda environment for use within OML Notebooks sessions, as well as within OML4R and OML4Py embedded execution invocations. Conda is an open source package and environment management system that enables the use of virtual environments containing third-party R and Python packages. With conda environments, you can install and update packages and their dependencies, and switch between environments to use project-specific packages. ",
+ "",
+ "Administrators create conda environments and install packages that can then be accessed by non-administrator users and loaded into their OML Notebooks session. The conda environments can be used in the OML4Py Python, SQL, and REST APIs, and the OML4R R, SQL, and REST APIs.",
+ "",
+ "In this notebook, we demonstrate a typical workflow for third-party environment creation and package installation in OML notebooks. Section 1 contains common commands used by ADMIN while creating and testing conda environments. In section 2, the ADMIN user creates a conda environment, installs packages, and uploads the conda environment to an Object Storage bucket associated with the Autonomous Database. ",
+ "",
+ "In the template notebooks titled, *OML Third-Party Packages - R Environment Usage* and *OML Third-Party Packages - Python Environment Usage*, the OML user downloads and activates the environment, and uses the packages in their notebook session.",
+ "",
+ "---",
+ "Copyright (c) 2025 Oracle Corporation ",
+ "###### The Universal Permissive License (UPL), Version 1.0"
+ ],
+ "selectedVisualization" : "html",
+ "visualizationConfig" : null,
+ "hideCode" : true,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : true,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988360092,
+ "endTime" : 1739988360575,
+ "interpreter" : "md.medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "
OML Third-Party Packages - Environment Creation
\n
\nThe Universal Permissive License (UPL), Version 1.0
\n",
+ "type" : "HTML"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : "Supported conda commands",
+ "hasTitle" : true,
+ "message" : [
+ "%md",
+ "",
+ "Refer to [Using Oracle Machine Learning on Autonomous Database](https://docs.oracle.com/en/database/oracle/machine-learning/oml-notebooks/omlug/notebooks-classic.html#GUID-5A206265-9EB0-4E49-A882-BFBF2DB5DB71) for a table of supported conda commands.",
+ "",
+ "This notebook reviews the following conda commands:",
+ "",
+ "- `--help`",
+ "- `install`",
+ "- `info`",
+ "- `search`",
+ "- `env list`",
+ "- `create`",
+ "- `activate`",
+ "- `list`",
+ "- `install`",
+ "- `uninstall`",
+ "- `remove`",
+ "- `list-saved-envs`",
+ "- `upload`",
+ "- `delete`"
+ ],
+ "selectedVisualization" : "html",
+ "visualizationConfig" : null,
+ "hideCode" : true,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : true,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988361065,
+ "endTime" : 1739988361522,
+ "interpreter" : "md.medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "\n
\n",
+ "type" : "HTML"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : null,
+ "hasTitle" : false,
+ "message" : [
+ "%md",
+ "",
+ "### Section 1: Commands for Creating and Managing Environments"
+ ],
+ "selectedVisualization" : "html",
+ "visualizationConfig" : null,
+ "hideCode" : true,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : true,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988362001,
+ "endTime" : 1739988362457,
+ "interpreter" : "md.medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "--helpinstallinfosearchenv listcreateactivatelistinstalluninstallremovelist-saved-envsuploaddeleteSection 1: Commands for Creating and Managing Environments
\n",
+ "type" : "HTML"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : null,
+ "hasTitle" : false,
+ "message" : [
+ "%md",
+ "---",
+ "### Conda Help",
+ "---",
+ "",
+ "To get help for conda commands, run the command name followed by the `--help` flag. The `conda` command is not run explicitly because the %conda interpreter provides the conda context."
+ ],
+ "selectedVisualization" : "html",
+ "visualizationConfig" : null,
+ "hideCode" : true,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : true,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988362933,
+ "endTime" : 1739988363373,
+ "interpreter" : "md.medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "--help flag. The conda command is not run explicitly because the %conda interpreter provides the conda context.info command provides information about the conda installation, including the conda version and available channels.search command allows the user to search for packages and display associated information, including the package version and the channel where it resides.Enhanced Conda Commands
\nenv-lcm supports the management of environments saved to Object Storage, including uploading, downloading, listing, and deleting available environments.Creating Conda Environments
\n\n
\ncreate command to create an environment and install the Python keras package.\n
\ncreate command, enter create --help in a %conda paragraph.Installing and Uninstalling Libraries
\ninstall and uninstall commands.install and uninstall commmands, type install --help and uninstall --help in a %conda paragraph.uninstall command. Let's uninstall the pytorch package from the current environment.env remove command. Remove the myenv environment and verify it was removed. A best practice is to deactivate the environment prior to removal.env remove command, type env remove --help in the %conda interpreter.Specify Packages for Installation
\nInstall Packages from the
\nconda-forge Channel\n
\nconda command searches a set of channels. By default, packages are automatically downloaded and updated from the [default channel] (https://repo.anaconda.com/pkgs/).conda-forge channel] (https://conda-forge.org/), a community channel made up of thousands of contributors, in the following examples.Install a Specific Version of a Package
\n\n
\n",
+ "type" : "HTML"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : "Create an environment using conda-forge ",
+ "hasTitle" : true,
+ "message" : [
+ "%conda",
+ "",
+ "create -n mychannelenv -c conda-forge python=3.12.6",
+ "",
+ "activate mychannelenv"
+ ],
+ "selectedVisualization" : "raw",
+ "visualizationConfig" : "[{\"raw\":{\"height\":300,\"lastColumns\":[],\"version\":1}}]",
+ "hideCode" : false,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : false,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988673812,
+ "endTime" : 1739988701037,
+ "interpreter" : "conda.conda_medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "Channels:\n - conda-forge\n - defaults\nPlatform: linux-64\nCollecting package metadata (repodata.json): ...working... done\nSolving environment: ...working... done\n\n## Package Plan ##\n\n environment location: /u01/.conda/envs/mychannelenv\n\n added / updated specs:\n - python=3.12.6\n\n\nThe following packages will be downloaded:\n\n package | build\n ---------------------------|-----------------\n _libgcc_mutex-0.1 | conda_forge 3 KB conda-forge\n _openmp_mutex-4.5 | 2_gnu 23 KB conda-forge\n bzip2-1.0.8 | h4bc722e_7 247 KB conda-forge\n ca-certificates-2025.1.31 | hbcca054_0 154 KB conda-forge\n ld_impl_linux-64-2.43 | h712a8e2_2 654 KB conda-forge\n libexpat-2.6.4 | h5888daf_0 72 KB conda-forge\n libffi-3.4.6 | h2dba641_0 52 KB conda-forge\n libgcc-14.2.0 | h77fa898_1 829 KB conda-forge\n libgcc-ng-14.2.0 | h69a702a_1 53 KB conda-forge\n libgomp-14.2.0 | h77fa898_1 450 KB conda-forge\n liblzma-5.6.4 | hb9d3cd8_0 109 KB conda-forge\n liblzma-devel-5.6.4 | hb9d3cd8_0 370 KB conda-forge\n libnsl-2.0.1 | hd590300_0 33 KB conda-forge\n libsqlite-3.49.1 | hee588c1_1 894 KB conda-forge\n libuuid-2.38.1 | h0b41bf4_0 33 KB conda-forge\n libxcrypt-4.4.36 | hd590300_1 98 KB conda-forge\n libzlib-1.3.1 | hb9d3cd8_2 60 KB conda-forge\n ncurses-6.5 | h2d0b736_3 871 KB conda-forge\n openssl-3.4.1 | h7b32b05_0 2.8 MB conda-forge\n pip-25.0.1 | pyh8b19718_0 1.2 MB conda-forge\n python-3.12.6 |hc5c86c4_2_cpython 30.1 MB conda-forge\n readline-8.2 | h8228510_1 275 KB conda-forge\n setuptools-75.8.0 | pyhff2d567_0 757 KB conda-forge\n tk-8.6.13 |noxft_h4845f30_101 3.2 MB conda-forge\n tzdata-2025a | h78e105d_0 120 KB conda-forge\n wheel-0.45.1 | pyhd8ed1ab_1 61 KB conda-forge\n xz-5.6.4 | hbcc6ac9_0 23 KB conda-forge\n xz-gpl-tools-5.6.4 | hbcc6ac9_0 33 KB conda-forge\n xz-tools-5.6.4 | hb9d3cd8_0 88 KB conda-forge\n ------------------------------------------------------------\n Total: 43.4 MB\n\nThe following NEW packages will be INSTALLED:\n\n _libgcc_mutex conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge \n _openmp_mutex conda-forge/linux-64::_openmp_mutex-4.5-2_gnu \n bzip2 conda-forge/linux-64::bzip2-1.0.8-h4bc722e_7 \n ca-certificates conda-forge/linux-64::ca-certificates-2025.1.31-hbcca054_0 \n ld_impl_linux-64 conda-forge/linux-64::ld_impl_linux-64-2.43-h712a8e2_2 \n libexpat conda-forge/linux-64::libexpat-2.6.4-h5888daf_0 \n libffi conda-forge/linux-64::libffi-3.4.6-h2dba641_0 \n libgcc conda-forge/linux-64::libgcc-14.2.0-h77fa898_1 \n libgcc-ng conda-forge/linux-64::libgcc-ng-14.2.0-h69a702a_1 \n libgomp conda-forge/linux-64::libgomp-14.2.0-h77fa898_1 \n liblzma conda-forge/linux-64::liblzma-5.6.4-hb9d3cd8_0 \n liblzma-devel conda-forge/linux-64::liblzma-devel-5.6.4-hb9d3cd8_0 \n libnsl conda-forge/linux-64::libnsl-2.0.1-hd590300_0 \n libsqlite conda-forge/linux-64::libsqlite-3.49.1-hee588c1_1 \n libuuid conda-forge/linux-64::libuuid-2.38.1-h0b41bf4_0 \n libxcrypt conda-forge/linux-64::libxcrypt-4.4.36-hd590300_1 \n libzlib conda-forge/linux-64::libzlib-1.3.1-hb9d3cd8_2 \n ncurses conda-forge/linux-64::ncurses-6.5-h2d0b736_3 \n openssl conda-forge/linux-64::openssl-3.4.1-h7b32b05_0 \n pip conda-forge/noarch::pip-25.0.1-pyh8b19718_0 \n python conda-forge/linux-64::python-3.12.6-hc5c86c4_2_cpython \n readline conda-forge/linux-64::readline-8.2-h8228510_1 \n setuptools conda-forge/noarch::setuptools-75.8.0-pyhff2d567_0 \n tk conda-forge/linux-64::tk-8.6.13-noxft_h4845f30_101 \n tzdata conda-forge/noarch::tzdata-2025a-h78e105d_0 \n wheel conda-forge/noarch::wheel-0.45.1-pyhd8ed1ab_1 \n xz conda-forge/linux-64::xz-5.6.4-hbcc6ac9_0 \n xz-gpl-tools conda-forge/linux-64::xz-gpl-tools-5.6.4-hbcc6ac9_0 \n xz-tools conda-forge/linux-64::xz-tools-5.6.4-hb9d3cd8_0 \n\n\n\nDownloading and Extracting Packages: ...working... done\nPreparing transaction: ...working... done\nVerifying transaction: ...working... done\nExecuting transaction: ...working... done\n#\n# To activate this environment, use\n#\n# $ conda activate mychannelenv\n#\n# To deactivate an active environment, use\n#\n# $ conda deactivate\n\n\n\nusage: conda [-h] [-v] [--no-plugins] [-V] COMMAND ...\n\nconda is a tool for managing and deploying applications, environments and packages.\n\noptions:\n -h, --help Show this help message and exit.\n -v, --verbose Can be used multiple times. Once for detailed output,\n twice for INFO logging, thrice for DEBUG logging, four\n times for TRACE logging.\n --no-plugins Disable all plugins that are not built into conda.\n -V, --version Show the conda version number and exit.\n\ncommands:\n The following built-in and plugins subcommands are available.\n\n COMMAND\n activate Activate a conda environment.\n clean Remove unused packages and caches.\n compare Compare packages between conda environments.\n config Modify configuration values in .condarc.\n content-trust Signing and verification tools for Conda\n create Create a new conda environment from a list of specified\n packages.\n deactivate Deactivate the current active conda environment.\n doctor Display a health report for your environment.\n env-lcm See `conda env-lcm --help`.\n info Display information about current conda install.\n init Initialize conda for shell interaction.\n install Install a list of packages into a specified conda\n environment.\n list List installed packages in a conda environment.\n notices Retrieve latest channel notifications.\n pack See `conda pack --help`.\n package Create low-level conda packages. (EXPERIMENTAL)\n remove (uninstall)\n Remove a list of packages from a specified conda\n environment.\n rename Rename an existing environment.\n repoquery Advanced search for repodata.\n run Run an executable in a conda environment.\n search Search for packages and display associated information\n using the MatchSpec format.\n update (upgrade) Update conda packages to the latest compatible version.\n\n\n\nConda environment 'mychannelenv' activated\n\n",
+ "type" : "TEXT"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : "Install a package from conda-forge by specifying the channel",
+ "hasTitle" : true,
+ "message" : [
+ "%conda",
+ "",
+ "install seaborn --channel conda-forge"
+ ],
+ "selectedVisualization" : "raw",
+ "visualizationConfig" : "[{\"raw\":{\"height\":300,\"lastColumns\":[],\"version\":1}}]",
+ "hideCode" : false,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : false,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988701560,
+ "endTime" : 1739988730874,
+ "interpreter" : "conda.conda_medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "Channels:\n - conda-forge\n - defaults\nPlatform: linux-64\nCollecting package metadata (repodata.json): ...working... done\nSolving environment: ...working... done\n\n## Package Plan ##\n\n environment location: /u01/.conda/envs/mychannelenv\n\n added / updated specs:\n - seaborn\n\n\nThe following packages will be downloaded:\n\n package | build\n ---------------------------|-----------------\n brotli-1.1.0 | hb9d3cd8_2 19 KB conda-forge\n brotli-bin-1.1.0 | hb9d3cd8_2 18 KB conda-forge\n contourpy-1.3.1 | py312h68727a3_0 270 KB conda-forge\n cycler-0.12.1 | pyhd8ed1ab_1 13 KB conda-forge\n fonttools-4.56.0 | py312h178313f_0 2.7 MB conda-forge\n freetype-2.12.1 | h267a509_2 620 KB conda-forge\n kiwisolver-1.4.8 | py312h84d6215_0 70 KB conda-forge\n lcms2-2.17 | h717163a_0 242 KB conda-forge\n lerc-4.0.0 | h27087fc_0 275 KB conda-forge\n libblas-3.9.0 |28_h59b9bed_openblas 16 KB conda-forge\n libbrotlicommon-1.1.0 | hb9d3cd8_2 67 KB conda-forge\n libbrotlidec-1.1.0 | hb9d3cd8_2 32 KB conda-forge\n libbrotlienc-1.1.0 | hb9d3cd8_2 275 KB conda-forge\n libcblas-3.9.0 |28_he106b2a_openblas 16 KB conda-forge\n libdeflate-1.23 | h4ddbbb0_0 71 KB conda-forge\n libgfortran-14.2.0 | h69a702a_1 53 KB conda-forge\n libgfortran5-14.2.0 | hd5240d6_1 1.4 MB conda-forge\n libjpeg-turbo-3.0.0 | hd590300_1 604 KB conda-forge\n liblapack-3.9.0 |28_h7ac8fdf_openblas 16 KB conda-forge\n libopenblas-0.3.28 |pthreads_h94d23a6_1 5.3 MB conda-forge\n libpng-1.6.47 | h943b412_0 282 KB conda-forge\n libstdcxx-14.2.0 | hc0a3c3a_1 3.7 MB conda-forge\n libstdcxx-ng-14.2.0 | h4852527_1 53 KB conda-forge\n libtiff-4.7.0 | hd9ff511_3 418 KB conda-forge\n libwebp-base-1.5.0 | h851e524_0 420 KB conda-forge\n libxcb-1.17.0 | h8a09558_0 387 KB conda-forge\n matplotlib-base-3.10.0 | py312hd3ec401_0 7.8 MB conda-forge\n munkres-1.1.4 | pyh9f0ad1d_0 12 KB conda-forge\n numpy-2.2.3 | py312h72c5963_0 8.1 MB conda-forge\n openjpeg-2.5.3 | h5fbd93e_0 335 KB conda-forge\n packaging-24.2 | pyhd8ed1ab_2 59 KB conda-forge\n pandas-2.2.3 | py312hf9745cd_1 14.7 MB conda-forge\n patsy-1.0.1 | pyhd8ed1ab_1 182 KB conda-forge\n pillow-11.1.0 | py312h80c1187_0 40.8 MB conda-forge\n pthread-stubs-0.4 | hb9d3cd8_1002 8 KB conda-forge\n pyparsing-3.2.1 | pyhd8ed1ab_0 91 KB conda-forge\n python-dateutil-2.9.0.post0| pyhff2d567_1 217 KB conda-forge\n python-tzdata-2025.1 | pyhd8ed1ab_0 140 KB conda-forge\n python_abi-3.12 | 5_cp312 6 KB conda-forge\n pytz-2024.1 | pyhd8ed1ab_0 184 KB conda-forge\n qhull-2020.2 | h434a139_5 540 KB conda-forge\n scipy-1.15.2 | py312ha707e6e_0 16.3 MB conda-forge\n seaborn-0.13.2 | hd8ed1ab_3 7 KB conda-forge\n seaborn-base-0.13.2 | pyhd8ed1ab_3 223 KB conda-forge\n six-1.17.0 | pyhd8ed1ab_0 16 KB conda-forge\n statsmodels-0.14.4 | py312hc0a28a1_0 11.5 MB conda-forge\n unicodedata2-16.0.0 | py312h66e93f0_0 395 KB conda-forge\n xorg-libxau-1.0.12 | hb9d3cd8_0 14 KB conda-forge\n xorg-libxdmcp-1.1.5 | hb9d3cd8_0 19 KB conda-forge\n zstd-1.5.6 | ha6fb4c9_0 542 KB conda-forge\n ------------------------------------------------------------\n Total: 119.4 MB\n\nThe following NEW packages will be INSTALLED:\n\n brotli conda-forge/linux-64::brotli-1.1.0-hb9d3cd8_2 \n brotli-bin conda-forge/linux-64::brotli-bin-1.1.0-hb9d3cd8_2 \n contourpy conda-forge/linux-64::contourpy-1.3.1-py312h68727a3_0 \n cycler conda-forge/noarch::cycler-0.12.1-pyhd8ed1ab_1 \n fonttools conda-forge/linux-64::fonttools-4.56.0-py312h178313f_0 \n freetype conda-forge/linux-64::freetype-2.12.1-h267a509_2 \n kiwisolver conda-forge/linux-64::kiwisolver-1.4.8-py312h84d6215_0 \n lcms2 conda-forge/linux-64::lcms2-2.17-h717163a_0 \n lerc conda-forge/linux-64::lerc-4.0.0-h27087fc_0 \n libblas conda-forge/linux-64::libblas-3.9.0-28_h59b9bed_openblas \n libbrotlicommon conda-forge/linux-64::libbrotlicommon-1.1.0-hb9d3cd8_2 \n libbrotlidec conda-forge/linux-64::libbrotlidec-1.1.0-hb9d3cd8_2 \n libbrotlienc conda-forge/linux-64::libbrotlienc-1.1.0-hb9d3cd8_2 \n libcblas conda-forge/linux-64::libcblas-3.9.0-28_he106b2a_openblas \n libdeflate conda-forge/linux-64::libdeflate-1.23-h4ddbbb0_0 \n libgfortran conda-forge/linux-64::libgfortran-14.2.0-h69a702a_1 \n libgfortran5 conda-forge/linux-64::libgfortran5-14.2.0-hd5240d6_1 \n libjpeg-turbo conda-forge/linux-64::libjpeg-turbo-3.0.0-hd590300_1 \n liblapack conda-forge/linux-64::liblapack-3.9.0-28_h7ac8fdf_openblas \n libopenblas conda-forge/linux-64::libopenblas-0.3.28-pthreads_h94d23a6_1 \n libpng conda-forge/linux-64::libpng-1.6.47-h943b412_0 \n libstdcxx conda-forge/linux-64::libstdcxx-14.2.0-hc0a3c3a_1 \n libstdcxx-ng conda-forge/linux-64::libstdcxx-ng-14.2.0-h4852527_1 \n libtiff conda-forge/linux-64::libtiff-4.7.0-hd9ff511_3 \n libwebp-base conda-forge/linux-64::libwebp-base-1.5.0-h851e524_0 \n libxcb conda-forge/linux-64::libxcb-1.17.0-h8a09558_0 \n matplotlib-base conda-forge/linux-64::matplotlib-base-3.10.0-py312hd3ec401_0 \n munkres conda-forge/noarch::munkres-1.1.4-pyh9f0ad1d_0 \n numpy conda-forge/linux-64::numpy-2.2.3-py312h72c5963_0 \n openjpeg conda-forge/linux-64::openjpeg-2.5.3-h5fbd93e_0 \n packaging conda-forge/noarch::packaging-24.2-pyhd8ed1ab_2 \n pandas conda-forge/linux-64::pandas-2.2.3-py312hf9745cd_1 \n patsy conda-forge/noarch::patsy-1.0.1-pyhd8ed1ab_1 \n pillow conda-forge/linux-64::pillow-11.1.0-py312h80c1187_0 \n pthread-stubs conda-forge/linux-64::pthread-stubs-0.4-hb9d3cd8_1002 \n pyparsing conda-forge/noarch::pyparsing-3.2.1-pyhd8ed1ab_0 \n python-dateutil conda-forge/noarch::python-dateutil-2.9.0.post0-pyhff2d567_1 \n python-tzdata conda-forge/noarch::python-tzdata-2025.1-pyhd8ed1ab_0 \n python_abi conda-forge/linux-64::python_abi-3.12-5_cp312 \n pytz conda-forge/noarch::pytz-2024.1-pyhd8ed1ab_0 \n qhull conda-forge/linux-64::qhull-2020.2-h434a139_5 \n scipy conda-forge/linux-64::scipy-1.15.2-py312ha707e6e_0 \n seaborn conda-forge/noarch::seaborn-0.13.2-hd8ed1ab_3 \n seaborn-base conda-forge/noarch::seaborn-base-0.13.2-pyhd8ed1ab_3 \n six conda-forge/noarch::six-1.17.0-pyhd8ed1ab_0 \n statsmodels conda-forge/linux-64::statsmodels-0.14.4-py312hc0a28a1_0 \n unicodedata2 conda-forge/linux-64::unicodedata2-16.0.0-py312h66e93f0_0 \n xorg-libxau conda-forge/linux-64::xorg-libxau-1.0.12-hb9d3cd8_0 \n xorg-libxdmcp conda-forge/linux-64::xorg-libxdmcp-1.1.5-hb9d3cd8_0 \n zstd conda-forge/linux-64::zstd-1.5.6-ha6fb4c9_0 \n\n\n\nDownloading and Extracting Packages: ...working... done\nPreparing transaction: ...working... done\nVerifying transaction: ...working... done\nExecuting transaction: ...working... done\n\n\n",
+ "type" : "TEXT"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : "Install a specific version of a package",
+ "hasTitle" : true,
+ "message" : [
+ "%conda",
+ "",
+ "install seaborn=0.13.2"
+ ],
+ "selectedVisualization" : "raw",
+ "visualizationConfig" : "[{\"raw\":{\"height\":300,\"lastColumns\":[],\"version\":1}}]",
+ "hideCode" : false,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : false,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988731396,
+ "endTime" : 1739988749603,
+ "interpreter" : "conda.conda_medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "Channels:\n - defaults\n - conda-forge\nPlatform: linux-64\nCollecting package metadata (repodata.json): ...working... done\nSolving environment: ...working... done\n\n## Package Plan ##\n\n environment location: /u01/.conda/envs/mychannelenv\n\n added / updated specs:\n - seaborn=0.13.2\n\n\nThe following packages will be downloaded:\n\n package | build\n ---------------------------|-----------------\n blas-2.128 | openblas 16 KB conda-forge\n blas-devel-3.9.0 |28_h1ea3ea9_openblas 16 KB conda-forge\n liblapacke-3.9.0 |28_he2f377e_openblas 16 KB conda-forge\n numpy-1.26.4 | py312h2809609_0 10 KB\n numpy-base-1.26.4 | py312he1a6c75_0 7.7 MB\n openblas-0.3.28 |pthreads_h6ec200e_1 5.5 MB conda-forge\n seaborn-0.13.2 | py312h06a4308_0 723 KB\n seaborn-base-0.13.2 | pyhd8ed1ab_0 229 KB conda-forge\n ------------------------------------------------------------\n Total: 14.1 MB\n\nThe following NEW packages will be INSTALLED:\n\n blas conda-forge/linux-64::blas-2.128-openblas \n blas-devel conda-forge/linux-64::blas-devel-3.9.0-28_h1ea3ea9_openblas \n liblapacke conda-forge/linux-64::liblapacke-3.9.0-28_he2f377e_openblas \n numpy-base pkgs/main/linux-64::numpy-base-1.26.4-py312he1a6c75_0 \n openblas conda-forge/linux-64::openblas-0.3.28-pthreads_h6ec200e_1 \n\nThe following packages will be SUPERSEDED by a higher-priority channel:\n\n numpy conda-forge::numpy-2.2.3-py312h72c596~ --> pkgs/main::numpy-1.26.4-py312h2809609_0 \n seaborn conda-forge/noarch::seaborn-0.13.2-hd~ --> pkgs/main/linux-64::seaborn-0.13.2-py312h06a4308_0 \n\nThe following packages will be DOWNGRADED:\n\n seaborn-base 0.13.2-pyhd8ed1ab_3 --> 0.13.2-pyhd8ed1ab_0 \n\n\n\nDownloading and Extracting Packages: ...working... done\nPreparing transaction: ...working... done\nVerifying transaction: ...working... done\nExecuting transaction: ...working... done\n\n\n",
+ "type" : "TEXT"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : null,
+ "hasTitle" : false,
+ "message" : [
+ "%md",
+ "",
+ "",
+ "## Section 2: Create a Conda Environment and Upload to Object Storage",
+ "",
+ "",
+ "This section demonstrates creating two conda environments and uploading them to Object Storage. An environment saved in Object Storage can be used by all of the Autonomous Database users in the database, and will remain in Object Storage until ADMIN deletes it.",
+ "",
+ "As ADMIN user:",
+ "",
+ "- Create one environment for Python packages named *mypyenv*, and one for R packages named *myrenv*.",
+ "- Install the *tensorflow* and *seaborn* packages into the Python environment and the *forecast* and *ggplot2* packages into the R environment.",
+ "- Upload the environments to Object Storage. ",
+ "- Delete the environments from Object Storage. "
+ ],
+ "selectedVisualization" : "html",
+ "visualizationConfig" : null,
+ "hideCode" : true,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : false,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988750089,
+ "endTime" : 1739988750539,
+ "interpreter" : "md.medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "<package_name>=<version>Section 2: Create a Conda Environment and Upload to Object Storage
\n\n
\n",
+ "type" : "HTML"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : null,
+ "hasTitle" : false,
+ "message" : [
+ "%md",
+ "",
+ "Create a conda environment named *mypyenv* with Python 3.12 for OML4Py compatibility and install the `tensorflow` and `seaborn` packages."
+ ],
+ "selectedVisualization" : "html",
+ "visualizationConfig" : null,
+ "hideCode" : true,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : false,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739988751018,
+ "endTime" : 1739988751468,
+ "interpreter" : "md.medium",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "tensorflow and seaborn packages.forecast and ggplot2 packages.upload command. We provide environment descriptions and two tags, one for the user name and one for the application name, and we overwrite any environment with the same name if it exists.upload command, type upload --help in the %conda interpreter.list-saved-envs, passing the environment name to the -e flag.delete command.delete command, type delete --help in a %conda paragraph.delete commands if you want to use them in an OML user session.rqAppendHostAce function (OML4R) or pyqAppendHostAce (OML4Py) to enable the OML user to access network services and resources from the database, where the root domain is the data center region where Autonomous Database resides.End of Script
\n",
+ "type" : "HTML"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/machine-learning/notebooks-oml/python/OML Third-Party Packages - Python Environment Usage.dsnb b/machine-learning/notebooks-oml/python/OML Third-Party Packages - Python Environment Usage.dsnb
new file mode 100644
index 00000000..09361e6f
--- /dev/null
+++ b/machine-learning/notebooks-oml/python/OML Third-Party Packages - Python Environment Usage.dsnb
@@ -0,0 +1,1689 @@
+[
+ {
+ "name" : "OML Third-Party Packages - Python Environment Usage",
+ "description" : null,
+ "tags" : null,
+ "version" : "7",
+ "layout" : null,
+ "type" : "low",
+ "snapshot" : false,
+ "isEditable" : true,
+ "isRunnable" : true,
+ "template" : null,
+ "templateConfig" : null,
+ "paragraphs" : [
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 0,
+ "title" : null,
+ "hasTitle" : false,
+ "message" : [
+ "%md",
+ " "
+ ],
+ "selectedVisualization" : null,
+ "visualizationConfig" : null,
+ "hideCode" : true,
+ "hideResult" : true,
+ "hideGutter" : true,
+ "hideVizConfig" : true,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739991635401,
+ "endTime" : 1739991647669,
+ "interpreter" : "md.low",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ },
+ {
+ "row" : 0,
+ "col" : 0,
+ "sizeX" : 0,
+ "width" : 12,
+ "title" : null,
+ "hasTitle" : false,
+ "message" : [
+ "%md",
+ "",
+ "# OML Third-Party Packages - Python Environment Usage",
+ "",
+ "Oracle Machine Learning Notebooks provide a conda interpreter to install third-party Python and R packages in a conda environment for use within OML Notebooks sessions, as well as within OML4R and OML4Py embedded execution invocations. Conda is an open source package and environment management system that enables the use of virtual environments containing third-party R and Python packages. With conda environments, you can install and update packages and their dependencies, and switch between environments to use project-specific packages. ",
+ "",
+ "Administrators create conda environments and install packages that can then be accessed by non-administrator users and loaded into their OML Notebooks session. The conda environments can be used in the Python and the OML4Py Python, SQL, and REST APIs, and R and the OML4R R, SQL, and REST APIs.",
+ "",
+ "In this notebook, we demonstrate a typical workflow for third-party environment usage in OML notebooks using Python and OML4Py. The OML user downloads and uses the packages in conda environments that were previously created and saved to an Object Storage bucket folder associated with the Autonomous Database.",
+ "",
+ "The template notebook titled, *OML Third-Party Packages - Environment Creation*, the ADMIN user creates a conda environment, installs packages, and uploads the conda environments to Object Storage.",
+ "",
+ "",
+ "Copyright (c) 2025 Oracle Corporation ",
+ "The Universal Permissive License (UPL), Version 1.0"
+ ],
+ "selectedVisualization" : "html",
+ "visualizationConfig" : null,
+ "hideCode" : true,
+ "hideResult" : false,
+ "hideGutter" : true,
+ "hideVizConfig" : false,
+ "hideInIFrame" : false,
+ "enabled" : true,
+ "forms" : "[]",
+ "result" : {
+ "startTime" : 1739991648241,
+ "endTime" : 1739991648787,
+ "interpreter" : "md.low",
+ "taskStatus" : "SUCCESS",
+ "status" : "SUCCESS",
+ "results" : [
+ {
+ "message" : "OML Third-Party Packages - Python Environment Usage
\nlist-saved-envs to list and return the details for a named conda environment in Object Storage. The environment name, size, and number of packages is returned along with the description and tags provided by the ADMIN when uploading the environment.mypyenv was created for use with Python and OML4Py.download and activate functions in a %conda paragraph. An activated environment is available until it is deactivated.pyqAppendHostAce function to enable the OML user to access network services and resources from the database, where the root domain is the data center region where Autonomous Database resides. For example, if your username is OMLUSER and your Autonomous Database resides in the Ashburn region, the root domain is adb.us-ashburn-1.oraclecloudapps.com.pyqSetAuthToken function to persist the authorization token issued by a cloud host for use with the upcoming SQL calls.env_name field when using SQL, and the envName field when using REST.\n
\npyqJobStatus function. If the job is still running, the return value will be job is still running. When the job completes, a job ID and result location are returned.End of script
\n",
+ "type" : "HTML"
+ }
+ ],
+ "forms" : "[]"
+ },
+ "relations" : [ ],
+ "dynamicFormParams" : "{}"
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/machine-learning/notebooks-oml/python/OML4Py -0- Tour.dsnb b/machine-learning/notebooks-oml/python/OML4Py -0- Tour.dsnb
new file mode 100644
index 00000000..72e587d0
--- /dev/null
+++ b/machine-learning/notebooks-oml/python/OML4Py -0- Tour.dsnb
@@ -0,0 +1 @@
+[{"layout":null,"template":null,"templateConfig":null,"name":"OML4Py -0- Tour","description":null,"readOnly":false,"type":"low","paragraphs":[{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":null,"title":null,"message":[],"enabled":true,"result":{"startTime":1737140124407,"interpreter":"md.low","endTime":1737140124936,"results":[],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":0,"hideResult":true,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%md","# Oracle Machine Learning for Python (OML4Py)","","***Oracle Machine Learning for Python*** (OML4Py) makes the open source Python scripting language and environment ready for the enterprise and big data. Designed for problems involving both large and small data volumes, OML4Py integrates Python with Oracle Autonomous Database, allowing users to run Python commands and scripts for statistical, machine learning, and visualization analyses on database tables and views using Python syntax. Many familiar Python functions are overloaded that translate Python behavior into SQL for running in-database, as well as automated machine learning capabilities. In this notebook, we highlight the range of OML4Py features.","","* Automated Machine Learning (AutoML)","* Machine learning model building and scoring","* Creating database tables","* Transparency layer functionality","* Embedded Python execution","* REST API invocation of embedded Python execution","","This notebook is the first of a series (0 through 5) that is intended to introduce the range of OML4Py functionality through short examples. ","","Copyright (c) 2025 Oracle Corporation ","","###### The Universal Permissive License (UPL), Version 1.0<\/a>","---"],"enabled":true,"result":{"startTime":1737140125443,"interpreter":"md.low","endTime":1737140125909,"results":[{"message":"Oracle Machine Learning for Python (OML4Py)<\/h1>\n
\n
The Universal Permissive License (UPL), Version 1.0<\/a><\/h6>\n
\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%md","# Import libraries supporting OML4Py","","","Note: The Oracle Database connectivity package ***python-oracledb*** is used to support database access. ","You can get access to the underlying connection to use ***python-oracledb*** directly via the function ***oml.cursor***. ","See the general ***cx_Oracle*** documentation <\/a> for more information. ","","For Oracle Autonomous Database, a database connection is automatically established provided you have an appropriate interpreter ","binding specified and import the ***oml*** package. "],"enabled":true,"result":{"startTime":1737140126398,"interpreter":"md.low","endTime":1737140126863,"results":[{"message":"Import libraries supporting OML4Py<\/h1>\n
Get a proxy object for a database table<\/h2>\n
Automated Machine Learning (AutoML)<\/h2>\n
\n
Automated Algorithm Selection<\/h3>\n
\n
\n
\n","type":"HTML"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":true,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":true,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"raw","title":null,"message":["%python","","as_bc = automl.AlgorithmSelection(mining_function='classification', score_metric='accuracy', parallel=4)","","alg_ranking = as_bc.select(BREASTCANCER_X, BREASTCANCER_y, k=4) ","","print(\"Ranked algorithms:\\n\", alg_ranking)","","best_alg = alg_ranking[0][0]","","print(\"\\nBest algorithm:\\n\", best_alg)"],"enabled":true,"result":{"startTime":1737140137770,"interpreter":"python.low","endTime":1737140175005,"results":[{"message":"UserWarning:Parallelism exceeds the DOP limit 2 (reverting to parallel=2)\nRanked algorithms:\n [('svm_gaussian', 0.9693819151783754), ('glm_ridge', 0.9687707743017476), ('svm_linear', 0.9652491110455712), ('nn', 0.9623719734339202)]\n\nBest algorithm:\n svm_gaussian\n","type":"TEXT"}],"taskStatus":"SUCCESS","forms":"[]","status":"SUCCESS"},"sizeX":0,"hideCode":false,"width":12,"hideResult":false,"dynamicFormParams":"{}","row":0,"hasTitle":false,"hideVizConfig":false,"hideGutter":true,"relations":[],"forms":"[]"},{"col":0,"visualizationConfig":null,"hideInIFrame":false,"selectedVisualization":"html","title":null,"message":["%md","### Automated Feature Selection","","In this example, we define a ***FeatureSelection*** object with score metric 'accuracy' and invoke ***reduce*** specifying the neural network algorithm determined above and the data set proxy object. ","","Automated Feature Selection provides a list of selected features, or columns. Use this set to produce an OML DataFrame with this column subset."," ","See the documentation for Automated Feature Selection<\/a> for more details.","","We see the set of selected columns. Replace the `'nn'` in the code below with `'svm_linear'` (in single quotes) for example to see if different columns are selected for different algorithms.","","We use the selected set of columns to also reduce the train and test datasets created earlier for use in our manual model building later in this script. "],"enabled":true,"result":{"startTime":1737140175488,"interpreter":"md.low","endTime":1737140175950,"results":[{"message":"Automated Feature Selection<\/h3>\n
'nn'<\/code> in the code below with 'svm_linear'<\/code> (in single quotes) for example to see if different columns are selected for different algorithms.<\/p>\nAutomated Model Tuning<\/h3>\n