WEBVTT

00:00.470 --> 00:10.220
第8週2日目パート4の最終段階として、 これらすべてを統合したアンサンブル・モデルを構築する。

00:10.220 --> 00:16.040
まず、 私のマイク、 Quadcast HyperXコンデンサーマイクのような製品を例にとると、

00:16.040 --> 00:26.330
Specialist FrontierとRandom Forestの3つのオブジェクトがあり、 それぞれにこの製品の価格を尋ねることができます。

00:26.330 --> 00:28.670
そして、 この3つの数字をご覧いただきたい。 

00:28.670 --> 00:33.080
この場合、 フロンティアモデルが最も真実に近いと思う。 

00:33.080 --> 00:38.780
前回、 スペシャリストモデルに電話したとき、 私たちとたぶん私の文章が少し違っていたように記憶している。

00:38.780 --> 00:40.100
さらに良くなったと思う。 

00:40.100 --> 00:43.940
129だったと思う。 

00:44.120 --> 00:45.740
あー、 でもそうだね。 

00:45.740 --> 00:51.830
とにかく、 ランダムフォレストの結果はあまり良くなかったが、 他の2つは、 まあ、 妥当だったということがわかるだろう。

00:52.070 --> 00:55.280
だから、 私たちが今やっていることはとてもシンプルだ。 

00:55.280 --> 01:02.450
まず、 250のテストデータを取る。 

01:02.510 --> 01:10.170
実際にテストに使っているものとは別にするために、 1000から150までのものを選んだんだ。

01:10.410 --> 01:18.630
基本的には、 それぞれの項目を取り出して、 その説明を見つけ、 スペシャリストモデル、 フロンティアモデル、

01:18.630 --> 01:24.930
ランダムフォレストモデルから得られる価格を加える。

01:24.930 --> 01:29.700
そして、 その商品の本当の値段を書く価格リストも持っている。 

01:29.700 --> 01:37.890
つまり、 GPT4から得られた独自のLLMフロンティアラグに基づく結果の専門家によるリストと、 私たちの特別なコンテキストとランダムフォレストの結果、

01:37.920 --> 01:47.310
そしてグランドトゥルース(実際の数値)を加えた4つのリストが完成することになる。

01:47.310 --> 01:49.410
そして、 そのすべてを構築する。 

01:50.160 --> 01:52.770
これから、 よくあるトリックをやってみよう。 

01:52.770 --> 01:54.630
本当に遊べるものなんだ。 

01:54.630 --> 01:57.480
あと2つ、 この中に加えようと思う。 

01:57.510 --> 02:06.750
そのうちの1つはMinsと呼ばれ、 3つのうちの最小値であり、 もう1つはMax'sと呼ばれ、 3つのうちの最大値である。

02:06.960 --> 02:13.250
ただ、 それはもう一つのウム、 事実であり、 そこに何らかのシグナルがあるかもしれない。 

02:13.250 --> 02:22.520
また、 3つのモデルで最も低い見積もりと、 1つの製品で最も高い見積もりを見てみるのも有効かもしれない。

02:22.520 --> 02:30.140
つまりこの時点で、 250の各製品について、 スペシャリスト、 フロンティア、 ランダムフォレスト、 この3つのうちの最小値、

02:30.140 --> 02:35.630
そしてこの3つのうちの最大値の5つの結果が得られたことになる。

02:35.660 --> 02:47.240
これらのデータは5つのコレクションに格納されており、 フロンティア、 ランダムフォレスト、 最小値、 最大値の5つのスペシャリストからパンダのデータフレームを作成する。

02:47.330 --> 02:52.340
そして、 その価格、 グランドトゥルースをシリーズに変換する。 

02:52.340 --> 03:01.010
これをxと呼び、 これをyと呼ぶ。 従来の機械学習のバックグラウンドを持つ人なら誰でも知っていることだろう。

03:01.010 --> 03:07.670
つまり、 線形回帰モデルをトレーニングして、 これらの異なる系列のどの加重平均が、

03:07.670 --> 03:20.190
このデータに最もフィットし、 最も良い結果をもたらすか、 という単純な線形回帰を行うことができる。

03:20.520 --> 03:22.800
だからそうするんだ。 

03:22.950 --> 03:25.140
そして、 こうなった。 

