【初心者】機械学習を使って、予測モデルを作成するまでの手順

スポンサーリンク
Python

機械学習を使って、予測モデルを作成する手順を紹介します。Pyhonで機械学習のコードを書いてても、「自分が何をしているのか」、「大きなプロジェクトのどの部分を担っているのか」、「どうなったら成功といえるのか」などが分かっていないと面白くないですし、効率も悪くなります。

そこで、予測モデルの作成の大枠を初心者に向けて、説明していきます。

こちらも機械学習を始めるうえで、知っておくべき概要を説明しています。

機械学習の始め方(概要編)

はじめに

まずは、データを分析しやすい形に整えます

行に個別のデータを、列に測定項目の形にして、行と列が交わるところがデータにあたります。

たちえば、行である個別名に名前、列である測定項目に年齢があるとすると、「パイソン」の年齢は29歳というデータになります。

この形がデータフレーム(行列)と呼びます。このデータフレームが基本の形で、PythonやRなどで、データ分析することが一般的で、データを操作しやすいです。

【超重要】はじめてのデータ収集方法

1.データの分割(訓練とテスト)

このデータフレームになっている、すべてのデータを訓練データとテストデータに分割します。

機械学習などの予測モデルを作りたい場合、このデータの分割は、必ずデータ分析前に行います。予測モデルを簡単にいうと、予測するための計算機のことで、アルゴリズムともいいます。

予測モデルは予測の汎用性能を少しでも高いものがよいとされています。

汎用性とは、未知のデータに対して、高い精度の予測ができるかどうか、ということです。

なので、データ分析に使っていないデータを作る必要があります。このデータをテストデータと呼びます。このテストデータが未知のデータで、予測モデルの汎用性を評価するためだけに使います

そして、データ分析や機械学習に使うデータを訓練データと呼びます。

訓練データ :予測モデルの作成に使うデータ
テストデータ:予測モデルの汎用性を評価するデータ

2.データの分割(訓練と検証)

さきほど分割した訓練データをさらに、訓練データと検証データに分割します。

えっ、さっき分割したのに?どんだけ分割するの?

これも大切な手順です。何度もいいますが、予測は汎用性が命です。

なので、機械学習のアルゴリズムを作成と、そのアルゴリズムがどの程度の精度かを評価するデータは別にする必要があります。訓練データで作成した予測モデルが最適かどうかを評価し、最適でないなら微調整するための検証作業を行います。

この検証作業で使われるデータを検証データと呼びます。

訓練データ:予測モデルの作成に使うデータ
検証データ:予測モデルの汎用性の評価に使うデータ
モデル構築 ⇒ 評価 ⇒ モデル再構築 ⇒ 再評価 ⇒ モデル再構築 ⇒ 再評価・・・・・
この2の作業全体が予測モデルの構築といえます。

3.機械学習のアルゴリズム

一般的には、さまざまな機械学習モデルで学習、その中で最も良い機械学習モデルをさらに微調整していきます。

機械学習モデルは、以下の記事を参照してください。コピペで使えるようになることが目標です。アルゴリズムの理解に時間を割く必要はありません

【初心者】コピペでできるXGBoost回帰

【初心者】コピペでできるランダムフォレス回帰

【初心者】コピペでできる決定木回帰

【初心者】コピペでできるXGBoost分類

【初心者】コピペでできるサポートベクタマシン分類

【初心者】コピペでできる決定木とランダムフォレスト分類

まずは一つひとつの機械学習を行い、予測モデルを作成します。

4.予測モデルの評価

ここでは、2で分割された検証データを使います。

訓練データを用いた機械学習アルゴリズムが最適化かどうかを検証します。

最適でないなら、違う機械学習モデルを、モデルが最適化したらハイパーパラメータを調整していきます。

つまり、ここでの検証作業と3の機械学習のアルゴリズムの作成作業は最適化するまでループします。

そして、この機械学習のアルゴリズム作成とモデルの検証ループから、最適化されたモデルを最終予測モデルとします。

5.最終予測モデル

最適化された予測モデルを、1の分割から温めていたテストデータを使って、汎用性を評価します。この評価結果が予測モデルの性能を表します。

ここで注意があります。このテストデータで評価した結果が悪い場合があります。検証データを使った評価よりも悪いことが一般的です。テストデータの評価結果が悪いからといって、機械学習のアルゴリズムを調整してはいけません

1でも示したように、未知のデータで評価しないと、汎用性は評価できません

テストデータの評価結果でアルゴリズムを微調整すると、テストデータは未知のデータでななく、訓練データになってしまいます。それでは、過学習を起こしてしまいます。

過学習とは、分析したデータに適合しすぎて、未知のデータに対する汎用性が低くなってしまうことです。

予測モデルは、未知のデータに対する汎用性を高めることが目標であったはずです。

気持ちは分かりますが、ここでのアルゴリズムの調整はしないようにしましょう。

テストデータによるモデルの評価結果を参考にして、機械学習アルゴリズムを調整しない

コメント

タイトルとURLをコピーしました