序章

機械学習は、コンピューターサイエンス、人工知能、統計学の研究分野です。 機械学習の焦点は、パターンを学習し、データから予測を行うためのアルゴリズムをトレーニングすることです。 機械学習は、コンピューターを使用して意思決定プロセスを自動化できるため、特に価値があります。

機械学習アプリケーションはいたるところにあります。 NetflixとAmazonは、機械学習を使用して新製品の推奨事項を作成します。 銀行は機械学習を使用してクレジットカード取引の不正行為を検出し、医療会社は機械学習を使用して患者を監視、評価、診断し始めています。

このチュートリアルでは、Python用の機械学習ツールである Scikit-learn を使用して、Pythonで簡単な機械学習アルゴリズムを実装します。 乳がん腫瘍情報のデータベースを使用して、腫瘍が悪性か良性かを予測する単純ベイズ(NB)分類器を使用します。

このチュートリアルを終えると、Pythonで独自の機械学習モデルを構築する方法がわかります。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • Python3とローカルプログラミング環境がコンピューターにセットアップされています。 適切なインストールおよびオペレーティングシステムのセットアップガイドに従って、これを構成できます。 Pythonを初めて使用する場合は、Python3でコーディングする方法を調べて言語に慣れることができます。
  • このチュートリアルでは、virtualenvにインストールされている JupyterNotebook。 Jupyter Notebookは、機械学習実験を実行するときに非常に役立ちます。 コードの短いブロックを実行して結果をすばやく確認できるため、コードのテストとデバッグが簡単になります。

ステップ1—Scikit-learnのインポート

まず、Pythonモジュール Scikit-learn をインストールします。これは、Python用の最も優れた最も文書化された機械学習ライブラリの1つです。

コーディングプロジェクトを開始するには、Python3プログラミング環境をアクティブ化しましょう。 環境が配置されているディレクトリにいることを確認し、次のコマンドを実行します。

  1. . my_env/bin/activate

プログラミング環境をアクティブにして、Sckikit-learnモジュールがすでにインストールされているかどうかを確認します。

  1. python -c "import sklearn"

sklearnがインストールされている場合、このコマンドはエラーなしで完了します。 インストールされていない場合は、次のエラーメッセージが表示されます。

Output
Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'sklearn'

エラーメッセージは、sklearnがインストールされていないことを示しているため、pipを使用してライブラリをダウンロードします。

  1. pip install scikit-learn[alldeps]

インストールが完了したら、JupyterNotebookを起動します。

  1. jupyter notebook

Jupyterで、 MLTutorialという新しいPythonノートブックを作成します。 ノートブックの最初のセルで、 import sklearnモジュール:

MLチュートリアル
import sklearn

ノートブックは次の図のようになります。

Jupyter Notebook with one Python cell, which imports sklearn

ノートブックにsklearnがインポートされたので、機械学習モデルのデータセットの操作を開始できます。

ステップ2—Scikit-learnのデータセットをインポートする

このチュートリアルで使用するデータセットは、乳がんウィスコンシン診断データベースです。 データセットには、乳がん腫瘍に関するさまざまな情報のほか、悪性または良性の分類ラベルが含まれています。 データセットには、569個の腫瘍に関する569個のインスタンスまたはデータがあり、30個の属性、または腫瘍の半径、テクスチャ、滑らかさ、面積などの特徴に関する情報が含まれています。

このデータセットを使用して、腫瘍情報を使用して腫瘍が悪性か良性かを予測する機械学習モデルを構築します。

Scikit-learnには、Pythonにロードできるさまざまなデータセットがインストールされており、必要なデータセットが含まれています。 データセットをインポートしてロードします。

MLチュートリアル
...
from sklearn.datasets import load_breast_cancer


# Load dataset
data = load_breast_cancer()

data variable は、辞書のように機能するPythonオブジェクトを表します。 考慮すべき重要な辞書キーは、分類ラベル名(target_names)、実際のラベル(target)、属性/機能名(feature_names)、および属性( data)。

属性は、分類子の重要な部分です。 属性は、データの性質に関する重要な特性をキャプチャします。 予測しようとしているラベル(悪性腫瘍と良性腫瘍)を考えると、考えられる有用な属性には、腫瘍のサイズ、半径、テクスチャが含まれます。

重要な情報セットごとに新しい変数を作成し、データを割り当てます。

MLチュートリアル
...
# Organize our data
label_names = data['target_names']
labels = data['target']
feature_names = data['feature_names']
features = data['data']

これで、情報のセットごとにリストができました。 データセットをよりよく理解するために、クラスラベル、最初のデータインスタンスのラベル、機能名、および最初のデータインスタンスの機能値を出力して、データを見てみましょう。

MLチュートリアル
...
# Look at our data
print(label_names)
print(labels[0])
print(feature_names[0])
print(features[0])

コードを実行すると、次の結果が表示されます。

Alt Jupyter Notebook with three Python cells, which prints the first instance in our dataset

画像が示すように、クラス名は悪性良性であり、これらは01のバイナリ値にマッピングされます。ここで[X153X ]