03:25.140 --> 03:26.820
これが係数である。 

03:27.570 --> 03:31.980
だから、 最低点と最高点の両方がかなり高いウェイトを占めている。 

03:32.070 --> 03:42.690
つまり、 一般的に言えば、 最小値と最大値の組み合わせを最もよく見ている。

03:42.750 --> 03:49.980
そうすると、 LM専業メーカーのシェアは健闘しているが、 フロンティア・モデルのシェアはずっと小さい。

03:49.980 --> 03:53.280
そして少々奇妙なことに、 それは実際にフロンティアと言われている。 

03:53.310 --> 04:06.180
ランダムフォレストにはシグナルがありますが、 それを差し引きます。 かなり大きな切片を与えて、 ランダムフォレストの数値の一部を差し引いているのがわかるでしょう。

04:06.300 --> 04:11.220
これは不思議な結果で、 ランダムフォレストの数値がそれほど良くなかったことを示している。

04:11.250 --> 04:15.210
しかし、 全体的なパズルの中にそれを取り入れることは有効だと思う。 

04:15.240 --> 04:17.790
今、 あなたはおそらく心の中でこう思っていることだろう。 

04:17.790 --> 04:21.960
この2つにはランダムフォレストがすでに組み込まれていると指摘されたので、 それはできない。 

04:21.990 --> 04:28.860
マイナスの数字があることは、 すでに最小値と最大値に織り込まれているからだ。

04:28.860 --> 04:35.280
そのため、 この3つのモデルをどのように評価するかについて、 おそらくより良い評価を得るために、 最小値と最大値を取り除いてもう一度実行することができる。

04:35.880 --> 04:44.880
つまり、 アンサンブルモデルを構築するのに必要なのは、 このモデルを使ってさまざまな要素を取り込み、

04:44.880 --> 04:52.830
投入したモデルの最良の線形結合をとって価格を予測することだ。

04:53.160 --> 04:58.890
だから、 まずアンサンブル・モデルにそれを保存して、 将来のためにキャプチャしておくんだ。 

04:58.890 --> 05:00.720
毎回走る必要はない。 

05:00.720 --> 05:05.130
そして、 アンサンブル・エージェントという新しいエージェントを作った。 

05:05.160 --> 05:08.130
今すぐアンサンブル・エージェントを見に行こう。 

05:08.820 --> 05:09.630
これだ。 

05:09.630 --> 05:11.610
これはアンサンブル・エージェントのコードである。 

05:11.610 --> 05:13.230
そして、 それはとてもシンプルだ。 

05:13.500 --> 05:16.590
ええと、 ここにコメントを加える必要があるようなので、 そうしよう。 

05:16.590 --> 05:20.550
だから、 これを自分で見る前に、 コメントが必要なんだ。 

05:20.550 --> 05:21.450
悪い肉だ。 

05:21.720 --> 05:23.700
それは申し訳ない。 

05:24.060 --> 05:33.480
イニシエーションでは、 価格設定に使用する3つのエージェントを作成し、 セットアップした。

05:33.840 --> 05:40.380
また、 アンサンブル・エージェントを動かして価格を算出する際には、

05:40.380 --> 05:46.560
そのモデルの重みをロードして加重結合を行います。

05:46.560 --> 05:48.270
フロンティアの価格をこう呼ぶ。 

05:48.270 --> 05:50.700
ランダムフォレストの価格を呼ぶ。 

05:50.730 --> 05:55.830
最小値と最大値を含むXのデータフレームを作成する。 

05:55.860 --> 06:03.600
そして最後にモデルを呼ぶ。  データ・サイエンスの言葉を使うなら、 なぜYになるのかを予測し、

06:03.600 --> 06:07.560
その予測を返す。

06:08.310 --> 06:11.040
ええと、 だから、 あなたにとって明確なものであってほしい。 

06:11.040 --> 06:19.860
これは単純に、 以前に構築したさまざまなモデルの線形結合を与える線形回帰モデルへの呼び出しをパッケージ化する方法である。

06:20.010 --> 06:30.710
それで、 もちろん、 次に試したのは、 想像できると思うけど、 同じように価格を設定することだった。

06:30.710 --> 06:34.880
その結果、 私たちが期待していた通りの中間的な数字が出た。 

