この記事では、エントリーレベルのスタッキング アプリケーションを学習する私の精神的な旅について説明します。 学習プロセス中、モデル融合手法と、Kaggle での最初のバトルで上位 10% に入る方法に関する記事 (著者は Zhang Linghao) を提供してくれた @貝塔に感謝したいと思います。情報を提供していただいたお二人に心から感謝いたします。 Kaggle には、このようなアンサンブルに関する記事やコードもいくつかあります。 この記事は、スタッキングに悩まされている初心者向けです。インターネット上のスタッキングに関するコンテンツは数少ないですが、上記の役立つ記事はすでにお読みいただいているものと想定しています。しかし、見終わった後もショックを受けました。以下の内容が、スタッキングを学ぶという困難な道のりにおいて、皆さんにとって小さなたいまつとなり、かすかな光を与えてくれることを願っています。 この記事では、Kaggle の Titanic (Titanic Prediction) 入門コンペティションを使用して、スタッキング (2 層!) の応用について説明します。 データの行数: train.csv には 890 行 (つまり 890 人)、test.csv には 418 行 (418 人) があります。 データ列の数は、保持する特徴の数によって決まりますが、これは人によって異なります。自分の列車は7+1を保持します(1は予測列です)。 インターネット上の数少ないスタッキングコンテンツの中で、この画像をすでにご覧になったことがあると思います。 この絵をすぐに理解できれば大丈夫です。 すぐに理解できないと困ってしまいます。その後もしばらくは混乱が続きます… この写真は***「誤解を招く」からです。 (注: この画像が間違っているとは言っていませんが、確かに間違っています!!! しかし、インターネット上の数少ないチュートリアルの 1 つに無修正の画像があるのは良いことです。感謝してください、私は弱虫です)。 写真を修正しました: 5 倍のラウンドごとに、モデル 1 は 5 ラウンドのトレーニングと予測を実行する必要があります。 タイタニックの例: トレーニング データには 890 行あります。 (写真上部に対応しております) 各フォールドでは、713 行の小さなトレインと 178 行の小さなテストが生成されます。モデル 1 を使用して、713 行の小さなトレインをトレーニングし、次に 178 行の小さなテストを予測します。予測結果は、長さ 178 の予測値です。 このアクションは 5 回実行されます。長さ 178 X 5 = 890 の予測値となり、これはトレーニング データの長さとちょうど一致します。この 890 予測値はモデル 1 によって生成されます。これは後で第 2 層モデルのトレーニング ソースとなるため、最初に保存します。 重要なポイント: このステップで生成された予測値は、890 X 1 (890 行、1 列) に変換でき、P1 (大文字の P) と表記されます。 次に、テスト データに 418 行あるとします。 (写真の下部、はいはい、緑のボックスに対応してください) 各フォールドについて、713 行の小規模なトレーニングでトレーニングされたモデル 1 は、すべてのテスト データを予測する必要があります (すべてです。テスト データは 5 フォールドに含まれていないため、毎回すべてです)。このとき、モデル1の予測結果は長さ418の予測値となります。 これを 5 回繰り返します。5 x 418 の予測値マトリックスが得られます。次に、行を平均して 1 x 418 の平均予測を取得します。 重要なポイント: このステップで生成された予測値は、418 X 1 (418 行、1 列) に変換でき、p1 (小文字の p) と表記されます。 この時点で、最上位モデル 1 のミッションは完了です。 *** 層にはモデル 2 などの他のモデルがあります。同じプロセスを実行すると、890 X 1 (P2) 列と 418 X 1 (p2) 列の予測値を取得できます。 したがって、最初のレベルに 3 つのモデルがあるとすると、次のようになります。 5 分割からの予測行列は 890 X 3、(P1、P2、P3) であり、テスト データからの予測行列は 418 X 3、(p1、p2、p3) です。 ———————————————– 2階に到着……………… 5分割からの予測値行列890×3は、第2層モデルをトレーニングするためのトレーニングデータとして使用されます。 テスト データ 418 X 3 からの予測値のマトリックスがテスト データです。トレーニング済みモデルを使用して、これらを予測します。 ————————————— ***、ここに Python コードがあります。インターネット上のいくつかのスタック コンテンツの中で、これらの数行のコードは既に見たことがあるでしょう。私は以前ここで行き詰まっていました。ここで少し注釈を追加します。お役に立てば幸いです。 |
<<: アディダスのロボット工場で作られた靴が出荷されようとしている
>>: ニューラルネットワークの問題を解決するための新しいアイデア: OpenAI は線形ネットワークを使用して非線形問題を計算します
拡散モデルを使用して化学反応を予測すると、速度が1,000 倍向上します。かつてはコンピューターで計...
Java ME ゲーム開発では、衝突検出アルゴリズムを実装する必要があることがよくあります。たとえば...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
(1)要素が0から65535までの任意の数値であり、同じ値が繰り返し出現しない整数列。 0 は例外で...
[[409963]]学術研究の特許所有権は、研究者の研究成果を保護し、保証するものであるため、研究者...
[[386714]]北東部に拠点を置くエネルギー会社 Eversource で財務計画および分析 (...
数え切れないほど多くの企業が、意思決定を支援するために機械学習 (ML) を日常的に使用しています。...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
9月7日、ユネスコは「教育と研究における生成AIの利用に関するガイドライン」を発行しました。これは、...
AI業界の実務家にとっては、眠れない夜を過ごしたかもしれない。北京時間11月7日早朝、アメリカの人工...
過去数年間、機械学習 (ML) とコンピュータサイエンスの分野では多くの変化が見られました。この長い...
こんにちは、みんな。短い動画を見ているときに、こんな動画を見たことはありませんか?動画の中で、人物の...
ディープラーニングは機械学習アルゴリズムのサブクラスであり、より複雑であることが特徴です。したがって...