‫ステップ5 モデリング
‫第2部 選択する
‫前回の授業で､ モデリングには「モデルを選ぶ」「モデルを調整する」「モデルを比較する」という3つのパートがあると述べました｡
‫データをトレーニングセット､ 検証セット､ テストセットに分けた後､ これらの各ステップを開始することができます｡
‫このレッスンでは､ モデルを選び､ 学習データで学習させる､ モデルの選択に関するいくつかのポイントを説明します｡
‫自分で一からアルゴリズムを作るのとは違い､ 機械学習にはあらかじめ作られたモデルがたくさんあるので､
‫最初のうちはそれを活用することができます｡
‫機械学習のアルゴリズムには､ データの種類によって得意なものと不得意なものがありますから､ どのような問題にどのような機械学習アルゴリズムを使うかを知ることが主な目的です｡
‫具体的には､ プロジェクトで手を動かすときに見てもらうことにします｡
‫しかし､ 今のところ､ 構造化されたデータを扱う場合は､ ランダムフォレストなどの決定木や､ Cat BoostやXG
‫Boostなどのグラディエントブースティングアルゴリズムが最適な傾向にあることを覚えておいてほしい｡
‫また､ 非構造化データを扱う場合は､ ディープラーニングのニューラルネットワークや転移学習が最適に働く傾向があります｡
‫モデルを選んだら､ 次はそのモデルをトレーニングします｡
‫ここでの主な目的は､ 入力と出力を並べることでしょう｡
‫例えば､ 心臓病の問題では､ モデルは入力である特徴変数を見て､ パターンを見つけ､
‫それを使ってターゲット変数を予測するようにしたいと思います｡
‫前回のレッスンで学んだこれらの変数が､ 特徴変数であることを思い出してください｡
‫これらを使って､ ターゲットとなる変数を予測したい｡
‫また､ データであるXを使って､ ラベルであるYを予測するというのもよくあるネーミング設定です｡
‫機械学習アルゴリズムによって､ その方法は様々です｡
‫一握りの便利なものについては､ 今後のプロジェクトでどうするか見ていきたいと思います｡
‫そして､ モデルの学習は､ 学習データの分割で行われることを忘れないでください｡
‫ここでは､ モデルが教材を学習します｡
‫モデルが勉強をする前に､ ズルズルと期末試験を見てしまうようなことは避けたい｡
‫データの量やモデルの複雑さによっては､ トレーニングに時間がかかる場合があります｡
‫モデルを学習する際の最大の目標の1つは､ 実験と実験の間の時間を最短にすることです｡
‫そのため､ 最初にデータの一部を使用することになる場合もあります｡
‫例えば､ 学習用データセットが10万例あったとして､ 最初の1万例だけでモデルの学習を始めて､
‫様子を見ることができるかもしれません｡
‫また､ 最初からあまり複雑でないモデルを使用することにしてもよいでしょう｡
‫ニューラルネットワークなどのディープモデルは､ 一般的に他の種類のモデルよりも学習時間が長くかかると言われています｡
‫さて､ このことは､ 自分のモデルを育成する上で､ 一考に値することだと思います｡
‫例えば､ ある実験に3時間､ あるいは2〜3日かかっても､ モデルの性能が数パーセントしか向上しない場合､
‫この実験には本当に価値があるのだろうかと考えるかもしれません｡
‫機械学習は繰り返しが多いので､ ステップ1→ステップ2→ステップ3と進むこの実験時間を最短にしたいのです｡
‫しかし､ 繰り返しになりますが､ これが分かりにくいようであれば､ ハンズオンプロジェクトで実際に見てみましょう｡
‫覚えておくべきこと
‫問題によって､ より効果的なモデルもあります｡
‫怖がらずに､ いろいろなことに挑戦してください｡
‫そして､ これは本当に重要なことです｡
‫機械学習は､ 先にも述べたように､ 高度に反復されるプロセスです｡
‫だから､ 試しにやってみたことがうまくいかないこともある｡ それは､ そのことを今後はないがしろにして､ 別のことをやってみればいいということだ｡
‫小さく始めて､ 積み重ねる｡
‫必要に応じて複雑さを追加してください｡
‫これはどういうことかというと､ 例えば10万件の事例があったとして､ 1万件から始めるということです｡
‫最大級､ 最新鋭のモデルに行くのではなく､ まずはシンプルなモデルを使ってみる｡
‫なぜなら､ 私たちが求めているのは実用的な結果であって､ 紙の上でベストを尽くしているようなものではないからです｡
‫実際に使えるものを見てみたい｡
‫また､ 実験の一部には､ 車のチューニングのように､ 最初に良い結果を示したモデルをより良い結果になるようにチューニングすることも含まれます｡
‫あるサーキットでうまくいっても､ 別のサーキットではうまくいかないかもしれない｡
‫だから､ チューニングするんですね｡
‫その方法について見てみましょう｡
‫でも､ クルマ用ではなく､ 機械学習モデル用でやる｡