最近流行の機械学習/Deep Learningを試してみたいという人のために、Pythonを使った機械学習について主要なライブラリ/ツールの使い方を中心に解説する連載。今回は、画像描画のためのライブラリであるMatplotlibについて。機械学習で使われる典型的な機能のみをピックアップして解説します。
プログラミング言語「Python」は機械学習の分野で広く使われており、最近の機械学習/Deep Learningの流行により使う人が増えているかと思います。一方で、「機械学習に興味を持ったので自分でも試してみたいけど、どこから手を付けていいのか」という話もよく聞きます。本連載「Pythonで始める機械学習入門」では、そのような人をターゲットに、Pythonを使った機械学習について主要なライブラリ/ツールの使い方を中心に解説していきます。
連載第1回の「Pythonで機械学習/Deep Learningを始めるなら知っておきたいライブラリ/ツール7選」では、ライブラリ/ツール群の概要を説明しました。前回は、その中でもJupyter Notebookの基本操作と設定について説明しました。
第3回から連載第1回で紹介した各種ライブラリを使う具体的なコードを例示していますが、Jupyter Notebook形式で書いています。今回は画像描画のためのライブラリである「Matplotlib」について解説します。まずは、公式サイトのギャラリーページを見てください。
これを見ると、さまざまなグラフを描くことができ、さまざまな視覚効果を付けることができることが分かります。本稿では、機械学習で使われる典型的な機能のみをピックアップして説明します。
なお本稿では、Pythonのバージョンは3.x系であるとします。
以下、次のようにインポートしているものとして話を進めます。このようにインポートするのは文法的なルールではなく、広く使われている慣例です。
また、Jupyter Notebookで図をインラインで表示する(つまり元のHTMLに埋め込む)には、次のようなマジックコマンドを実行する必要があります。
まずは基本の折れ線グラフと散布図から描画してみます。折れ線グラフには「plt.plot」を、散布図には「plt.scatter」を使います。
両方とも入力としては2つの数値の列[x1,x2,……,xn], [y1y2,……,yn]を取り、n個の点(x1,y1),(x2,y2),……,(xn,yn)について、折れ線グラフや散布図を描きます。まずは人工データを使ってみます。
ここでは、Jupyter Notebookを使って「%matplotlib inline」を宣言しているので、plt.plotやplt.scatterを呼び出すと自動的にグラフを表示してくれますが、Jupyter NotebookではなくPythonのプログラムファイルから実行するときには、plt.plotやplt.scatterの後に明示的に「plt.show()」を呼び出さないとグラフは表示されません。注意してください。
以上、同じデータで折れ線グラフと散布図を描く方法を見ました。xとyは配列ではなくリストでも構いませんが、以降の説明との統一のため配列にしました。
これらのグラフを並べて表示するには「subplots」を使います
ここでsubplotsの第1引数は行数(縦に幾つグラフを並べるか)であり、第2引数は列数(横に幾つグラフを並べるか)です。縦横に複数並べることもできます。このように並べられたそれぞれのグラフ枠を「パネル」と呼ぶこともあります。
ここではsubplotsの名前付き引数「figsize」によって各パネルのサイズを指定しています。各パネルへのアクセスは「axes[i,j]」のように二次元配列で行います。
Copyright © ITmedia, Inc. All Rights Reserved.