00:00:00 - 00:00:02: 皆さん、何が起こっているのでしょうか。
00:00:02 - 00:00:05: 機械学習チュートリアル シリーズのパート 25 へようこそ。
00:00:05 - 00:00:07: このパートでは、
00:00:07 - 00:00:09: 特にサポート ベクター マシンについて話します。
00:00:09 - 00:00:12: これまで、
00:00:12 - 00:00:15: どのように行うかについての理論とロジックを説明してきました。
00:00:15 - 00:00:16: それで、
00:00:20 - 00:00:22: ここでは理論とロジックについてはあまり話さないので、それを見逃した場合は、
00:00:22 - 00:00:23: 戻って
00:00:23 - 00:00:26: 説明する必要があるので、とにかく先に進んで
00:00:26 - 00:00:28: 取得しましょう 最初に
00:00:28 - 00:00:29: 取得することは、先に進み、
00:00:29 - 00:00:33: マットプロットをPLTとしてパイプロットにインポートすることです。matplotlib
00:00:33 - 00:00:36: からインポート
00:00:36 - 00:00:42: スタイルスタイルを使用し、これにはggplotを使用します それは
00:00:42 - 00:00:44: 問題ではありません。
00:00:44 - 00:00:46: 実際には、numpy を MP としてインポートする必要もあります。
00:00:46 - 00:00:50: 基本的に、
00:00:50 - 00:00:54: 最初に a に必要なのはこれだけです。それで、
00:00:55 - 00:00:58: 非常に単純な基本データから始めます。
00:00:59 - 00:01:02: 現時点ではこれをデータ辞書と呼びます。これは辞書にすることができ
00:01:03 - 00:01:06: 、キーはクラスになるため、
00:01:06 - 00:01:08: 負の 1 は
00:01:08 - 00:01:15: リストのリストの numpy 配列と同等になり、
00:01:15 - 00:01:16: 同じことを行います
00:01:16 - 00:01:22: 正の 1 クラスの場合は、リスト
00:01:22 - 00:01:25: のリストにもなりますので、ここにカンマを入れて、
00:01:28 - 00:01:31: ここに何かを追加し始めましょう。それで、1 7 が得られたとしましょう。1
00:01:31 - 00:01:34: 7 が得られたので、ペーストしてみましょう。
00:01:34 - 00:01:38: それを 8 にして、3 8 を実行します。
00:01:38 - 00:01:40: 本当に単純なことです。それから、
00:01:40 - 00:01:43: これを入力します。もし
00:01:43 - 00:01:45: 詰まったら、このように貼り付けてください。
00:01:45 - 00:01:52: そうしたら、5 1 を実行しましょう
00:01:52 - 00:01:55: 。6 を実行しましょう。 マイナスの 1 なので、
00:01:55 - 00:01:57: それを示すためにそこにマイナスのようなものを入れて、
00:01:57 - 00:02:02: 7 おっと 7 3 を入れます。
00:02:02 - 00:02:05: 非常に明確に、その
00:02:05 - 00:02:08: データがグラフのどこに移動しているかが明確になるはずです。そうでない場合は、
00:02:08 - 00:02:10: それは実際にはそれほど整数ではありません
00:02:10 - 00:02:12: 私たちはそれを訓練しました、そうします、
00:02:12 - 00:02:13: 計画を立てて、
00:02:13 - 00:02:15: いつもそれを今すぐやるつもりですので、
00:02:15 - 00:02:19: 今私たちがやろうとしていることは、
00:02:19 - 00:02:21: おそらくそれをそのままにして、
00:02:21 - 00:02:22: それから降ります
00:02:22 - 00:02:24: 他の部分が好むものに、後で
00:02:24 - 00:02:26: 実際に実行するものを呼び出すことになりますが、実際には
00:02:27 - 00:02:30: データ ディック以外に何も持っていないので、先に進んで
00:02:30 - 00:02:32: サポート ベクター マシン
00:02:32 - 00:02:35: クラスの構築を開始しましょう。 オブジェクト指向プログラミングのクラスを完全に理解する
00:02:38 - 00:02:40: これが十分
00:02:40 - 00:02:44: に単純なクラスであることを実際には期待していない ただ
00:02:44 - 00:02:47: self という単語はクラス
00:02:47 - 00:02:50: 内で変数や他のメソッドを使用できるようにするだけであることを理解してください メソッドとは一体何なのか
00:02:50 - 00:02:51: 、メソッドとは基本的にどのようなものなのかを理解してください
00:02:53 - 00:02:55: 関数と同じように機能し、関数などのように動作します。
00:02:57 - 00:02:59: オブジェクトやプログラミングについてあまり詳しくない場合は、そのように考えてください。
00:03:00 - 00:03:02: ただし、サポート
00:03:02 - 00:03:05: ベクター マシンを オブジェクトなので、
00:03:05 - 00:03:08: トレーニングしてから再トレーニングする必要がなく、
00:03:08 - 00:03:10: 後で予測などを実行したり
00:03:10 - 00:03:12: 、視覚化したりできるので、
00:03:12 - 00:03:15: それを
00:03:15 - 00:03:17: オブジェクトにし、K 個の最近傍とともに保存したいのです。
00:03:18 - 00:03:21: すべての
00:03:21 - 00:03:24: 予測は基本的に
00:03:24 - 00:03:27: 再トレーニングする必要があるため、オブジェクトにすることはそれほど価値がありませんでした。そのため、実際にはそれほど
00:03:27 - 00:03:28: 価値がありませんでした。とにかく、
00:03:28 - 00:03:33: これをクラスサポートベクターマシンと呼ぶことにします。
00:03:33 - 00:03:34: 実際には、おそらく完全に公式にする必要があります
00:03:34 - 00:03:38: サポート ベクター マシンです。
00:03:39 - 00:03:43: それでは、init を定義します。ここでも
00:03:43 - 00:03:46: 説明していないと思います
00:03:46 - 00:03:48: が、基本的にクラス内のすべてのメソッドは、
00:03:50 - 00:03:52: すべてのメソッドを実行するためにクラスを呼び出すと、どのメソッドも実行され
00:03:52 - 00:03:54: ません。 init メソッドを除いて実行します。これは
00:03:54 - 00:03:56: 初期化メソッドです。そのため、
00:03:56 - 00:03:58: 最初にサポート ベクター マシンを呼び出して
00:03:58 - 00:04:01: 動作させると、init メソッドが
00:04:03 - 00:04:05: 実行されるだけなので、そこで定義したものはすべて実行され、その他の処理は、
00:04:05 - 00:04:07: 特に呼び出した場合にのみ実行されます。
00:04:07 - 00:04:09: ここには self があり、
00:04:09 - 00:04:12: 視覚化を
00:04:12 - 00:04:16: true に設定します。ここで起こっていることは、self の
00:04:16 - 00:04:18: ための self であり、さらに
00:04:18 - 00:04:20: 視覚化も行います。
00:04:22 - 00:04:25: データをグラフ化できるようにするコードがいくつかあります。 そうでないかもしれませんが、私たちが
00:04:26 - 00:04:28: できるだけハイパーになりたい場合は、それを視覚化しないでしょうが、
00:04:32 - 00:04:34: 私はそれをそこに置きたかっただけです。
00:04:34 - 00:04:36: それを目で見て
00:04:36 - 00:04:39: 視覚化するので、
00:04:39 - 00:04:43: セルフドット視覚化は
00:04:43 - 00:04:46: 視覚化に等しいかどうかを判断します。つまり、
00:04:46 - 00:04:49: クラス全体に対して、その
00:04:49 - 00:04:50: 値をユーザーが言ったことに設定するだけです。
00:04:50 - 00:04:52: ユーザーは何も言わなかったので、
00:04:52 - 00:04:54: それが真実であると仮定しているだけなので、
00:04:54 - 00:04:56: 次は視覚化します。
00:04:56 - 00:04:59: セルフドットカラーを実行します。おそらく
00:04:59 - 00:05:01: ここではこれは必要ありません。視覚化を入れるかもしれません
00:05:01 - 00:05:02: が、今のところは これをここに置きます。
00:05:05 - 00:05:07: 物事を視覚化している場合、これが私たちが望んでいることです。
00:05:07 - 00:05:13: つまり、a1 であるクラスは
00:05:13 - 00:05:15: 赤になり、負のクラスは
00:05:15 - 00:05:19: 青になります。次に私たちがやろうとしていることは、次のとおりです。
00:05:19 - 00:05:25: 自己ドットの可視化の場合、
00:05:25 - 00:05:26: その場合は、図に
00:05:26 - 00:05:29: 自己ドット Fink が P Ltd の数値と等しいと言うつもりで、
00:05:29 - 00:05:32: その後、自己
00:05:32 - 00:05:36: ドット軸は自己ドット fig dot
00:05:36 - 00:05:41: アンダースコア サブプロット 1 つ 1 を追加すると言うつもりです。
00:05:41 - 00:05:42: matplotlib についてはあまり詳しくありません。
00:05:42 - 00:05:44: チュートリアル シリーズ全体を用意していますので、
00:05:44 - 00:05:45: 基本的にこれは
00:05:45 - 00:05:47: ほぼウィンドウ全体の実際の図であり、
00:05:47 - 00:05:49: 次にこれが
00:05:49 - 00:05:51: 特定のサブプロットであり、次にこれが 1 つずつの
00:05:51 - 00:05:54: グリッドであることを確認してください。 これがプロット 1 です。プロットは
00:05:54 - 00:05:56: 1 つしかありませんが、
00:05:56 - 00:05:58: 1 つあればプロット 1 です。どうせもっとあるなら、
00:06:00 - 00:06:03: それが必要です。理由は後ほど説明しますので
00:06:03 - 00:06:05: 、それを共有する必要があります。
00:06:05 - 00:06:08: メソッド全体にわたって、とにかく
00:06:08 - 00:06:10: init を取得したら、次に
00:06:10 - 00:06:14: 必要なことは、最終的に
00:06:14 - 00:06:17: 他に何が必要かを取得することです。したがって、
00:06:18 - 00:06:21: scikit-learn と同じように考える必要があるのは間違いありません。 ありますか、
00:06:21 - 00:06:25: フィット感と予測は確かにあります。
00:06:25 - 00:06:28: それでは、先に進んでフィット感を定義しましょう。
00:06:31 - 00:06:32: 変数などを共有できるように、そこに自分自身を用意する必要があります。
00:06:32 - 00:06:34: しかし、他に何が必要になるのでしょうか。
00:06:34 - 00:06:37: これは標準に関するものです
00:06:37 - 00:06:38: が、とにかく
00:06:38 - 00:06:40: 他に何が必要ですか。
00:06:40 - 00:06:41: 人間にうまく適合したときに何をするかなどです。
00:06:41 - 00:06:43: データを渡しているので、
00:06:43 - 00:06:45: そこにデータを投入するつもりです。今のところ、
00:06:45 - 00:06:46: パスするつもりです。
00:06:46 - 00:06:48: 他のことをするつもりです、そして
00:06:48 - 00:06:50: 最後に、本当に必要となる他の方法は何ですか、そうですね、
00:06:51 - 00:06:55: 間違いなく予測が必要になります、そして
00:06:55 - 00:06:58: それは再びデータと予測を自分自身に取り込むことになります、
00:06:58 - 00:07:01: うーん、先に進みましょう
00:07:01 - 00:07:03: 実際に予測を記入することは
00:07:03 - 00:07:06: ほとんどできます 予測とは
00:07:06 - 00:07:09: 何か 関数が何であるか、
00:07:09 - 00:07:11: 予測の計算が何であるかを覚えておく必要があります
00:07:11 - 00:07:14: 基本的に、それは分類に
00:07:14 - 00:07:18: 等しいものであり、思い出していただければ、それは
00:07:18 - 00:07:25: X I の符号です
00:07:27 - 00:07:28: ここでは簡単にサブルーチンを実行できないため、
00:07:28 - 00:07:34: X ドット W と B を加えます。
00:07:34 - 00:07:38: この方程式の符号が何であれ、
00:07:38 - 00:07:41: Python ではどうなるでしょうか。 どうすれば
00:07:41 - 00:07:44: これをうまく行うことができますか? まず第一に、
00:07:44 - 00:07:46: 記号について、
00:07:46 - 00:07:48: 簡単なラムダ関数のようなもの、または
00:07:48 - 00:07:51: 単にゼロ以上またはゼロ以下のセットであることを示すものを用意して、
00:07:52 - 00:07:54: そのようなことを行うことができますが、それは変わります out
00:07:54 - 00:07:57: numpy は実際には特定の符号を持っているので、
00:07:57 - 00:07:58: 先に進み、
00:07:58 - 00:08:04: n P ドットの NP ドットサインを実行します。これは
00:08:04 - 00:08:09: X ドット W であり、ドット積とは何かを覚えておいてください。
00:08:09 - 00:08:14: スカラー値を返すので、NP ドットと
00:08:14 - 00:08:18: 私たちは 実際に渡すもの
00:08:18 - 00:08:20: と Web サイトにドットを付けるつもりです。
00:08:20 - 00:08:23: 自己データを予測したことを見てみましょう。自己の
00:08:23 - 00:08:25: 特徴を予測するとします。それはもう少し
00:08:25 - 00:08:27: 理にかなっているので、MP ドットを実行してから、
00:08:27 - 00:08:30: NP または a
00:08:30 - 00:08:35: features そして、それはちょうど in
00:08:35 - 00:08:38: the dot の中にあるので、これがドットを打つ 2 つのことです。これ
00:08:39 - 00:08:40: までに 1 つのことを理解しているので、
00:08:40 - 00:08:42: コンマを入力し、次にもう 1 つのことを入力します。
00:08:42 - 00:08:43: ドットに行きますが、これは自己
00:08:43 - 00:08:47: ドットになります W まだ W がありません、それが
00:08:47 - 00:08:48: この全体の要点であることを付け加えます。覚えておいてください。
00:08:48 - 00:08:51: 私たちはそこに到達しますが、
00:08:51 - 00:08:54: それがそうなることであることを覚えておいてください。
00:08:54 - 00:08:57: それは単に X W に B を加えただけなので、
00:08:57 - 00:08:59: もう一度自己ドット B と同じ話です。
00:08:59 - 00:09:01: まだそれらを持っていませんが、それらを最適化する必要があります
00:09:01 - 00:09:03: が、それらを取得したら、予測を行うことができるようになります。
00:09:03 - 00:09:06: どこで
00:09:06 - 00:09:07: 行うと思いますか? これらの値を取得します。
00:09:07 - 00:09:09: いつそれらを適切に設定する
00:09:09 - 00:09:11: つもりですか。
00:09:11 - 00:09:12: フィッティングを行うまでこれらの値は見つかりません。
00:09:14 - 00:09:16: もちろん、最初にフィッティングを行う必要があります。
00:09:16 - 00:09:18: わかりやすくするために、そうする必要があります。 もうかなり明確になりましたが、
00:09:18 - 00:09:20: fitment はトレーニングされています。基本的には
00:09:21 - 00:09:23: fit を使用するのと同じものです。scikit-learn がそれを
00:09:23 - 00:09:26: 何かと呼ぶときにそれを使用するため、
00:09:26 - 00:09:29: とにかく、うーん、self W self B があるので、
00:09:29 - 00:09:31: それがあなたのものです 分類し
00:09:31 - 00:09:33: てから、基本的に分類を返します。
00:09:37 - 00:09:39: グラフなども作成しますが、
00:09:39 - 00:09:44: 今のところはこのままにしておきます。
00:09:46 - 00:09:48: 視覚化の部分に到達したときにプロットします。
00:09:48 - 00:09:50: ここでこれをカットし、次の
00:09:50 - 00:09:53: チュートリアルでおそらく
00:09:53 - 00:09:55: 装備全体を構築することになるので、全体の
00:09:55 - 00:09:58: 最適化と W と B の検出について説明しますが、
00:09:58 - 00:10:00: サポート ベクター マシンの真の核心は
00:10:00 - 00:10:01: ここでわかります。 かなりの
00:10:01 - 00:10:04: 量が構築できたので、とりあえず
00:10:04 - 00:10:06: 今はここまでです。質問があれば、
00:10:06 - 00:10:08: この時点までのコメントに懸念がある場合は、お気軽に
00:10:08 - 00:10:10: お知らせください。そうでない場合は、いつものように、
00:10:10 - 00:10:11: ご覧いただきありがとうございます。すべてのサポート
00:10:11 - 00:10:15: と購読に感謝します。また次回まで
Creating an SVM from scratch - Practical Machine Learning Tutorial with Python p.25
sentdex
※本サイトに掲載されているチャンネル情報や動画情報はYouTube公式のAPIを使って取得・表示しています。
Timetable
動画タイムテーブル
動画数:1254件