‫素晴らしい｡
‫機械学習モデルがどのように動作しているかを素早く知る方法と､ scoreメソッドを使って評価する方法を見てきました｡
‫scoreメソッドは､ 取り組んでいる問題に応じてデフォルトの評価指標を返し､
‫回帰では決定係数､ 分類では平均精度を返します｡
‫しかし､ 問題をさらに深く掘り下げると､ モデルの性能を評価するために､ より強力な指標を使い始めたくなることがあります｡
‫で､ 当然ながら､ scoreを使った次のステップアップは､ カスタムスコアリングパラメータを使うことです｡
‫ここで､ 1つの推定値､ スコア法について見てきましたが､ 今度はスコアリング・パラメータ・モデル評価ツールを使って､
‫クロスバリデーションを使って見てみましょう｡
‫それが何であるかは､ すべて私たちが見なければならないかもしれません｡
‫では､ 潜入してみましょう｡
‫おい､ どうするんだ､ これを解決するんだ｡
‫さて､ これから数回のビデオでかなりの部分をカバーしますので､ お付き合いください｡
‫なぜかというと､ 機械学習モデルの評価はとても重要なステップだからです｡
‫あるデータに対してフィット関数を呼び出すのも一つの方法ですが､ 次に重要なのは､ 「そのモデルは実際に機能しているのか？
‫何かを学んでいるのでしょうか？
‫それを使って､ 将来の予測ができるのでは？
‫そのために､ ここで多くのことを網羅するようにしているのです｡
‫では､ さっそく始めましょう｡
‫これからやることは､ スケール､ モデル選択学習､ インポートクロス､ 母音スコアです｡
‫そして､ いつものように､ 実際に何が起こっているのかに飛び込む前に､ まずコードを実行してみます｡
‫そして､ 必要なのは何らかの分類コードです｡
‫では､ どうするかというと､ これをコピーすればいいのです｡
‫ちなみにこれはコピーしていいんですよ､ 今まで何回か書いてますから｡
‫唯一違うのは､ cyclonesからcross vowel scoreをインポートし､ モデル選択を行っていることです｡
‫さて､ 次にすることは､ fitを呼び出したので､ 大きな出力が出ないように､ 小さなセミコロンを置くことです｡
‫あのさぁ...｡
‫この警告は何度も出てくるので､ このまま変えていくかもしれませんね｡
‫目安は100本分です｡
‫それで､ クロスボーン・スコアは､ ワード・スコアも入っているのですが､ 見てきました｡
‫このクロスボーンは何をしているのですか？
‫さて､ 見てみましょうか｡
‫だから､ 私たちのスコアを見に行ってください｡
‫比較できるように､ まずテストデータをやってから､ 同じようにやります｡
‫しかし､ 今回は交差母音スコア､ 交差母音スコア､ 交差母音スコアを用いて分類を行います｡
‫xのデータを取り､ Yのデータを取り､ テストはしない｡
‫そして､ 電車ではない｡
‫何が起こっているのか､ すぐにわかります｡
‫え？
‫どうしたんですか？
‫そしてまた､ 新たな警告を受けることになる｡
‫これは､ CVEのデフォルト値が3から5に変更になるというだけのことです｡
‫そこで､ このシフトタブを見てもらうと｡
‫docstringを読んでみよう｡
‫クロスバリデーションによるスコアの評価｡
‫クロスバリデーションとは何ですか？
‫そして､ CVが警告を発してくれるわけです｡
‫その警告はここから来ているのです｡
‫これをCVイコールから変更すると､ デフォルトは3つになります｡
‫5に変更すれば､ その警告は消えます｡
‫そして､ 今度は5種類のスコアのアレイバックです｡
‫ふむ｡
‫だから､ それが最初に気がつく違いでしょう｡
‫Cross vowel scoreは配列を返すが､ scoreは単一の数値のみを返す｡
‫なるほど｡
‫では､ どうすればこれを把握できるのか｡
‫クロスバリデーションとは何かということを考えなければならないのは､ 結局のところ､ クロスボーン・スコアがやっていることだからです｡
‫docstringに戻ってきてください｡
‫Luckyでクロスバリデーションを行い､ スコアを評価する｡
‫ここで､ 先ほど用意したものを実演してみましょう｡
‫そして､ いつものように物事がよく理解できるようになりました｡
‫視覚的に､ クロスバリデーションが何をしているかを示すために､ 同じことをするかもしれません｡
‫つまり､ 通常のトレーニングとテストの分割で以前から行っていたことです｡
‫そこで､ データをトレーニングに分けた｡
‫だから､ これはステイになるかもしれない｡
‫最初は100人の患者さんの記録からスタートしました｡
‫トレーニング用に分割するんです｡
‫この場合､ 80%を使っていますが､ これはX trainが入っていて､ 80のサンプルをトレーニングするのですが､ ここでは100という数字を使っています｡
‫私たちは､ 本当にそれ以上のものを手に入れたのです｡
‫ただ､ これは数字がこちらの方がビジュアル的にうまくいくからです｡
‫そして､ テストデータセットには､ Xテストを含む20%のデータを用意し､ テストを行います｡
‫さて､ クロスバリデーションの違いですが､ この画像は5重クロスバリデーションを示しています｡
‫クロスバリデーションは､ Kfoldと呼ばれ､ Kは任意の数である｡
‫そして､ なぜ5を使うかというと､ ここに戻ってくるとCVはそこで5と等しくなるからです｡
‫つまり､ クロスバリデーションの略ですね｡
‫そしてこれが､ テストサイズに20%を使って､ データをトレーニングとテストに分けるということです｡
‫ということは､ 残りの80％は当然トレーニングデータに行くわけで､ この小さな分岐はここから来ているわけです｡
‫さて､ クロスバリデーションでは5つの分割を行い､ 最初の20％を使用します｡
‫このように､ 最後の20%を使っているのがわかると思います｡
‫つまり､ ここにテスト用データセット､ ここにトレーニング用データセットが作成されます｡
‫そして､ こちらに移動して､ これをテストデータセットとして使用します｡
‫そして､ 何度も何度も繰り返し｡
‫クロスバリデーションでは､ 5種類のモデルを学習させ､ それぞれの学習データで学習させたモデルを5種類のテストデータで評価します｡
‫では､ その目的は何なのか？
‫ご想像の通り､ 1つのモデルしか学習しない場合､ 例えば､ 80%の行に大量の情報があり､ モデルはこの80行､
‫80の患者記録について非常によく学習することができました､ というような幸運な分岐があり得ます｡
‫そして､ このテストセットで実に良いスコアを出したのです｡
‫これは､ 我々のモデルがどのようにデータを理解し､ データのパターンを把握するかを忠実に反映しているのだろうか？
‫まあ､ そうでもないんですけどね｡
‫そうですね､ 運が良かっただけですからね｡
‫もし､ これをランダムに分割していたら､ なぜか簡単な患者記録の束がここに来て､ モデルが特定のパターンを見つけ出し､
‫このテストデータセットのここに行ってしまったとします｡
‫しかも､ すごいスコアなんですよ｡
‫自分自身を騙しているのかもしれない｡
‫私たちは､ 自分たちのモデルが実際よりもはるかに優れていると思い込んでいる可能性があるのです｡
‫そこで､ クロスバリデーションの出番となるわけです｡
‫これは､ すべてのデータで学習せず､ たった1つの分割されたデータで幸運なスコアを得ることを避けるための解決策を提供することを目的としています｡
‫つまり､ 5種類の分割を作ることになります｡
‫だから､ どんなことがあっても､ 我々のモデルはすべてのデータで学習し､ すべてのデータで評価されることになるのです｡
‫だからこそ､ また来れば｡
‫クロスボーン・スコアを見るには
‫そのため､ ここでは5つの異なるスコアが返されるのです｡
‫ああ､ それで納得がいくようになったんですね｡
‫つまり､ XのテストデータとYのテストデータだけに対してscoreパラメータを呼び出すと､ 1つのスコアが返されることになります｡
‫しかし､ ここのグラフィックを参照するため､ クロスボーン・スコアと呼ぶと､ 5種類の分割をすることになります｡
‫そして､ 5倍というのはあくまで任意の数字であることを忘れないでください｡
‫10倍でもいいし､ 3倍でもいい｡
‫100倍でもいいくらいです｡
‫しかし､ 5倍はライブラリのデフォルトで､ データの大きさにもよりますが､ 通常はかなり良い値です｡
‫そこで､ ここでは5つ折りを使って実演してみます｡
‫それを証明するために
‫ここに入ればいいんだ｡
‫クロスボーン・スコア
‫10個でもいいんです｡
‫つまり､ これと全く同じ分割を10回行うだけということです｡
‫そして､ 10種類のスコアを返す｡
‫つまり､ これはスプリット1の素晴らしい例で､ スコアが0になっていますね｡ 9なので､ 90%になる可能性があり､
‫こちらの方が高いです｡
‫しかし､ 後のスプリットでは､ 72というもっと低い数値になっているんです｡
‫そこで､ より理想的なパフォーマンス指標､ あるいはモデルの評価指標を見つけ出すために､
‫この5つのスコアの平均を取ることにしました｡
‫その様子をご覧ください｡
‫1つのセルで全部やるんだ､ ランダムシード｡
‫そして､ これから行うのは､ トレーニングとテストのスプリットスコアを1つずつ取得することです｡
‫CLFシングルスコアがCLFスコア×テストに等しいことを確認する｡
‫ここで同じデータを使ってYテストをすることになる｡
‫素晴らしい｡
‫そして､ 5倍のクロスバリデーション・スコアの平均を取ります｡
‫Clef cross vowel score equals np mean then we need cross vowel score x oh no we need to pass
‫it our classifier x y and we'll use CV equals five and then.
‫この2つを比べてみてください｡
‫だから､ ライブシングルを見ることができるんです｡
‫学校､ そしてSEAL Fクロスヴァル校へ｡
‫バーン では､ ここで何を見るか｡
‫まあ､ うちの場合はね｡
‫元のシングルスコアは､ 今この下にありますが､ 同じテストデータを使ってランダムシードを使用しているため､
‫まったく同じ数値になっています｡
‫私たちのシングルスコアは0点です｡ 85.
‫しかし､ クロスバリデーションで､ KVが5になるので5分割にすると､ スコアは0になります｡
‫82.
‫だから､ 若干低いんです｡
‫しかし､ この場合､ モデルの精度が低くてもいいから報告しろと言われたら､ クロスバリデーション以外の指標よりもクロスバリデーションの指標の方がいいわけです｡
‫さて､ どうする？
‫スコアリング・パラメーターも全く使っていないんですよ｡
‫それは､ デフォルトで「なし」に設定されているからです｡
‫見てみよう｡
‫スコアリング・パラメータを「なし」に設定｡
‫デフォルトでは
‫そこで､ cross vowel scoreをC, l, f, x, y, CVと呼ぶと､ ここでスコアリングを渡すと､ noneに設定されることになります｡
‫では､ この上でシフトタブをすると､ どうすればこのことがわかるのでしょうか？
‫さて､ 幸運なことに､ docstringが便利です｡
‫C デフォルトでは「なし」に設定されています｡
‫だから､ このままスクロールしていけば
‫私たちのノートブックを移動するようにスコアリング文字列callableまたはnoneオプションデフォルトnoneはOC文字列Cモデルの評価文書です｡
‫それが､ ここで調べてもらったものです｡
‫score は score estimated x y というシグネチャを持つ,
‫呼び出し可能なスラッシュ関数で, 値がない場合は単一の値のみを返します｡
‫R さて､ これで精度が分かったわけですが､ クロスウェルのスコアリングパラメータが「なし」の場合､
‫フクロウのケースで我々の推定値のデフォルトのスコアリングパラメータが使われるからです｡
‫何ですか？
‫分類器のデフォルトのスコアリング・パラメータは平均精度に相当します．
‫そして､ 前回の映像の前に､ どこでそれを見たのでしょうか？
‫我々はライブスコアを見に行くと我々は与えられたテストデータとラベルの主な精度を返すシフトタブをヒットしたとき｡
‫つまり､ スコアが「なし」に設定されている場合は､ 分類器のクロスバリデーションにデフォルトの評価指標が使われることになります｡
‫つまり､ シフトとエンターキーを押せば
‫同じ値を返すことになる｡
‫あるいは､ 微妙に違うかもしれませんよね？
‫なぜなら､ このセルには種を仕掛けていないからです｡
‫そのため､ これらの値は､ 上に表示されているクロスセルのスコアとは異なるものになります｡
‫ここで走らせたら､ 似たような値になっていたかもしれませんね｡
‫ここで何を取り上げたか？
‫さて､ お察しの通り､ スコアリングパラメーターは変更可能です｡
‫そうだろ？
‫つまり､ docstringにあるように､ ここに独自のスコアリング・パラメータをインポートすることができるのです｡
‫これを「なし」以外に変更することができる｡
‫それが､ これから取材に入るということですね｡
‫次のビデオでは､ クロスバリデーションで使用できる他の分類モデル評価指標をいくつか紹介します｡
‫それで､ クロスバリデーションを使いながら､ まあ､ 見たとおりなんですが｡
‫写真では
‫クロスバリデーションは､ すべてのデータで学習することができない問題を解決することを目的としています｡
‫そうですね｡
‫だから､ 5つのモデルを作っているのですが､ 結局､ すべてのデータで学習させたモデルを持っていて､ ラッキースコアが出るのを避けているのです｡
‫だから､ シングルスプリットでトレーニングする｡
‫そして､ その姿を目の当たりにしたのです｡
‫シングルスプリットのスコアは､ クロスバリデーションのスコアよりもわずかに高いスコアとなりました｡
‫フーッ!
‫多いですね｡
‫さて､ まだまだこれからです｡
‫綿密な分類指標を起こそう｡
‫次の動画でお会いしましょう｡