仕事や学業で人工知能(AI)の知識が必要なことが増えてきた。AIを支える中心的な技術が機械学習だ。本特集では、AIの歴史と全体像から基本的な機械学習アルゴリズムのPython実装までを幅広く解説する。
回帰の手法でモデルを作り、予測を行うプログラムを実装しましょう。使用するアルゴリズムは線形回帰です。引き続き、気温とアイスクリームの例で説明します。ここでは、過去の「気温」と「アイスクリームの売り上げ」のデータから予測のモデルを作り、未知の気温(30度)のときのアイスクリームの売り上げを予測します(図12)。前回の分類のプログラムでは、結果は「買う」か「買わない」かのどちらかを出力しました。予測のプログラムでは、例えば290万円、300万円、310万円といった売り上げ金額の数値そのものを予測し、結果として出力します。
この機械学習を行う目的は以下の通りです。
説明変数は「気温」で、目的変数は「アイスクリームの売り上げ」です。分類の手法のときと同じように、4つのステップで実装を行います。
入力データを準備する
モデルを作るための学習用データは、CSVファイルを読み込んで使用します。本稿では「ice_sales.csv」というファイル名の「気温とアイスクリームの売り上げの関係」のデータを用意しました。日経ソフトウエアのWebページ(https://nkbp.jp/nsoft)の2022年7月号のページからサンプルプログラムをダウンロードしてください。サンプルプログラムが入っているフォルダーの中に、ice_sales.csvが入っています。このファイルを、ノートブックを作成したフォルダーと同じフォルダー(WindowsでデフォルトだとC:¥Users¥ユーザー名)に格納してください。
ice_sales.csvは、Excelで開くと図13のように表示されます。このCSVファイルを、データ分析ライブラリであるpandasを使ってプログラムで読み込みましょう。新しいノートブックを作成し、次のプログラムを入力して実行します。
1行目のimport文でpandasを読み込みます。2行目のread_csv関数では、ice_sales.csvを読み込み、「df」という名前のデータフレームに格納しています。データフレームに格納することで、行と列を持つ表形式の構造でデータを扱えるようになります。3行目のhead関数では、dfの先頭5行を表示しています。
実行結果は図14です。図13のCSVファイルの1行目がデータフレームの列名として読み込まれ、2~6行目がデータフレームの先頭5行のデータとして表示されています。
次に、モデルの学習に使う説明変数xと目的変数yを設定します。先ほどのプログラムの下のセルに次のプログラムを入力して実行してください。
説明変数xにdfのtemp(気温)を、目的変数yにdfのsales(アイスクリームの売り上げ)を格納しています。scikit-learnでは説明変数を2次元リストにする必要があるので、1行目のto_frame関数で2次元リストに変換します。