全1456文字

 Pythonで機械学習を使ったデータ分析作業を始めるのは簡単。無料で利用できるオープンソースの開発環境があるからだ。代表的なものには、米グーグル(Google)が提供する「Google Colaboratory(グーグル・コラボレートリー)」が挙げられる。

 これは、グーグルの仮想マシン上でJupyter Notebookを使える開発環境だ。Jupyter Notebookは、Pythonプログラムを対話形式で開発できるツールである。

 Google Colaboratoryは定番ライブラリーが使える状態で提供されているので、Pythonライブラリーを使って分析/機械学習を学ぶといった用途には最適だろう。Googleアカウントがあれば利用できるのも大きなメリットだ。そこで筆者もプログラムを実際に記述してみることにした。

scikit-learnでモデル作成

 作成したプログラムは線形回帰分析のプログラムである。

 回帰分析とは、結果データと結果に影響を及ぼすデータの関係性を統計的に求める手法である。結果のデータを「目的変数」、結果に影響を及ぼすデータを「説明変数」と呼ぶ。

 モデルを作成するための教師データを下記に示す。このCSVファイルを読み込ませて学習し、モデルから予想できる結果を表示する。

読み込むCSVファイル
読み込むCSVファイル
[画像のクリックで拡大表示]

 Jupyter Notebookに記載したプログラムを下記に示す。プログラムは「ライブラリーの読み込み」「CSVファイルの読み込み」「モデルの作成」「グラフ表示」のパートに分けられる。

線形回帰のモデルを構築するPythonプログラム
線形回帰のモデルを構築するPythonプログラム
[画像のクリックで拡大表示]

 使っているライブラリーは「pandas(パンダス)」「scikit-learn(サーキットラーン)」「NumPy(ナムパイ)」「Matplotlib(マットプロットリブ)」という定番の4つである。pandasを使ってCSVファイルをデータフレームに読み込んでデータを整形する、scikit-learnのモデルを使って予測する、NumPyを使って計算する、Matplotlibで表示する、という処理を実装している。

 scikit-learnには、回帰分析を実現するモデルとして「線形回帰モデル」が搭載されている。線形回帰とは、全てのデータにできるだけ近い直線を引くことで予測を行うモデルのことだ。直線の式は、最小2乗法を用いて求めている。