ロジスティック回帰を行う
このチュートリアルでは、ロジスティック回帰を定義するためのPythonコードを含むJupyter Notebookを作成し、TensorFlow(tf.keras)を使用して実装する方法を学びます。このノートブックは、IBM Cloud Pak® for Data as a Service on IBM Cloud® 上で動作します。IBM Cloud Pak for Dataプラットフォームは、複数のデータソースとの統合、ビルトインのアナリティクス、Jupyter Notebooks、機械学習などの追加サポートを提供します。また、複数のコンピューティングリソースにプロセスを分散することで、スケーラビリティを実現しています。アセットの作成にはPython、Scala、Rを選択でき、IBM Cloud Pak for Data as a Serviceプラットフォームにすでにインストールされているオープンソースのフレームワーク(TensorFlowなど)を使用できます。
線形回帰とロジスティック回帰の違い¶
線形回帰は、連続的な値を推定するのには適していますが(例えば、住宅価格や製品の売上高の推定など)、観測されたデータポイントが属するクラスを予測するのには最適なツールではありません。分類を推定するためには、そのデータポイントがどのクラスに属している可能性が最も高いのかという指針が必要です。これには、ロジスティック回帰を使用します。
線形回帰¶
線形回帰は、連続的な従属変数y
をいくつかの予測変数(例えば、独立変数x1
やx2
)に関連付ける関数を求めます。単純な線形回帰では、次のような形の関数を想定しています。
これは、w0
, w1
, w2
の値を求めるものです。w0
は 切片 または 定数項 です (次の式では b
と表示されています)。
ロジスティック回帰¶
ロジスティック回帰は、線形回帰の一種であり、観測される従属変数 y
がカテゴリー型である場合に有効です。これは、クラスラベルの確率を独立変数の関数として予測する式を作成します。
ロジスティック回帰という名前がついていますが,実際には確率的分類モデルです。ロジスティック回帰は、線形回帰をとって、数値の推定値を次の関数で確率に変換することで、特別なS字型の曲線にフィットします。
これにより、p値は0(y
がマイナス無限大に近づくにつれて)と1(y
がプラス無限大に近づくにつれて)の間になります。これで特別なタイプの非線形回帰になりました。
この式で、y
は回帰結果(係数で重み付けされた変数の合計)、exp
は指数関数、theta(y)
はロジスティック関数で、ロジスティック曲線とも呼ばれます。一般的な「S」字型(シグモイド曲線)で、人口増加のモデル化のために最初に開発されたものです。
この関数は別の設定で見たことがあるかもしれません。
つまり、ロジスティック回帰では、入力をロジスティック/シグモイド関数に通しますが、その結果を確率として扱います。
前提条件¶
このチュートリアルに参加するためには、以下の前提条件が必要です。
見積もり時間¶
このチュートリアルを完了するには、約 60 分かかります。
手順¶
- IBM Cloud Account を作成し、Data as a Service の IBM Cloud Pak にアクセスします
- 新しいプロジェクトを作成する
- Watson Machine Learning Service をプロジェクトに関連付ける
- プロジェクトにノートブックを追加する
- [ノートブックを実行する。
ステップ 1.IBM クラウドアカウントの作成¶
- IBM Cloud アカウントにサインインします。
- 「Watson Studio」を検索します。
-
地域と料金プランを選択してサービスを作成します。
-
「Create」をクリックします。
をクリックします。
ステップ 2.新しいプロジェクトを作成します。¶
-
「Get started」をクリックして、Watson Studio サービスを開始します。
-
Create a project をクリックして、空のプロジェクトを作成します。
-
プロジェクトに名前を付けて、ストレージサービスを追加します。
-
Createをクリックします。プロジェクトが作成されると、プロジェクトのダッシュボードが表示されます。
ステップ 3.Watson Machine Learning Service をプロジェクトに関連付けます。¶
- 「Settings」タブをクリックします。
-
Associated servicesまでスクロールダウンして、Add serviceをクリックします。
-
ドロップダウンメニューで Watson を選択します。
-
Machine Learning を選択します。
-
Associate serviceをクリックします。
をクリックします。
ステップ 4.プロジェクトへのノートブックの追加¶
-
Add to Project、 Notebookの順にクリックして、Jupyter Notebookをプロジェクトに追加します。
-
From URLを選択して、Notebook URL欄に以下のURLを入力します。
-
ノートブックの名前を決めて、「Create」をクリックします。
ステップ 5.ノートブックの実行¶
ノートブックが読み込まれたら、Cellをクリックし、Run Allを選択してノートブックを実行します。
ノートブックに目を通す¶
ノートブックには、すべての詳細が記載されています。ノートブックの各セクションに目を通し、ノートブックの概要を把握してください。ノートブックは、テキスト(マークダウンまたは見出し)セルとコードセルで構成されています。マークダウンセルには、コードが何をするために設計されているかのコメントが書かれています。
セルを個別に実行するには、各セルをハイライトしてから、ノートブックの上部にある「実行」をクリックするか、キーボードのショートカット(Shift + Enter、ただしプラットフォームによって異なる)を使ってセルを実行します。*セルが実行されている間は、セルの左にアスタリスク([*]
)が表示されます。そのセルの実行が終了すると、連番が表示されます(例:[17]
)。
ノートブックでは、TensorFlowの基本的な仕組みを理解するために、ロジスティック関数の簡単な例を紹介している。
まとめ¶
このチュートリアルでは、ロジスティック回帰の基本と、TensorFlow が機械学習アルゴリズムの実装にどのように使用されているかを学びました。また、IBM Cloud Pak for Data as a Service 上の Watson Studio を使用して Jupyter Notebook を実行する方法と、IBM Cloud Pak for Data as a Service プラットフォームでオープンソース・フレームワークを使用する方法を学びました。