{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# scikit-learnのバーションは 0.19の必要があります\n", "!pip install scikit-learn==0.19" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# scikit-learn modelをWatson MLに登録" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 認証情報の設定" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "wml_credentials={\n", " # 事前準備した認証情報を張り付けて下さい\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 分類モデルの生成" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 必要ライブラリのロード\n", "from IPython.display import display\n", "import pandas as pd\n", "from sklearn.datasets import load_iris" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 学習データの準備\n", "iris = load_iris()\n", "columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']\n", "df_iris = pd.DataFrame(iris.data, columns=columns)\n", "target = iris.target\n", "display(df_iris.head())" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Modelの生成\n", "# 注意 モデルは確率値を返すものである必要があります。SVMではうまくいきません。\n", "from sklearn.linear_model import LogisticRegression\n", "lr = LogisticRegression()\n", "lr.fit(df_iris, target)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# テスト用データの準備\n", "values = df_iris.iloc[[0,1,50,51,100,101]].values.tolist()\n", "print(values)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# テストの実施 \n", "# 予測値は [0, 0, 1, 1, 2, 2]になっているはずです\n", "lr.predict(values)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Watson ML Model / Webサービスの登録" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Watson ML Clientの生成\n", "from watson_machine_learning_client import WatsonMachineLearningAPIClient\n", "client = WatsonMachineLearningAPIClient(wml_credentials)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Modelの登録\n", "model_details = client.repository.store_model( lr, \"scikit-learn lr model\" )" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Webサービスの登録\n", "model_id = model_details[\"metadata\"][\"guid\"]\n", "deployment_details = client.deployments.create( artifact_uid=model_id, name=\"scikit-learn lr deployment\" )" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Webサービスのテスト\n", "model_endpoint_url = client.deployments.get_scoring_url( deployment_details )\n", "print(model_endpoint_url)\n", "client.deployments.score( model_endpoint_url, { \"values\" : values } )" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }