Skip to content

Instantly share code, notes, and snippets.

@ashioyajotham
Last active October 29, 2022 11:37
Show Gist options
  • Save ashioyajotham/2babd9798e57906c0411b3137b3cd218 to your computer and use it in GitHub Desktop.
Save ashioyajotham/2babd9798e57906c0411b3137b3cd218 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"id": "up_GWVGKhTDI"
},
"cell_type": "code",
"source": "import tensorflow as tf\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns \nfrom sklearn.preprocessing import StandardScaler, LabelEncoder\nfrom sklearn.model_selection import train_test_split\nfrom sklearn import linear_model\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.svm import SVC\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.metrics import confusion_matrix, classification_report\n%matplotlib inline",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"id": "WCc055ITl71Z"
},
"cell_type": "code",
"source": "import os, types\nimport pandas as pd\nfrom botocore.client import Config\nimport ibm_boto3\n\ndef __iter__(self): return 0\n\n# @hidden_cell\n# The following code accesses a file in your IBM Cloud Object Storage. It includes your credentials.\n# You might want to remove those credentials before you share the notebook.\ncos_client = ibm_boto3.client(service_name='s3',\n ibm_api_key_id='3E3Y22gFYp-zc4fz7EHaa67qqmqCaOy9QQNVwCiyYo0B',\n ibm_auth_endpoint=\"https://iam.cloud.ibm.com/oidc/token\",\n config=Config(signature_version='oauth'),\n endpoint_url='https://s3.private.eu.cloud-object-storage.appdomain.cloud')\n\nbucket = 'wine-donotdelete-pr-okutpc6bynhzoq'\nobject_key = 'winequality-red.csv'\n\nbody = cos_client.get_object(Bucket=bucket,Key=object_key)['Body']\n# add missing __iter__ method, so pandas accepts body as file-like object\nif not hasattr(body, \"__iter__\"): body.__iter__ = types.MethodType( __iter__, body )\n\ndf = pd.read_csv(body)\ndf.head()",
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 2,
"data": {
"text/plain": " fixed acidity volatile acidity citric acid residual sugar chlorides \\\n0 7.4 0.70 0.00 1.9 0.076 \n1 7.8 0.88 0.00 2.6 0.098 \n2 7.8 0.76 0.04 2.3 0.092 \n3 11.2 0.28 0.56 1.9 0.075 \n4 7.4 0.70 0.00 1.9 0.076 \n\n free sulfur dioxide total sulfur dioxide density pH sulphates \\\n0 11.0 34.0 0.9978 3.51 0.56 \n1 25.0 67.0 0.9968 3.20 0.68 \n2 15.0 54.0 0.9970 3.26 0.65 \n3 17.0 60.0 0.9980 3.16 0.58 \n4 11.0 34.0 0.9978 3.51 0.56 \n\n alcohol quality \n0 9.4 5 \n1 9.8 5 \n2 9.8 5 \n3 9.8 6 \n4 9.4 5 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>fixed acidity</th>\n <th>volatile acidity</th>\n <th>citric acid</th>\n <th>residual sugar</th>\n <th>chlorides</th>\n <th>free sulfur dioxide</th>\n <th>total sulfur dioxide</th>\n <th>density</th>\n <th>pH</th>\n <th>sulphates</th>\n <th>alcohol</th>\n <th>quality</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>7.4</td>\n <td>0.70</td>\n <td>0.00</td>\n <td>1.9</td>\n <td>0.076</td>\n <td>11.0</td>\n <td>34.0</td>\n <td>0.9978</td>\n <td>3.51</td>\n <td>0.56</td>\n <td>9.4</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1</th>\n <td>7.8</td>\n <td>0.88</td>\n <td>0.00</td>\n <td>2.6</td>\n <td>0.098</td>\n <td>25.0</td>\n <td>67.0</td>\n <td>0.9968</td>\n <td>3.20</td>\n <td>0.68</td>\n <td>9.8</td>\n <td>5</td>\n </tr>\n <tr>\n <th>2</th>\n <td>7.8</td>\n <td>0.76</td>\n <td>0.04</td>\n <td>2.3</td>\n <td>0.092</td>\n <td>15.0</td>\n <td>54.0</td>\n <td>0.9970</td>\n <td>3.26</td>\n <td>0.65</td>\n <td>9.8</td>\n <td>5</td>\n </tr>\n <tr>\n <th>3</th>\n <td>11.2</td>\n <td>0.28</td>\n <td>0.56</td>\n <td>1.9</td>\n <td>0.075</td>\n <td>17.0</td>\n <td>60.0</td>\n <td>0.9980</td>\n <td>3.16</td>\n <td>0.58</td>\n <td>9.8</td>\n <td>6</td>\n </tr>\n <tr>\n <th>4</th>\n <td>7.4</td>\n <td>0.70</td>\n <td>0.00</td>\n <td>1.9</td>\n <td>0.076</td>\n <td>11.0</td>\n <td>34.0</td>\n <td>0.9978</td>\n <td>3.51</td>\n <td>0.56</td>\n <td>9.4</td>\n <td>5</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 462
},
"id": "ivSgtGQYmJxn",
"outputId": "2cf266e0-b8aa-40b0-d0a4-7b9579a8cd40"
},
"cell_type": "code",
"source": "df.tail(10)",
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 3,
"data": {
"text/plain": " fixed acidity volatile acidity citric acid residual sugar chlorides \\\n1589 6.6 0.725 0.20 7.8 0.073 \n1590 6.3 0.550 0.15 1.8 0.077 \n1591 5.4 0.740 0.09 1.7 0.089 \n1592 6.3 0.510 0.13 2.3 0.076 \n1593 6.8 0.620 0.08 1.9 0.068 \n1594 6.2 0.600 0.08 2.0 0.090 \n1595 5.9 0.550 0.10 2.2 0.062 \n1596 6.3 0.510 0.13 2.3 0.076 \n1597 5.9 0.645 0.12 2.0 0.075 \n1598 6.0 0.310 0.47 3.6 0.067 \n\n free sulfur dioxide total sulfur dioxide density pH sulphates \\\n1589 29.0 79.0 0.99770 3.29 0.54 \n1590 26.0 35.0 0.99314 3.32 0.82 \n1591 16.0 26.0 0.99402 3.67 0.56 \n1592 29.0 40.0 0.99574 3.42 0.75 \n1593 28.0 38.0 0.99651 3.42 0.82 \n1594 32.0 44.0 0.99490 3.45 0.58 \n1595 39.0 51.0 0.99512 3.52 0.76 \n1596 29.0 40.0 0.99574 3.42 0.75 \n1597 32.0 44.0 0.99547 3.57 0.71 \n1598 18.0 42.0 0.99549 3.39 0.66 \n\n alcohol quality \n1589 9.2 5 \n1590 11.6 6 \n1591 11.6 6 \n1592 11.0 6 \n1593 9.5 6 \n1594 10.5 5 \n1595 11.2 6 \n1596 11.0 6 \n1597 10.2 5 \n1598 11.0 6 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>fixed acidity</th>\n <th>volatile acidity</th>\n <th>citric acid</th>\n <th>residual sugar</th>\n <th>chlorides</th>\n <th>free sulfur dioxide</th>\n <th>total sulfur dioxide</th>\n <th>density</th>\n <th>pH</th>\n <th>sulphates</th>\n <th>alcohol</th>\n <th>quality</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1589</th>\n <td>6.6</td>\n <td>0.725</td>\n <td>0.20</td>\n <td>7.8</td>\n <td>0.073</td>\n <td>29.0</td>\n <td>79.0</td>\n <td>0.99770</td>\n <td>3.29</td>\n <td>0.54</td>\n <td>9.2</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1590</th>\n <td>6.3</td>\n <td>0.550</td>\n <td>0.15</td>\n <td>1.8</td>\n <td>0.077</td>\n <td>26.0</td>\n <td>35.0</td>\n <td>0.99314</td>\n <td>3.32</td>\n <td>0.82</td>\n <td>11.6</td>\n <td>6</td>\n </tr>\n <tr>\n <th>1591</th>\n <td>5.4</td>\n <td>0.740</td>\n <td>0.09</td>\n <td>1.7</td>\n <td>0.089</td>\n <td>16.0</td>\n <td>26.0</td>\n <td>0.99402</td>\n <td>3.67</td>\n <td>0.56</td>\n <td>11.6</td>\n <td>6</td>\n </tr>\n <tr>\n <th>1592</th>\n <td>6.3</td>\n <td>0.510</td>\n <td>0.13</td>\n <td>2.3</td>\n <td>0.076</td>\n <td>29.0</td>\n <td>40.0</td>\n <td>0.99574</td>\n <td>3.42</td>\n <td>0.75</td>\n <td>11.0</td>\n <td>6</td>\n </tr>\n <tr>\n <th>1593</th>\n <td>6.8</td>\n <td>0.620</td>\n <td>0.08</td>\n <td>1.9</td>\n <td>0.068</td>\n <td>28.0</td>\n <td>38.0</td>\n <td>0.99651</td>\n <td>3.42</td>\n <td>0.82</td>\n <td>9.5</td>\n <td>6</td>\n </tr>\n <tr>\n <th>1594</th>\n <td>6.2</td>\n <td>0.600</td>\n <td>0.08</td>\n <td>2.0</td>\n <td>0.090</td>\n <td>32.0</td>\n <td>44.0</td>\n <td>0.99490</td>\n <td>3.45</td>\n <td>0.58</td>\n <td>10.5</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1595</th>\n <td>5.9</td>\n <td>0.550</td>\n <td>0.10</td>\n <td>2.2</td>\n <td>0.062</td>\n <td>39.0</td>\n <td>51.0</td>\n <td>0.99512</td>\n <td>3.52</td>\n <td>0.76</td>\n <td>11.2</td>\n <td>6</td>\n </tr>\n <tr>\n <th>1596</th>\n <td>6.3</td>\n <td>0.510</td>\n <td>0.13</td>\n <td>2.3</td>\n <td>0.076</td>\n <td>29.0</td>\n <td>40.0</td>\n <td>0.99574</td>\n <td>3.42</td>\n <td>0.75</td>\n <td>11.0</td>\n <td>6</td>\n </tr>\n <tr>\n <th>1597</th>\n <td>5.9</td>\n <td>0.645</td>\n <td>0.12</td>\n <td>2.0</td>\n <td>0.075</td>\n <td>32.0</td>\n <td>44.0</td>\n <td>0.99547</td>\n <td>3.57</td>\n <td>0.71</td>\n <td>10.2</td>\n <td>5</td>\n </tr>\n <tr>\n <th>1598</th>\n <td>6.0</td>\n <td>0.310</td>\n <td>0.47</td>\n <td>3.6</td>\n <td>0.067</td>\n <td>18.0</td>\n <td>42.0</td>\n <td>0.99549</td>\n <td>3.39</td>\n <td>0.66</td>\n <td>11.0</td>\n <td>6</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "79NyqS9fmN2I",
"outputId": "b80f3c19-12ff-457c-b538-964f62925122"
},
"cell_type": "code",
"source": "df.info()",
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": "<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 1599 entries, 0 to 1598\nData columns (total 12 columns):\n # Column Non-Null Count Dtype \n--- ------ -------------- ----- \n 0 fixed acidity 1599 non-null float64\n 1 volatile acidity 1599 non-null float64\n 2 citric acid 1599 non-null float64\n 3 residual sugar 1599 non-null float64\n 4 chlorides 1599 non-null float64\n 5 free sulfur dioxide 1599 non-null float64\n 6 total sulfur dioxide 1599 non-null float64\n 7 density 1599 non-null float64\n 8 pH 1599 non-null float64\n 9 sulphates 1599 non-null float64\n 10 alcohol 1599 non-null float64\n 11 quality 1599 non-null int64 \ndtypes: float64(11), int64(1)\nmemory usage: 150.0 KB\n",
"name": "stdout"
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "r_2TitG9mSab",
"outputId": "44acdb83-d3df-426c-b5e8-0c069692017e"
},
"cell_type": "code",
"source": "df.isnull().sum()",
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 5,
"data": {
"text/plain": "fixed acidity 0\nvolatile acidity 0\ncitric acid 0\nresidual sugar 0\nchlorides 0\nfree sulfur dioxide 0\ntotal sulfur dioxide 0\ndensity 0\npH 0\nsulphates 0\nalcohol 0\nquality 0\ndtype: int64"
},
"metadata": {}
}
]
},
{
"metadata": {
"id": "3ht1cuWkW7r4"
},
"cell_type": "code",
"source": "density=df['density']",
"execution_count": 6,
"outputs": []
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 334
},
"id": "L-sAFSmKWTI_",
"outputId": "fb0bf1d1-e6df-4fdf-c5c9-afd9ffaf9fb1"
},
"cell_type": "code",
"source": "plt.hist(density)",
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 7,
"data": {
"text/plain": "(array([ 8., 27., 90., 250., 485., 450., 185., 74., 19., 11.]),\n array([0.99007 , 0.991432, 0.992794, 0.994156, 0.995518, 0.99688 ,\n 0.998242, 0.999604, 1.000966, 1.002328, 1.00369 ]),\n <BarContainer object of 10 artists>)"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 351
},
"id": "av7uZneLZmwP",
"outputId": "f13965fc-30a5-48c1-82fa-efaa4396f49a"
},
"cell_type": "code",
"source": "sns.distplot(df['total sulfur dioxide'].dropna(),kde=False,color='darkred', bins=20)",
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"text": "/opt/conda/envs/Python-3.9/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n warnings.warn(msg, FutureWarning)\n",
"name": "stderr"
},
{
"output_type": "execute_result",
"execution_count": 8,
"data": {
"text/plain": "<AxesSubplot:xlabel='total sulfur dioxide'>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 282
},
"id": "7meR-M-fdT0e",
"outputId": "19fcc84c-4866-4bd7-c6f4-6a6f3eef4801"
},
"cell_type": "code",
"source": "plt.scatter(df['density'],df['pH'])",
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 9,
"data": {
"text/plain": "<matplotlib.collections.PathCollection at 0x7f4305972130>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "aQpvLb1NyjfJ",
"outputId": "9b4f661a-e3a0-4f9c-8c08-78f9b77dde40"
},
"cell_type": "code",
"source": "#preprocessing\nbins=(2,6.5,8)\nclass_label=[\"bad\",\"good\"]\ndf[\"quality\"]=pd.cut(df[\"quality\"],bins=bins, labels=class_label)\ndf[\"quality\"].unique()",
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 10,
"data": {
"text/plain": "['bad', 'good']\nCategories (2, object): ['bad' < 'good']"
},
"metadata": {}
}
]
},
{
"metadata": {
"id": "I48QlHl7z-iW"
},
"cell_type": "code",
"source": "label_quality=LabelEncoder()",
"execution_count": 11,
"outputs": []
},
{
"metadata": {
"id": "p0xOCH3d0P93"
},
"cell_type": "code",
"source": "df[\"quality\"]=label_quality.fit_transform(df[\"quality\"])",
"execution_count": 12,
"outputs": []
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 462
},
"id": "oOut_k0e0gc4",
"outputId": "c8983573-71fa-4877-b572-1c6762ce1436"
},
"cell_type": "code",
"source": "df.head(10)",
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 13,
"data": {
"text/plain": " fixed acidity volatile acidity citric acid residual sugar chlorides \\\n0 7.4 0.70 0.00 1.9 0.076 \n1 7.8 0.88 0.00 2.6 0.098 \n2 7.8 0.76 0.04 2.3 0.092 \n3 11.2 0.28 0.56 1.9 0.075 \n4 7.4 0.70 0.00 1.9 0.076 \n5 7.4 0.66 0.00 1.8 0.075 \n6 7.9 0.60 0.06 1.6 0.069 \n7 7.3 0.65 0.00 1.2 0.065 \n8 7.8 0.58 0.02 2.0 0.073 \n9 7.5 0.50 0.36 6.1 0.071 \n\n free sulfur dioxide total sulfur dioxide density pH sulphates \\\n0 11.0 34.0 0.9978 3.51 0.56 \n1 25.0 67.0 0.9968 3.20 0.68 \n2 15.0 54.0 0.9970 3.26 0.65 \n3 17.0 60.0 0.9980 3.16 0.58 \n4 11.0 34.0 0.9978 3.51 0.56 \n5 13.0 40.0 0.9978 3.51 0.56 \n6 15.0 59.0 0.9964 3.30 0.46 \n7 15.0 21.0 0.9946 3.39 0.47 \n8 9.0 18.0 0.9968 3.36 0.57 \n9 17.0 102.0 0.9978 3.35 0.80 \n\n alcohol quality \n0 9.4 0 \n1 9.8 0 \n2 9.8 0 \n3 9.8 0 \n4 9.4 0 \n5 9.4 0 \n6 9.4 0 \n7 10.0 1 \n8 9.5 1 \n9 10.5 0 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>fixed acidity</th>\n <th>volatile acidity</th>\n <th>citric acid</th>\n <th>residual sugar</th>\n <th>chlorides</th>\n <th>free sulfur dioxide</th>\n <th>total sulfur dioxide</th>\n <th>density</th>\n <th>pH</th>\n <th>sulphates</th>\n <th>alcohol</th>\n <th>quality</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>7.4</td>\n <td>0.70</td>\n <td>0.00</td>\n <td>1.9</td>\n <td>0.076</td>\n <td>11.0</td>\n <td>34.0</td>\n <td>0.9978</td>\n <td>3.51</td>\n <td>0.56</td>\n <td>9.4</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>7.8</td>\n <td>0.88</td>\n <td>0.00</td>\n <td>2.6</td>\n <td>0.098</td>\n <td>25.0</td>\n <td>67.0</td>\n <td>0.9968</td>\n <td>3.20</td>\n <td>0.68</td>\n <td>9.8</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>7.8</td>\n <td>0.76</td>\n <td>0.04</td>\n <td>2.3</td>\n <td>0.092</td>\n <td>15.0</td>\n <td>54.0</td>\n <td>0.9970</td>\n <td>3.26</td>\n <td>0.65</td>\n <td>9.8</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>11.2</td>\n <td>0.28</td>\n <td>0.56</td>\n <td>1.9</td>\n <td>0.075</td>\n <td>17.0</td>\n <td>60.0</td>\n <td>0.9980</td>\n <td>3.16</td>\n <td>0.58</td>\n <td>9.8</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>7.4</td>\n <td>0.70</td>\n <td>0.00</td>\n <td>1.9</td>\n <td>0.076</td>\n <td>11.0</td>\n <td>34.0</td>\n <td>0.9978</td>\n <td>3.51</td>\n <td>0.56</td>\n <td>9.4</td>\n <td>0</td>\n </tr>\n <tr>\n <th>5</th>\n <td>7.4</td>\n <td>0.66</td>\n <td>0.00</td>\n <td>1.8</td>\n <td>0.075</td>\n <td>13.0</td>\n <td>40.0</td>\n <td>0.9978</td>\n <td>3.51</td>\n <td>0.56</td>\n <td>9.4</td>\n <td>0</td>\n </tr>\n <tr>\n <th>6</th>\n <td>7.9</td>\n <td>0.60</td>\n <td>0.06</td>\n <td>1.6</td>\n <td>0.069</td>\n <td>15.0</td>\n <td>59.0</td>\n <td>0.9964</td>\n <td>3.30</td>\n <td>0.46</td>\n <td>9.4</td>\n <td>0</td>\n </tr>\n <tr>\n <th>7</th>\n <td>7.3</td>\n <td>0.65</td>\n <td>0.00</td>\n <td>1.2</td>\n <td>0.065</td>\n <td>15.0</td>\n <td>21.0</td>\n <td>0.9946</td>\n <td>3.39</td>\n <td>0.47</td>\n <td>10.0</td>\n <td>1</td>\n </tr>\n <tr>\n <th>8</th>\n <td>7.8</td>\n <td>0.58</td>\n <td>0.02</td>\n <td>2.0</td>\n <td>0.073</td>\n <td>9.0</td>\n <td>18.0</td>\n <td>0.9968</td>\n <td>3.36</td>\n <td>0.57</td>\n <td>9.5</td>\n <td>1</td>\n </tr>\n <tr>\n <th>9</th>\n <td>7.5</td>\n <td>0.50</td>\n <td>0.36</td>\n <td>6.1</td>\n <td>0.071</td>\n <td>17.0</td>\n <td>102.0</td>\n <td>0.9978</td>\n <td>3.35</td>\n <td>0.80</td>\n <td>10.5</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "2bO91D7J3eU5",
"outputId": "e8acbb64-cb4b-4207-9527-71ba0bf6b78f"
},
"cell_type": "code",
"source": "df.info()",
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"text": "<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 1599 entries, 0 to 1598\nData columns (total 12 columns):\n # Column Non-Null Count Dtype \n--- ------ -------------- ----- \n 0 fixed acidity 1599 non-null float64\n 1 volatile acidity 1599 non-null float64\n 2 citric acid 1599 non-null float64\n 3 residual sugar 1599 non-null float64\n 4 chlorides 1599 non-null float64\n 5 free sulfur dioxide 1599 non-null float64\n 6 total sulfur dioxide 1599 non-null float64\n 7 density 1599 non-null float64\n 8 pH 1599 non-null float64\n 9 sulphates 1599 non-null float64\n 10 alcohol 1599 non-null float64\n 11 quality 1599 non-null int64 \ndtypes: float64(11), int64(1)\nmemory usage: 150.0 KB\n",
"name": "stdout"
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "PxiizqhJ0vrF",
"outputId": "6cfb1794-2918-4615-8f62-f1c334676c4f"
},
"cell_type": "code",
"source": "df[\"quality\"].value_counts()",
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 15,
"data": {
"text/plain": "0 1382\n1 217\nName: quality, dtype: int64"
},
"metadata": {}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 351
},
"id": "TaszYHp0zaBa",
"outputId": "313bd902-f327-4cb9-f839-79391f535b87"
},
"cell_type": "code",
"source": "sns.countplot(df[\"quality\"])",
"execution_count": 16,
"outputs": [
{
"output_type": "stream",
"text": "/opt/conda/envs/Python-3.9/lib/python3.9/site-packages/seaborn/_decorators.py:36: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n warnings.warn(\n",
"name": "stderr"
},
{
"output_type": "execute_result",
"execution_count": 16,
"data": {
"text/plain": "<AxesSubplot:xlabel='quality', ylabel='count'>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {
"id": "yfEKbc531n1R"
},
"cell_type": "code",
"source": "#split features from class label\nX=df.drop(\"quality\",axis=1)\ny=df[\"quality\"]",
"execution_count": 17,
"outputs": []
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "uuF8m8lOyc1j",
"outputId": "61e4f329-fc0c-49c5-82e5-9408a776fef7"
},
"cell_type": "code",
"source": "X.shape",
"execution_count": 18,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 18,
"data": {
"text/plain": "(1599, 11)"
},
"metadata": {}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "-9gnA6cv3Evc",
"outputId": "83c8a057-374d-4227-89b8-aa3dc899072d"
},
"cell_type": "code",
"source": "y.value_counts()",
"execution_count": 19,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 19,
"data": {
"text/plain": "0 1382\n1 217\nName: quality, dtype: int64"
},
"metadata": {}
}
]
},
{
"metadata": {
"id": "JdUKs5mI2BRY"
},
"cell_type": "code",
"source": "#splitting data into training and testing data\nX_train,X_test,y_train,y_test= train_test_split(X,y,test_size=0.2, random_state=23)",
"execution_count": 20,
"outputs": []
},
{
"metadata": {
"id": "0tT2z73m4lQb"
},
"cell_type": "code",
"source": "#scalling the data to get optimized results \nsc=StandardScaler()\nX_train=sc.fit_transform(X_train)\nX_test=sc.transform(X_test)",
"execution_count": 21,
"outputs": []
},
{
"metadata": {
"id": "MZPoBH-umY78"
},
"cell_type": "code",
"source": "#Logistic Regression",
"execution_count": 22,
"outputs": []
},
{
"metadata": {
"id": "qTv7lAI25OMo"
},
"cell_type": "code",
"source": "logit=linear_model.LogisticRegression()",
"execution_count": 23,
"outputs": []
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "hiKOX2h_7GpX",
"outputId": "0f7d1e0f-d2a5-430c-a9c8-1d7e152e2788"
},
"cell_type": "code",
"source": "logit.fit(X_train,y_train)",
"execution_count": 24,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 24,
"data": {
"text/plain": "LogisticRegression()"
},
"metadata": {}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "6FIycTo47dBG",
"outputId": "85db85bc-d3e9-4eb4-99bf-0ffbbdaae566"
},
"cell_type": "code",
"source": "logit.score(X_test,y_test)",
"execution_count": 25,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 25,
"data": {
"text/plain": "0.88125"
},
"metadata": {}
}
]
},
{
"metadata": {
"id": "5xvm-gRZ7sV5"
},
"cell_type": "code",
"source": "logit_pred=logit.predict(X_test)",
"execution_count": 26,
"outputs": []
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "OZIaQqZs7uZk",
"outputId": "19bead50-791e-44c8-bc39-220545e07e55"
},
"cell_type": "code",
"source": "print(classification_report(y_test,logit_pred))",
"execution_count": 27,
"outputs": [
{
"output_type": "stream",
"text": " precision recall f1-score support\n\n 0 0.91 0.96 0.93 280\n 1 0.55 0.30 0.39 40\n\n accuracy 0.88 320\n macro avg 0.73 0.63 0.66 320\nweighted avg 0.86 0.88 0.87 320\n\n",
"name": "stdout"
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "4hvOAubS8EYS",
"outputId": "45110524-2eed-4f46-de8b-d45315a8d5e1"
},
"cell_type": "code",
"source": "cm=confusion_matrix(y_test,logit_pred)\ncm",
"execution_count": 28,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 28,
"data": {
"text/plain": "array([[270, 10],\n [ 28, 12]])"
},
"metadata": {}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 405
},
"id": "HWzwisNZ8LJO",
"outputId": "e8d88557-a79a-4992-e5bc-c24b6b2739d3"
},
"cell_type": "code",
"source": "plt.figure(figsize=(8,6))\nsns.heatmap(cm,annot=True, cmap=\"YlGnBu\")\nplt.xlabel('predicted')\nplt.ylabel('Truth')",
"execution_count": 29,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 29,
"data": {
"text/plain": "Text(51.0, 0.5, 'Truth')"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 576x432 with 2 Axes>",
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ig5O3zB4_FAD",
"outputId": "9cefa035-d47e-4f9c-9ea0-be85e578fa38"
},
"cell_type": "code",
"source": "y_test.shape",
"execution_count": 30,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 30,
"data": {
"text/plain": "(320,)"
},
"metadata": {}
}
]
},
{
"metadata": {
"id": "1IK0TjIOHKHU"
},
"cell_type": "code",
"source": "#!pip install scikit-plot",
"execution_count": 31,
"outputs": []
},
{
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 312
},
"id": "8XePHAQjDuAQ",
"outputId": "8312753d-104a-474e-cc8d-9aa53a87c27a",
"scrolled": true
},
"cell_type": "code",
"source": "!pip install scikit-plot\nimport scikitplot as skplt\nskplt.metrics.plot_confusion_matrix( y_test,logit_pred);",
"execution_count": 32,
"outputs": [
{
"output_type": "stream",
"text": "Requirement already satisfied: scikit-plot in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (0.3.7)\nRequirement already satisfied: matplotlib>=1.4.0 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from scikit-plot) (3.5.0)\nRequirement already satisfied: joblib>=0.10 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from scikit-plot) (0.17.0)\nRequirement already satisfied: scipy>=0.9 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from scikit-plot) (1.7.3)\nRequirement already satisfied: scikit-learn>=0.18 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from scikit-plot) (1.0.2)\nRequirement already satisfied: pillow>=6.2.0 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from matplotlib>=1.4.0->scikit-plot) (9.0.1)\nRequirement already satisfied: pyparsing>=2.2.1 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from matplotlib>=1.4.0->scikit-plot) (3.0.4)\nRequirement already satisfied: python-dateutil>=2.7 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from matplotlib>=1.4.0->scikit-plot) (2.8.2)\nRequirement already satisfied: packaging>=20.0 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from matplotlib>=1.4.0->scikit-plot) (21.3)\nRequirement already satisfied: fonttools>=4.22.0 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from matplotlib>=1.4.0->scikit-plot) (4.25.0)\nRequirement already satisfied: cycler>=0.10 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from matplotlib>=1.4.0->scikit-plot) (0.11.0)\nRequirement already satisfied: numpy>=1.17 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from matplotlib>=1.4.0->scikit-plot) (1.20.3)\nRequirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from matplotlib>=1.4.0->scikit-plot) (1.3.1)\nRequirement already satisfied: six>=1.5 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from python-dateutil>=2.7->matplotlib>=1.4.0->scikit-plot) (1.15.0)\nRequirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from scikit-learn>=0.18->scikit-plot) (2.2.0)\n",
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 2 Axes>",
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {},
"cell_type": "code",
"source": "wml_credentials = {\n \"apikey\":\"Y-O1F_4n0_b5NLSu2MEzfOQS_o5hKJNpVM9bjwNwzQh5\",\n \"url\": \"https://eu-de.ml.cloud.ibm.com\"\n}",
"execution_count": 33,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "pip install -U ibm-watson-machine-learning",
"execution_count": 34,
"outputs": [
{
"output_type": "stream",
"text": "Requirement already satisfied: ibm-watson-machine-learning in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (1.0.256)\nRequirement already satisfied: certifi in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-watson-machine-learning) (2022.9.24)\nRequirement already satisfied: ibm-cos-sdk==2.11.* in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-watson-machine-learning) (2.11.0)\nRequirement already satisfied: pandas<1.5.0,>=0.24.2 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-watson-machine-learning) (1.3.4)\nRequirement already satisfied: tabulate in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-watson-machine-learning) (0.8.9)\nRequirement already satisfied: packaging in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-watson-machine-learning) (21.3)\nRequirement already satisfied: lomond in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-watson-machine-learning) (0.3.3)\nRequirement already satisfied: requests in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-watson-machine-learning) (2.26.0)\nRequirement already satisfied: urllib3 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-watson-machine-learning) (1.26.7)\nRequirement already satisfied: importlib-metadata in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-watson-machine-learning) (4.8.2)\nRequirement already satisfied: jmespath<1.0.0,>=0.7.1 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-cos-sdk==2.11.*->ibm-watson-machine-learning) (0.10.0)\nRequirement already satisfied: ibm-cos-sdk-s3transfer==2.11.0 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-cos-sdk==2.11.*->ibm-watson-machine-learning) (2.11.0)\nRequirement already satisfied: ibm-cos-sdk-core==2.11.0 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-cos-sdk==2.11.*->ibm-watson-machine-learning) (2.11.0)\nRequirement already satisfied: python-dateutil<3.0.0,>=2.1 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from ibm-cos-sdk-core==2.11.0->ibm-cos-sdk==2.11.*->ibm-watson-machine-learning) (2.8.2)\nRequirement already satisfied: pytz>=2017.3 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from pandas<1.5.0,>=0.24.2->ibm-watson-machine-learning) (2021.3)\nRequirement already satisfied: numpy>=1.17.3 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from pandas<1.5.0,>=0.24.2->ibm-watson-machine-learning) (1.20.3)\nRequirement already satisfied: six>=1.5 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from python-dateutil<3.0.0,>=2.1->ibm-cos-sdk-core==2.11.0->ibm-cos-sdk==2.11.*->ibm-watson-machine-learning) (1.15.0)\nRequirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from requests->ibm-watson-machine-learning) (2.0.4)\nRequirement already satisfied: idna<4,>=2.5 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from requests->ibm-watson-machine-learning) (3.3)\nRequirement already satisfied: zipp>=0.5 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from importlib-metadata->ibm-watson-machine-learning) (3.6.0)\nRequirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/envs/Python-3.9/lib/python3.9/site-packages (from packaging->ibm-watson-machine-learning) (3.0.4)\nNote: you may need to restart the kernel to use updated packages.\n",
"name": "stdout"
}
]
},
{
"metadata": {
"scrolled": true
},
"cell_type": "code",
"source": "from ibm_watson_machine_learning import APIClient\n\nclient = APIClient(wml_credentials)",
"execution_count": 35,
"outputs": []
},
{
"metadata": {
"scrolled": true
},
"cell_type": "code",
"source": "client.spaces.list(limit=10)",
"execution_count": 36,
"outputs": [
{
"output_type": "stream",
"text": "------------------------------------ ----------------------- ------------------------\nID NAME CREATED\na03cdc39-4a04-4bff-9ab4-6c63282eaf68 WineNotebook_Deployment 2022-10-29T10:20:21.705Z\n------------------------------------ ----------------------- ------------------------\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "code",
"source": "space_id = 'a03cdc39-4a04-4bff-9ab4-6c63282eaf68'",
"execution_count": 37,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "client.set.default_space(space_id)",
"execution_count": 38,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 38,
"data": {
"text/plain": "'SUCCESS'"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "code",
"source": "sofware_spec_uid = client.software_specifications.get_id_by_name(\"runtime-22.1-py3.9\")",
"execution_count": 39,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "print(sofware_spec_uid)",
"execution_count": 40,
"outputs": [
{
"output_type": "stream",
"text": "12b83a17-24d8-5082-900f-0ab31fbfd3cb\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "code",
"source": "metadata = {\n client.repository.ModelMetaNames.NAME: 'learning_space model',\n client.repository.ModelMetaNames.TYPE: 'scikit-learn_1.0',\n client.repository.ModelMetaNames.SOFTWARE_SPEC_UID: sofware_spec_uid\n}",
"execution_count": 41,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "model=logit",
"execution_count": 42,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "published_model = client.repository.store_model(\n model=model,\n meta_props=metadata,\n training_data=X_train,\n training_target=y_train)",
"execution_count": 43,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "published_model",
"execution_count": 44,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 44,
"data": {
"text/plain": "{'entity': {'hybrid_pipeline_software_specs': [],\n 'label_column': 'quality',\n 'schemas': {'input': [{'fields': [{'name': 'f0', 'type': 'float'},\n {'name': 'f1', 'type': 'float'},\n {'name': 'f2', 'type': 'float'},\n {'name': 'f3', 'type': 'float'},\n {'name': 'f4', 'type': 'float'},\n {'name': 'f5', 'type': 'float'},\n {'name': 'f6', 'type': 'float'},\n {'name': 'f7', 'type': 'float'},\n {'name': 'f8', 'type': 'float'},\n {'name': 'f9', 'type': 'float'},\n {'name': 'f10', 'type': 'float'}],\n 'id': '1',\n 'type': 'struct'}],\n 'output': []},\n 'software_spec': {'id': '12b83a17-24d8-5082-900f-0ab31fbfd3cb',\n 'name': 'runtime-22.1-py3.9'},\n 'type': 'scikit-learn_1.0'},\n 'metadata': {'created_at': '2022-10-29T11:36:49.829Z',\n 'id': '746ffc98-af31-414b-a747-84678e1b4af6',\n 'modified_at': '2022-10-29T11:36:53.330Z',\n 'name': 'learning_space model',\n 'owner': 'IBMid-668000DP2L',\n 'resource_key': 'c089bdab-8aec-4dcd-86a2-0d2896078f3b',\n 'space_id': 'a03cdc39-4a04-4bff-9ab4-6c63282eaf68'},\n 'system': {'warnings': []}}"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "code",
"source": "import json",
"execution_count": 45,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "published_model_uid = client.repository.get_model_id(published_model)",
"execution_count": 46,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "model_details = client.repository.get_details(published_model_uid)",
"execution_count": 47,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "print(json.dumps(model_details, indent=2))",
"execution_count": 48,
"outputs": [
{
"output_type": "stream",
"text": "{\n \"entity\": {\n \"hybrid_pipeline_software_specs\": [],\n \"label_column\": \"quality\",\n \"schemas\": {\n \"input\": [\n {\n \"fields\": [\n {\n \"name\": \"f0\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f1\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f2\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f3\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f4\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f5\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f6\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f7\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f8\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f9\",\n \"type\": \"float\"\n },\n {\n \"name\": \"f10\",\n \"type\": \"float\"\n }\n ],\n \"id\": \"1\",\n \"type\": \"struct\"\n }\n ],\n \"output\": []\n },\n \"software_spec\": {\n \"id\": \"12b83a17-24d8-5082-900f-0ab31fbfd3cb\",\n \"name\": \"runtime-22.1-py3.9\"\n },\n \"type\": \"scikit-learn_1.0\"\n },\n \"metadata\": {\n \"created_at\": \"2022-10-29T11:36:49.829Z\",\n \"id\": \"746ffc98-af31-414b-a747-84678e1b4af6\",\n \"modified_at\": \"2022-10-29T11:36:53.330Z\",\n \"name\": \"learning_space model\",\n \"owner\": \"IBMid-668000DP2L\",\n \"resource_key\": \"c089bdab-8aec-4dcd-86a2-0d2896078f3b\",\n \"space_id\": \"a03cdc39-4a04-4bff-9ab4-6c63282eaf68\"\n },\n \"system\": {\n \"warnings\": []\n }\n}\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "code",
"source": "models_details = client.repository.list_models()",
"execution_count": 49,
"outputs": [
{
"output_type": "stream",
"text": "------------------------------------ -------------------- ------------------------ ----------------\nID NAME CREATED TYPE\n746ffc98-af31-414b-a747-84678e1b4af6 learning_space model 2022-10-29T11:36:49.002Z scikit-learn_1.0\nb970a569-311a-41a1-895d-e41323ac3ac2 learning_space model 2022-10-29T10:48:23.002Z scikit-learn_1.0\n------------------------------------ -------------------- ------------------------ ----------------\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "code",
"source": "metadata = {\n client.deployments.ConfigurationMetaNames.NAME: \"Deployment of scikit model\",\n client.deployments.ConfigurationMetaNames.ONLINE: {}\n}",
"execution_count": 50,
"outputs": []
},
{
"metadata": {},
"cell_type": "code",
"source": "created_deployment = client.deployments.create(published_model_uid, meta_props=metadata)",
"execution_count": 51,
"outputs": [
{
"output_type": "stream",
"text": "\n\n#######################################################################################\n\nSynchronous deployment creation for uid: '746ffc98-af31-414b-a747-84678e1b4af6' started\n\n#######################################################################################\n\n\ninitializing\nNote: online_url is deprecated and will be removed in a future release. Use serving_urls instead.\n\nready\n\n\n------------------------------------------------------------------------------------------------\nSuccessfully finished deployment creation, deployment_uid='33abe362-8708-4ed6-acc6-2668701ba76c'\n------------------------------------------------------------------------------------------------\n\n\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"colab": {
"provenance": [],
"toc_visible": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3.9",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.9.13",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment