プログラミング 機械学習

【機械学習】バリデーションについてわかりやすく解説

 

プログラミングを学ぶ人「バリデーションって何だろう?」

 

 

 

こんな方に向けた記事です。

 

今回はPython機械学習でデータ分析をする上で重要なバリデーションについて一緒に勉強していきましょう。

 

Python機械学習でのデータ分析の流れを簡単に表すと次のようになります。

 

データ分析の流れ

  1. データの読み込み
  2. データの把握
  3. データの前処理
  4. 機械学習予測モデル作成
  5. 予測モデルの評価

 

バリデーションは5. 予測モデル評価で登場します。

 

バリデーションは和訳すると「検証」という意味です。

 

予測モデルを作成する目的は未知のデータに対して高い精度で予測を行うことです。実際に未知のデータにモデルを当てはめる前に、作成した予測モデルがどの程度の精度で予測を行えているかを「検証」するのがバリデーションです。

 

今回はバリデーションの中でも最も基本的な2つの手法について一緒に勉強していきましょう。

 

本記事の学習目標

  • バリデーションとは何か理解する。
  • バリデーションの代表的な2つの手法を理解する。

 

【機械学習】バリデーション

 

バリデーションは作成した機械学習予測モデルの精度を検証する手法です。

 

先述の通り、バリデーションは「検証」を意味します。

 

実際にPython機械学習でデータ分析を行っていく際にはこのバリデーションで作成した予測モデルの精度を確認しながら分析を進めていきます。

 

代表的な2つのバリデーション手法

 

バリデーションには様々な種類の手法が存在します。

 

今回は中でも基本的な2つの手法について解説していきます。

 

代表的な2つのバリデーション手法

  • hold-out法 (ホールドアウト法)
  • cross-validation(クロスバリデーション)

 

hold-out法(ホールドアウト法)

 

hold-out法は学習データの一部を学習に使用せずバリデーション用に使用する手法です。残りの学習データでモデルを学習した上でバリデーションデータで予測モデルの精度を検証します。

 

これにより未知のテストデータに対する予測をシュミレーションすることができます。

 

hold-out法では学習データとテストデータが必ずランダムに分割されている必要があります。

 

cross-validation(クロスバリデーション)

 

cross-validationは学習データを分割し繰り返しhold-out法を行う手法です。

 

各foldで学習データの量を保ちながら繰り返しhold-out法を行うことでバリデーションの検証に学習データ全体を用いることができます。

 

分割されたデータをfoldと呼び、分割数をfold数と呼びます。

 

fold数を増やす程学習データの量を確保できるためデータ全体で学習させた場合に近い予測精度評価が可能になります。一方、fold数を増やす程計算時間がかかることになります。

 

一般的にfold数は4や5が用いられることが多いです。

 

【参考にさせていただきました】

scikit-learn

 

さいごに

 

今回はPython機械学習の基本的な考え方であるバリデーションについて一緒に勉強しました。

 

バリデーション:作成した機械学習予測モデルの精度を検証する手法

 

代表的な2つのバリデーション手法

  • hold-out法(ホールドアウト法)
  • cross-validation(クロスバリデーション)

 

概念自体の理解はとっつきにくいと思います。

 

具体例で実際にイメージしながらじっくりと理解していくのが良いと思います。

 

機械学習はプログラミング言語のPythonを用いれば、今持っている自分のパソコンですぐに実践することができます。

 

英語論文になっている手法もしっかりと勉強すれば、自分のパソコンで出来ます。

 

このサイトでは、プログラミングに興味のある医学生、医師のための情報を発信しております。

 

プログラミングの学習方法には大きく分けて、「独学」と「プログラミングスクール」の2つがあります。

 

当サイトでは一貫してプログラミングスクールを利用することをおすすめしています。

 

なぜなら、独学で勉強した私が非常に苦労したからです。

 

また私はプログラミングを学習するにあたり、師匠・メンターのような存在がいました。

 

わからないところは教えてもらっていました。

 

そのような環境でなければ0から独学で勉強するのはとても効率が悪いと思います。

 

詳しくは、プログラミングの独学は難しいです【私の失敗談】で紹介しています。

 

この記事が一人でも多くのプログラミングに興味のある方のお役に立てば幸いです。

-プログラミング, 機械学習

© 2024 医者がプログラミングで世界を変える Powered by AFFINGER5