この記事では、エントリーレベルのスタッキング アプリケーションを学習する私の精神的な旅について説明します。 学習プロセス中、モデル融合手法と、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 は線形ネットワークを使用して非線形問題を計算します
今日の世界では、人工知能 (AI) が驚異的なスピードで進歩しており、その進歩に遅れを取らないことが...
01不意を突かれた!今回、Google は「人間を作った」のです! 5月8日、Googleは毎年恒...
ディープラーニングの活発な発展に伴い、業務シナリオで使用するためのディープ ニューラル ネットワーク...
コンピュータの出現以来、人類は思考できる機械を創ることを夢見てきました。 1956 年、ジョン マッ...
「欧州版OpenAI」の最新評価額は20億ドルに近づいています!パリを拠点とする大手モデルスタートア...
機械学習は、大規模なデータセットを分析してパターンを識別する能力があることで知られています。基本的に...
海外メディアのTech Xploreによると、百度の研究ロボット工学・自動運転研究所(RAL)とメリ...
最近、世界中で地震が頻繁に発生しています。 1月1日、突然、マグニチュード7.6の地震が日本を襲い、...
今はお金を稼ぐのが難しく、ビジネスも簡単ではないと言う人もいますが、今こそ最高の時代だと言う人もいま...
[[238409]]ソートは、コンピュータ サイエンスにおいて常に最も基本的なアルゴリズムの 1 ...
AIの発展は、人間の仕事の効率を向上させ、人間の働き方を変え、さらには人類の発展の方向を導く上で大...
「OpenAIは次世代の大規模モデルGPT-5を開発しています。私たちの使命は、並外れて魔法のような...