この記事では、エントリーレベルのスタッキング アプリケーションを学習する私の精神的な旅について説明します。 学習プロセス中、モデル融合手法と、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. 急速な発展の10年1. 論文の発表状況<br /> 人工知能は過去10年間で急速に...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
[[336071]]貴重なリソースをまとめましたので、ぜひご覧ください。アルゴリズムはコンピュータサ...
[[407645]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
自動化の一般的な定義は、機械化と電動化の最高レベルであり、つまり、機械、設備、機器はすべて、指定され...
[[201526]]人間の行動に関する研究が最近、Nature の子会社である Nature Hum...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...