‫お帰りなさい｡
‫そして､ 最後に見た動画は､ ランダム化検索を使ってモデルのハイパーパラメータをチューニングする方法です｡
‫CV そして､ その結果､ さまざまなハイパーパラメータ値の空間や辞書を定義することができました｡
‫試行錯誤の上､ ランダム検索を行いたいと思います｡
‫CV これらのパラメータをランダムに組み合わせ､ 異なる設定､ 異なるハイパーパラメータで分類器を構築し､
‫クロスバリデーションで全て評価しました｡
‫あるいは､ これを10に戻すかもしれません｡
‫50機種が暴走するのは困る｡
‫そして､ 10種類の組み合わせを試した結果､ 最適なパラメータはここにある値のセットであることがわかりました｡
‫そして､ それらを評価した結果､ 手作業で撹拌している以前のモデルほどにはうまくいかないことがわかりました｡
‫最後に, 高次パラメータをチューニングするときのワークフローですが, まず手作業で始めて,
‫高次パラメータの空間全体でランダム化探索CVを使用することになります．
‫そして､ かなり良いハイパーパラメーターが見つかったら､ グリッドサーチで仕上げることになるのでしょう｡
‫CV ここでそれを実際に見てみましょう｡
‫だから5． 3 グリッドサーチによるハイパーパラメータチューニング CV.
‫美しい｡
‫そして､ グリッドを確認しましょう｡
‫今､ 私たちが使っているグリッドは､ グリッド検索曲線にグリッドという言葉があることにお気づきでしょうか｡
‫そして､ 現時点でのハイパーパラメータのグリッドは､ ここにある値です｡
‫ランダム化検索とグリッド検索の重要な違いは､ ランダム化検索にはNITTAというパラメータがあることです（これはここまでで見たものです）｡
‫試用するモデルの数を制限するために設定することができます｡
‫だから､ 私たちの場合は10個を使いました｡
‫つまり､ このコードの一番上は､ 10人の候補者それぞれについて5回ずつ､ 合計50/5を当てはめるということです｡
‫ランダム探索型CVとグリッド探索型CVの大きな違いは､ グリッド探索型CVはブルートフォースサーチのようなものであることです｡
‫ここで用意されているすべての組み合わせを調べると言うことです｡
‫そこで､ 6つの値を見てみると､ そこには6つの値があります｡
‫だから､ 6回､ 5回2回､ 3回3回になるんです｡
‫つまり､ ここには6つのパラメータがあるのです｡
‫ここに5つ､ ここに2つ､ 合計3つ､ 540種類のパラメータを試したり､ パラメータの組み合わせを変えたりしています｡
‫そして､ それはその後クロスバリデーションされた多くのことです｡
‫それで､ 時間が5つ増えて2700モデル......多いですね？
‫それは､ コンピュートパワーのトレーニングが必要ですね｡
‫1つのモデルで十分な時間がかかるかもしれませんが､ 2700個のモデルをトレーニングするのは､ 特に大きなデータセットを扱う場合､
‫おそらくノートパソコンには適さないでしょう｡
‫大きなコンピュータが必要かもしれませんし､ 探索空間を小さくすることもできます｡
‫では､ 実際に見てみましょう｡
‫つまり､ もう少し限定されたハイパーパラメーター空間を使って､ Gridも作ってしまおうということです｡
‫つまり､ グリッド検索に必要なハイパーパラメータの数を減らしているだけなのです｡
‫では､ 実際に見てみましょう｡
‫これをそのままコピーすればいいのです｡
‫では､ 実際にグリッド2を作るにはどうすればいいのでしょうか？
‫コピー＆ペーストで済ませることができるのです｡
‫これを並べて､ 全部ポリフォニックに見えるようにしたいんです｡
‫これでよしとしよう｡
‫あとはコピー＆ペーストで､ これを適当に削除していけばいいんです｡
‫削除してください｡
‫それはしないかもしれません｡
‫だから､ ランダム・サーチXXVはスルーしたんだ｡
‫例えば､ これを以前のように50種類に増やしたとして､ 私たちの場合､ 実際には10種類しかやっていないんです｡
‫このようなパラメータを取ることもあります｡
‫無作為抽出された最適なパラメータ｡
‫そして､ その情報をもとに､ グリッド検索を行う場所に影響を与える｡
‫では､ そうしましょう｡
‫最適なパラメータは262平方根です｡
‫では､ どうすればいいのか｡
‫10を削除する｡
‫500をそこに置いて､ この2つを削除してください｡
‫うん｡
‫最大深度はなしなので､ このままなしでもいいかもしれませんね｡
‫つまり､ 選択肢はひとつしかないのです｡
‫そして､ 平方根については､ 実際にautoや平方根のままにしておくかもしれません｡
‫あとは､ 何があるかな｡
‫平均サンプル分割数は6｡
‫4と2を排除して､ minのサンプルリーフをどうするかということです｡
‫だから､ 1と2のままでいいかもしれない｡
‫では､ 私たちはここで何をしたのでしょうか？
‫つまり､ ハイパーパラメータの探索空間を小さくしたのです｡
‫だから今
‫540通りの組み合わせがあったことを覚えておいてください｡
‫何があるのか？
‫というわけで､ 3回目です｡
‫1回2回1回2回｡
‫12で､ 5回クロスバリデーションを行いますので､ KVパラメータで調整します｡
‫つまり60対2700｡
‫そこで､ パラメータがかなり少なくなっているんですね｡
‫では､ 実際にはどのようにすればいいのでしょうか｡
‫この空間で最適なハイパーパラメータを見つけるために､ グリッドサーチCVをどのように使うか？
‫さて､ いつものように､ Skyline DOTのモデル選択→グリッドのインポート→CVの検索から､ インポートと同時にトレインテストの分割を行いたいと思いますので､
‫実際に見てみましょう｡
‫おそらく､ すでに持っているのでしょう｡
‫そこに入れればいいんです｡
‫ランダムシード
‫素晴らしい｡
‫スプリット
‫Edit 実際のところ､ このコードをここに持ってくるだけでいいかもしれません｡
‫だから､ これでいいんです｡
‫そこで､ ひとつだけ変えてみることにします｡
‫降りてきてください｡
‫素晴らしい｡
‫つまり､ ランダム検索CVと同じデータセットを使って､ 同じ分け方にしているわけです｡
‫ランダムなウイルス分類器をインスタンス化するのですが､ 今回はセットアップを行います｡
‫グリッド・サーチ CV.
‫ワンダフルグリッドサーチ CV.
‫そして､ それを装着するのです｡
‫グリッドサーチのことです｡
‫今ここで保存する｡
‫ここには､ 別のパラメータがあります｡
‫だから､ これはパラマウント・グリッドになるんだと思います｡
‫グリッドサーチはブルートフォースみたいなものだから､ ETAはないだろう｡
‫あらゆる組み合わせを試しますが､ グリッド1ではなく､ 我々のグリッドを試してほしいのです｡ 先ほど見たように､
‫グリッド2では選択肢が少ないからです｡
‫クロスバリデーションを5倍にして､ BOEを等しくしておきます｡
‫そこで､ グリッド検索CVをインポートしています｡
‫異なるハイパーパラメーターで絞り込まれた検索ベースである､ グリッド2を作成しました｡
‫だから設定が違うんです｡ 好きな料理を作るときに､ オーブンを調整するのと同じで､
‫温度を400度に設定したら､ それは高すぎるんです｡
‫180度でスタートし､ それがうまくいった場合､ よし､ 400度に少しジャンプすればいいのに､ なぜ500度や400度にすぐ行くんだろう､
‫と思うかもしれません｡
‫そこで､ グリッド2が誕生したわけです｡
‫ランダム化探索したCVやランダム化探索したCVが見つけた最適なパラメータやハイパーパラメータをベースにしているのです｡
‫では､ やってみましょう｡
‫グリッドサーチCVを用いて, ランダムフォレスト分類器を構築してみましょう．
‫そこで､ 今回もこんな感じです｡
‫同じことです｡
‫そして､ 12人の候補者それぞれについて5回ずつ､ 合計60回のフィッティングを行いました｡
‫さて､ グリッドサーチのSeaveyは何をするかというと､ ランダマイズサーチと同じです｡
‫CV このハイパーパラメータをランダムフォレスト分類器に渡し､ さまざまな組み合わせを試します｡
‫そして､ それが完成した暁には､ 「じぇじぇじぇ､ CLF best params」となるわけです｡
‫素晴らしい｡
‫そのため､ グリッド検索では少し時間がかかるかもしれません｡
‫CV これは気をつけたいところです｡
‫ここにハイパーパラメータを多く入れると､ グリッド検索に時間がかかります｡
‫CV ここにあるハイパーパラメータの組み合わせをすべて試さなければならないので､ 実行すること｡
‫そこで､ 先ほどと同じように､ グリッドサーチ分類器を用いて予測を行い､ 評価関数を使ってその結果を把握することで､
‫グリッドサーチ分類器を評価することができます｡
‫では､ そうしましょう｡
‫Clf 実際に行ってみます｡
‫げげっ､ なんで？
‫プレッズ イコール gs.
‫CLF predictは､ テストデータに対しても予測します｡
‫Xテストをしてから､ 予測評価をしに行く｡
‫GPSの指標はスプレッドを評価することに等しい｡
‫私たちの機能､ それは数本前のビデオで定義したもので､ その後､ 「なぜプレッズなんだ」となります｡
‫素晴らしい｡
‫そして今また､ 精度が少し低下していることがわかります｡
‫うーん｡
‫これは､ ハイパーパラメーターのチューニングがいかに大変な作業であるかを物語っています｡
‫そうですね｡
‫その試行錯誤が大事なんです｡
‫これを解決するためにできることは､ 上に戻ることです｡
‫ワークフローとしては､ 先ほどと同じように､ いくつかの設定を手作業で試していくことになるでしょう｡
‫高次のパラメーターを手作業でチューニング｡
‫このようなワークフローになるのではないでしょうか｡
‫これらのうち､ ほんの少しを手作業で試してみてください｡
‫私たちが行ったような検証セットで何かわかるかどうか､ そしてランダム化探索を使って高次のパラメータチューニングを試してみてください｡
‫CVEです｡
‫この場合､ この数字を20や50など､ 任意の数字に増やしてもよいでしょう｡
‫これも､ どのようなパラメーターが良いのか､ 実験してみた結果です｡
‫また､ 使用しているモデルのサイクロンモデルのドキュメントにあるハイパーパラメータに基づいて､
‫検索するグリッドを変更することもできます｡
‫そして､ ランダム化探索KVで良いハイパーパラメータが見つかったら､ そのハイパーパラメータ､ つまりここにあるベストパラメータを取り出して､
‫ここで行ったようなグリッド間探索をまた行うことができるかもしれません｡
‫私たちの場合は､ この方法でモデルの指標は改善されませんでしたが､ おそらくもう少し実験を始めるところでしょう｡
‫他の指標やハイブリッド・パラメータをいくつか試してみてください｡
‫ただ､ 念のために言っておくと､ ホップのパラメータをいろいろと試した後､ デフォルトの設定でベースラインモデルを作成することになるでしょう｡
‫手作業で調整しようとしたり､ ランダマイズサーチTVで調整しようとしたり､ グリッドサーチで調整しようとしたこともありましたね｡
‫モデルを比較したくなりますね｡
‫では､ 比べてみましょう｡
‫私たちのさまざまなモデルの指標｡
‫素晴らしい｡
‫そのために､ データフレームを作成します｡
‫だから
‫PD このため､ 私たちはすべてのモデルやevaluate pred関数から辞書を返してきました｡
‫つまり､ ベースラインは基準指標になり､ CLF 2は自己指標になるわけです｡
‫必要ない時に来てしまった｡
‫ランダムサーチはレース行列になり､ グリッドサーチはGS行列になる｡
‫素晴らしい｡
‫そして､ 実際に動作しているところを見るために､ ここでインスタンス化したデータフレームであるMetricsを比較してみることにします｡
‫まあ､ 引っ越した方がいいかもしれませんね｡
‫上がっています｡
‫実際には必要なかったスクイグリーブラケットをそこに入れてエラーになりそうです｡
‫ドットバーをプロットする｡
‫フィグサイズは10幕に相当します｡
‫見てみよう｡
‫素晴らしい｡
‫つまり､ 1つの空間で､ さまざまな分類モデルの指標をすべて比較することができるのです｡
‫つまり､ 私たちのベースラインモデルが青色であることがわかります｡
‫だから､ これに関しては､ ここでベストを尽くせなかったんです｡
‫どちらかというと､ CLF2とランダムサーチが同点でしたね｡
‫精度の面では､ CLF2が前に出ています｡
‫リコールではベースラインが前に出て､ F1ではベースラインとクレフ2が同点になる｡
‫そしてまた､ このグラフを調整することで､ より見やすくすることができるのです｡
‫これはあくまで､ さまざまな指標を示すためのものです｡
‫自分のためだけでなく､ チームメイトのためにも､ こういうコミュニケーションをとるということですね｡
‫また､ プロジェクトで誰かに報告する場合は､ さまざまなモデルを試して､ 分類の基準によってどのように性能が異なるかを見せることができます｡
‫分類の問題であれば､ もちろん回帰の問題でも同じような処理をすることができます｡
‫そして今､ プロジェクトに何が必要なのかによって､ どのモデルなのかが変わってきます｡
‫では､ リコールを最適化するモデルが欲しいとします｡
‫この場合､ ベースラインモデルを使うかもしれませんし､ それをモデル化して精度を最適化したいのであれば､
‫モデル化する自己を選択するかもしれません｡
‫また､ どの指標も本当に効果がなかった場合､ ランダム検索やグリッド検索でより良い指標を見つけようとし続けるかもしれません｡
‫そして､ ハイパーパラメータチューニングによってモデルを改善する方法について､ ようやく最後までたどり着きました｡
‫そして､ ここでもまた､ 多くのことを吸収することができます｡
‫重要なポイントは､ 実験的なプロセスであることを忘れないことです｡
‫ハイパーパラメーターチューニングによるモデルの改良は､ その方法について書かれた法則のようなものはありませんが｡
‫要は､ とにかく挑戦し続けることです｡
‫何か分かることがあれば､ 見てください｡
‫ランダムフォレスト分類器など､ さまざまなモデルが持つハイパーパラメータに慣れることができるかどうか確認してください｡
‫そして､ 最初に作ったモデルがベストモデルでない可能性が高いということを､ 自分に言い聞かせてください｡
‫ベースラインのモデルであり､ それを改善することができるので､ モデルを構築したのです｡
‫改良に努めました｡
‫例えば､ リコールに力を入れるとか､ そういうことを決めたとします｡
‫モデルをエクスポートして､ 共有したり､ ある種の展開セットアップに使用したりすることもできます｡
‫次のセクションでは､ このリストで取り上げている､ モデルの保存と共有､
‫読み込みの方法について見ていきます｡
‫そこで､ 学習済みモデルを保存してロードします｡
‫この利点は､ これまでのセクションで行ってきたようなモデルの再トレーニングを行う必要がないことです｡
‫だから､ 通い直してください｡
‫ハイパーパラメータチューニングについて､ グリッドサーチを用いたモデルのハイパーパラメータの改善方法についてご紹介します｡
‫ランダム検索で試してみてください､ 手で試してみてください､ それでは次のビデオでお会いしましょう｡