06:34.880 --> 06:45.020
そしてもちろん、 そのアンサンブルを使ってテスターのドットテストを呼び出す。

06:45.020 --> 06:49.490
モーダルは時間がかかる。 

06:49.490 --> 06:50.810
だから、 事前に実行したんだ。 

06:50.810 --> 06:55.310
これをご覧になっている方は、 モーダルがウォームアップする間、

06:55.310 --> 06:59.270
最初に数分かかることを覚えておいてください。

06:59.450 --> 07:05.750
見ての通り、 赤が数匹いる。 

07:05.750 --> 07:06.650
私が教えてあげよう。 

07:06.680 --> 07:14.030
やや残念なことに、 私はこれで針が動き、 私たちが持っている素晴らしい独自モデルを打ち負かすことを本当に期待していたのですが、

07:14.030 --> 07:20.450
やや残念なことに、 この、 複数のモデルをアンサンブルするというアプローチを使うと、

07:20.450 --> 07:30.590
このテストデータセットでは、 以前よりも少し悪くなってしまったようです。

07:30.590 --> 07:35.320
しかし、 それはむしろ、 かなりノイジーであるという事実によるものだと想像しなければならない。 

07:35.590 --> 07:36.970
とても近いよ。 

07:36.970 --> 07:42.280
このように異なるモデルのアンサンブルを実施していることは、 改善されなければならない。 

07:42.490 --> 07:46.240
うーん、 でも、 ここでもっとやるべきことがあるのは明らかだ。 

07:46.270 --> 07:53.350
ええと、 チャートの見た目はとてもいいのですが、 インターセプトの数値が高すぎるという問題があるかもしれません。

07:53.380 --> 07:55.240
ええと、 何をしたかについてだけど。 

07:55.450 --> 08:01.930
それに、 この件で多くの時間を費やすくらいなら、 今こそ「もう終わったことだ」と言うべきだと思う。

08:01.930 --> 08:08.020
さて、 これにはかなりの時間を費やしたが、 アンサンブルのテクニックや他のいくつかのテクニックにはそれほど時間をかけていない。

08:08.020 --> 08:15.700
そして、 アンサンブルを構築する際に、 より多くの項や系列を追加し、 それを線形回帰に渡すのはとても簡単なので、

08:15.700 --> 08:19.960
これを実験するのは素晴らしいことだ。

08:19.990 --> 08:22.120
そしてこれはデータサイエンティストの夢でもある。 

08:22.120 --> 08:22.960
あなたはデータを持っている。 

08:22.990 --> 08:28.390
あなたは明確で、 測定可能で、 成功を決定する明確な方法を持っている。 

08:28.540 --> 08:34.330
ハイパーパラメーターも豊富で、 すぐに満足できる。 

08:34.330 --> 08:37.520
変更を加えれば、 すぐに反応を見ることができる。 

08:37.670 --> 08:39.920
だから君は僕よりうまくやれる。 

08:39.950 --> 08:41.540
これは非常にチャレンジングなことだ。 

08:41.540 --> 08:43.550
あなたは今、 たくさんの良いツールで武装している。 

08:43.550 --> 08:47.000
あなたはすでに私を打ち負かす独自のモデルを構築しているかもしれない。 

08:47.120 --> 08:53.720
また、 そうでなくても、 このアンサンブルのテクニックを使って前に進むことはできるはずだ。 

08:53.780 --> 09:00.200
それでは、 スライドに戻る前に、 このパートのラボワークを終わります。 

09:00.230 --> 09:08.660
ただ覚えておいてほしいのは、 今回の主な目的は、 必ずしも商品の値付け方法について超深入りすることではなく、

09:08.660 --> 09:15.890
ベクトル埋め込みやさまざまなモデルの実行について理解を深め、 この種の材料にかなり自信がある段階から、

09:15.890 --> 09:26.720
上級者になって超自信が持てるようになることだったということだ。

09:26.720 --> 09:28.160
そして今、 そこにたどり着いたことを願うよ。 

09:28.160 --> 09:33.590
そして、 もしそうでないのなら、 このノートを見返して、 一つひとつの細胞を調べ、 結果を検証し、

09:33.590 --> 09:38.180
とてもとても自信が持てるまで自分自身を納得させるのだ。

09:38.180 --> 09:41.600
では、 また次のビデオでお会いしましょう。