全3659文字
PR

 AI(人工知能)開発のプログラミング言語として高い人気を誇るPython。データ処理や機械学習のためのライブラリも豊富です。本特集では5回にわたって、Pythonの実習を通じて実際の機械学習モデルの開発方法を解説していきます。

 例題で取りあげるのは、機械学習で最もよく利用する方式である、「教師あり学習」の「分類」です。乳がんの検診データとその診断結果を学習データとして利用し、検診データから良性か悪性か(2値のいずれか)を予測します。

乳がんの検診データを、良性・悪性に分類する機械学習モデル
[画像のクリックで拡大表示]
乳がんの検診データを、良性・悪性に分類する機械学習モデル

 ここで乳がんの診断予測を事例として取りあげるのは、データが取り扱いやすく、開発フローが単純で説明しやすいからです。まずはこの事例でモデル開発の一般的な流れを把握しましょう。

 本特集で紹介する実際のPythonプログラムは、GitHubサイトで公開しています。実際にプログラムを動かしながら、機械学習モデルの開発を体験できます。

モデルの開発フロー

 Pythonでモデルを実装する場合の典型的な開発フローは以下の通りです。

モデルの開発フロー
[画像のクリックで拡大表示]
モデルの開発フロー

 それぞれの概要を順に説明します。わかりづらいところがあっても、まずは一通り目を通してください。後でPythonで実装していくので、そのときに実際の方法がわかります。

(1)データ読み込み

 機械学習用のデータをPythonで扱えるよう読み込む処理が最初に必要です。具体的なやり方としては大きく次の3通りがあります。

CSVファイル読み込みによる方法

 一番標準的な方法です。CSVファイルは通常、Jupyter Notebookが動いている環境から読み込みますが、学習用データがインターネット上に公開されている場合もあります。

 今回の特集でこの後何度も出てくるread_csv関数は、ローカルファイルの読み込みと、URL 指定によるファイルの読み込みをサポートしています。URLを指定するケースでは、read_csv関数呼び出し1行でインターネット上のCSVファイルを直接読み込めます。

関数呼び出しによる方法

 機械学習でよく利用される公開データセットの場合、データ読み込みの関数が用意されている場合があります。このような場合、その関数の呼び出しだけでデータを読み込めます。

ZIPダウンロードによる方法

 学習用データがZIPファイルに圧縮した形でインターネット上に公開されている場合もあります。この場合、Jupyter Notebook上からは!wgetコマンドによるダウンロード、!unzipコマンドによるファイル解凍をした後、read_csv関数呼び出しでデータを読み込む形になります注1

注1 Jupyter Notebookでは、頭に「!」をつけるとOSコマンドを発行できます。ここに示した手順はOS上でwgetコマンドとunzipコマンドを順に発行していることと同じです。