‫つまり､ 美しいのは､ データに欠損値がなく､ すべて数値に変わっていることです｡
‫機械学習モデルを構築できるはずです｡
‫では､ そうしましょう｡
‫モデルとしてインスタンス化したのは､ モデリングセクションを開始したずっと前のことです｡
‫ここまでで､ かなりのボリュームになりました｡
‫それは誇るべきことです｡
‫モデリング
‫素晴らしい｡
‫基本的に全く同じことをするつもりです｡
‫そこで､ 機械学習モデルを構築してみましょう｡
‫これを真似してもいいのですが､ また乗り遅れるだけです｡
‫自分たちにも少しはコミュニケーションを残しておこう｡
‫これで､ すべてのデータが数値化され､ データフレームに欠損値がなくなったので､ 機械学習モデルを構築することができるはずです｡
‫素晴らしい｡
‫だから､ 私たちの目標は何かということを忘れないでください｡
‫データの中から販売価格を予測するパターンを見つけるためだ｡
‫ということになりますね｡
‫df temp dot headを見てみよう｡
‫モデリングする前に､ 最後にもう一度データを見てみましょう｡
‫だから､ 販売価格の列を落とす必要がある｡
‫そうすれば､ 販売以外の列をすべて取り込んだ機械学習モデルを構築することができます｡
‫価格は､ パターンを見つけて､ 販売価格を予測しようとします｡
‫そこで､ ちょっとしたタイマーの魔法をかけることにします｡
‫そして､ 見たことがない人は､ Jupyter Notebookのマジック機能であるパーセント記号をご覧ください｡
‫一網打尽に探し出すことができるのです｡
‫しかし､ これは基本的に､ この特定のセルの実行にかかる時間を計算するだけのものです｡
‫そして､ 自分のパソコンであるMacBook Proで行うことにしています｡
‫何列あるんだ？
‫40万人とかいるんですよ｡
‫列です｡
‫少し時間がかかるかもしれません｡
‫これまでの例では､ 少ないデータで作業した場合､ 機械学習モデルはかなり早くできていましたね｡
‫なぜなら､ 数百の行を並べ替えるだけだからです｡
‫しかし､ これは412,000円です｡
‫もちろん､ もっと大きなデータセットがあるのですが､ 私たちはそこに到達し始めているのです｡
‫そうだろ？
‫数十万サンプルのインスタンス化モデルになっています｡
‫データサイエンティストや機械学習エンジニアとしての私たちの目標は､
‫できるだけ早く多くの実験を行うことです｡
‫すべてのデータに対して常にモデルを学習させるとなると､ かなり長い時間がかかります｡
‫そこで､ 私のパソコンで､ ベースラインのランダムフォレスト回帰モデルを使って､ 412,000行のすべてのパターンを見つけるのに､
‫どれだけの時間がかかるかをデモンストレーションしてみます｡
‫だから､ 安心して､ その場で走りを見ていてください｡
‫一度キックオフして､ ビデオを一時停止してから戻ってくると､ かかった時間が表示されるんです｡
‫実験をするときに､ 「どうしたら実験時間を短縮できるか」を考えることから始めてほしいのです｡
‫理由は､ 常に正しいことをしようとしていないからです｡
‫何が悪いのか､ 何がうまくいかないのかを考えようとしているのでしょう｡
‫それが､ 実験と実験の間の時間を短縮しようとする根拠なんですね｡
‫ここでやっているのは､ ランダム・フォレスト・モデルをインスタンス化することです｡
‫そこにランダムな状態を42に等しくするんだ｡
‫ランダム状態は42に等しい｡
‫そうすれば､ 私たちの結果は再現できるはずです｡
‫だから､ これだけなんです｡
‫今回は回帰の問題を扱うので､ ランダムフォレストの回帰クラスをインポートしました｡
‫エンドジョブをマイナス1に設定しているのは､ 今までの作業内容からするとかなり大きなデータセットであるためです｡
‫だから､ パソコンの原因を全部使って､ ランダム状態が42になるようにしたいんです｡
‫だから結果は再現可能で､ モデルをデータに当てはめるんです｡
‫これが私たちのXで､ これがYなんですね｡
‫販売価格を除く他のすべての列から販売価格を予測しようとしていることを忘れないでください｡
‫だから､ これを蹴ると
‫数分かかりますが､ ビデオを一時停止します｡
‫そして､ ここには小さな魔法の関数timeがあるので､ どれくらいの時間がかかるか見ることができます｡
‫だから､ 時間の準備をする｡
‫3対1で旅行する｡
‫よし､ 戻ったぞ｡
‫かなり早かったですね｡
‫ねえ｡
‫だから
‫私たちのモデルは完成しています｡
‫そして､ 壁の時間は6分58秒とここに書いてある｡
‫だから､ 7分くらいで通した｡
‫412,700列というのは､ 実は結構な数だったんですね｡
‫それをどれだけ早く見ることができるか､ 考えてみてください｡
‫412,000種類の例を調べていくと､ どれくらいの時間がかかるのでしょうか？
‫スピードアップさせたので､ その時間を待つ必要はありませんでしたね｡
‫しかし､ これをパソコンで実行するとなると､ もっと時間がかかるかもしれません｡
‫お使いのパソコンによっては､ もっと短時間で済む場合もあります｡
‫13インチのMacBook Proで動かしているのですが､ 2016年くらいからだと思います｡
‫私のがどれほどの計算能力を持っているのか正確にはわかりませんが､ ノートパソコンなので､ いずれにせよデスクトップほどではないかもしれません｡
‫しかし､ 行数が多くなればなるほど､ 時間がかかるようになるのは想像に難くありません｡
‫機械学習エンジニアとして､ あるいはデータサイエンティストとして､ 実験と実験の間の時間を短縮することが目的であるならば､
‫異なるモデルを試し､ 異なるデータを扱う際には､ かなり巧妙な工夫が必要になるでしょう｡ なぜなら､ 毎回7分待つのは､
‫たとえこの数字がセルの実行にもっと大きかったとしても､ かなりのスピードダウンにつながるためです｡
‫そこで､ これをどう改善するか､ 近々ちょっとした仕掛けを見ることになるでしょう｡
‫しかし､ 私たちのモデルがどうだったかを確認するために､ モデルを採点してみましょう｡
‫412,000行を超えたのなら､ きっと何か､ パターンを発見したのでしょう｡
‫そこで､ 学習させたのと全く同じデータで採点することにしました｡
‫だから､ これをコピーするんだ｡
‫そして､ 今度は回帰アルゴリズムについて思い出してください｡
‫デフォルトのスコア値は､ 決定係数､ つまりrの2乗を返すことになっています｡
‫さて､ R2乗が何であるかについて復習する必要がある場合は､ 決定係数（co efficient of determination）が何であるかに行くとよいでしょう｡
‫でも､ 言い換えれば､ 1点までならOKということです｡
‫モデルが販売価格列の平均を予測するだけであれば0であり､ モデルが非常にひどいものであれば負の無限大になる可能性があります｡
‫だから､ 1に近い値を探している｡
‫412,000行のスコアを計算しなければならないので､ 少し時間がかかるかもしれません｡
‫ボーメ 0． 98.
‫すごい｡
‫最大値が 0 の場合｡ 987なので､ 0に近い｡ 99.
‫そのため､ 最大値が1であれば 0の場合､ ランダムフォレストまたはアグレッサーが､ データフレーム内の他の列に基づいて販売価格を予測するための完璧なパターンをほぼ発見したということでしょうか｡
‫そうもいきません｡
‫それを取り上げる次のビデオに入る前に考えてほしいのです｡
‫なぜこの指標は信頼できないのでしょうか？
‫そうですね｡
‫ここで､ このデータにモデルを当てはめ､ 同じデータで評価をしてみました｡
‫なぜ､ この指標はあまり意味をなさないのでしょうか？
‫考えてみてください｡
‫次の動画でお話しします｡