モデルの結合今年の Discovery Summit Americas から学んだことが 1 つあるとすれば、それは、アンサンブル モデルの平均化や作成がいかに一般的であるかということでした。これについては、聞いたことはありましたが、(モデリングの初心者でした) 考えたこともありませんでした。 それで私はそうすることにしました。 アンサンブル モデルの作成は簡単です。モデルを予測式として保存し、それを次のモデル スクリーニング (JMP Pro 16 のモデル画面を使用) のラウンドで予測子として単純に組み込みました。 もっと単純に見えるモデルの平均化は、私を混乱させます。 気に入った 2 つのモデルを見つけ、両方を予測式としてデータ テーブルに保存し、それらを結合する新しい列を作成すると、確率は結合されるように見えますが、その式は私が使用する構文ではありません。新しいデータに適用することもできます (確率の平均のみを示します)。 両方のモデルを Formula Depot に公開すると、非常に簡単に平均化できるので、これが現在の回避策ですが、テーブル自体でも平均化できるようにすべきではないでしょうか。 問題は、予測式には式と確率が含まれているため、それらを組み合わせると、実際には式そのものを平均化したいのに、確率のみが平均化されてしまうということだと思います。 平均化された数式を新しいデータ テーブルにコピーし、新しいデータでテストできるような方法で両方を平均化することはできますか? そうでないとしても、Formula Depot はまさにこれを行うように設計されているため、大したことではありません。 いくつかのオプションを用意しておきたいと思います! おそらく確率の部分を削除して、列の情報セルに数式だけを残すだけでしょうか?
予測モデリングと機械学習Re: モデルの結合はい! いつものように、カテゴリ変数を予測しようとする奇妙な性質については、あなたの指摘が正しいと信じています。実際には 2 つの方程式が必要であり、それによって物事が複雑になります。 私がやりたいことは、最終的には真の勾配 (1 ~ 10、1 ~ 5、または 1 ~ 100) が得られる十分な大きさのサンプル サイズを得ることであり、考え方は同じです。1 = ひどい、最も高い数値 = 素晴らしい。 この場合でも、私は 2 つのカテゴリー (漂白耐性と漂白感受性)、または場合によっては 3 つのカテゴリー (前の 2 つ + 「中間」) を持っています。 感受性、中間、耐性をそれぞれ 1、50、100 として再コーディングしてみて、どのような結果が得られるか見てみるとよいでしょう。 より多くのサンプルを取得して分析するほど、Y を連続変数にすることがより合理的になると思います。 現在 20 個のサンプルを使用していますが、本質的に 2 ~ 3 個のビンを超えるには十分なデータがありません。 しかし、カテゴリ分類を連続変数に再コード化したときに、モデルが大きく異なって見えるかどうかを確認するのは興味深いでしょう。 すべてのモデル構築がよりシームレスになることは間違いありません。 そして実際には、自然界では「健康」か「病気」かのような単純なものではありません。私は、人間で見られるような健康スペクトルにわたる勾配を検出すると予想しています (たとえば、JMP 糖尿病データセットで見られるものなど)。 ただし、この演習の面白い点は、確率スコアに関して、私はこれらのスコアを実際にはあまり見ていなかったことです。私はJMPの「推測」に直接行きました。 しかし、ここで実際の確率を見るのは非常に興味深いことです。なぜなら、それが私が最終的に報告したいことだからです。サンゴ A は白化する確率が 95% です。 したがって、このモデルの平均化演習を通じて、以前は完全に見逃していたいくつかの素晴らしいニュアンスを偶然に掴むことができました。 そして、前に述べたように、当分の間カテゴリー応答に「行き詰まった」としても、Formula Depot のモデル平均化機能はこれに対して問題なく機能します。
GUI のおかげで、最近投稿した論文 (基本的にフェーズ 1 = ラボ実験について説明しています) には 20,000 を超えるニューラル ネットワーク モデル (21,450 ですが、誰が数えているのでしょうか?!) があることを知ってうれしいでしょう。 明らかに、すべての品質管理に合格したのはほんの一握りであり、本文で詳細に説明されているものはさらに少数でしたが、どの NN パラメーターが調整するのに本質的に最も重要であるかを確認することは非常に役立ちました。 また、最も単純で (潜在的に) 最も倹約的なモデルを構築したいので、1 つの NN に 2 つの隠れ層があり、それぞれに 3 つの活性化ノードがあるのに対し、2 番目のモデルには NTANH(3) を持つ 1 つの層があり、他のすべてが等しい場合、次のようになります。後者を選択しますが、最も単純なものでもかなり複雑なので、これはそれほど重要ではないと思います。 私が今年 Discovery で学ぼうとしたことの 1 つは、Chris Gotwalt のおかげで学べましたが、NN プロファイラーの可変重要度メトリクスを使用して、モデル内でどの分析物が最も影響力があるかを本質的に伝えることができるかどうかです。 古いルールでは、NN はブラック ボックスであり、どの応答変数が最も重要であるかを調べるのは非常に複雑すぎるということでしたが、これが完全に真実ではないことがわかってうれしいです。 解釈するのは難しいですか? はい。 あるタンパク質の挙動が、モデルの予測能力に応じて特定の簡単に定義された方法でスケールすると言えるでしょうか? そうでないかもしれない。 しかし、分子生物学者が私に「あなたの最良の NN モデルで最も重要なサンゴタンパク質はどれですか」と尋ねたら、私は少なくとも NN プロファイラーの重要度可変機能からいくつか挙げることができます。 実際、これが私が講演で gen-reg モデルについて説明することにした理由です。 NN のプロファイラーを「信頼」できるかどうかわかりませんでしたが (!)、今では信頼できることがわかりました。 とにかく、これが、モデリングの初心者である私がこの種のシンポジウムから非常に恩恵を受けている理由です。 よく考えられたご回答と、全般的なご支援に改めて感謝いたします。
Re: モデルの結合こんにちは@abmayfield 、
あなたの講演は気に入ったので、オンデマンドで視聴しなければなりませんでしたが、ライブビューイングと質疑応答には参加できませんでした。
通常、典型的な回帰式 (数値的なもの) を実行している場合は、予測列の平均を求めることができます。 単純に 2 つの平均を取るだけです。 ただし、yes または no (あるいはおそらく) というカテゴリ値を扱うため、X の数値入力をロジスティック関数に変換し、確率を求めて結果を IfMax( ) 関数。
Big Class ファイルを例に考えてみましょう。 :height と :weight を使用して :sex を予測しようとすると、ロジスティック出力関数が得られます。この例では、性別 = M を予測しようとしています。 ただし、Prob[M] と Prob[F] を決定するために使用される中間関数があります。 線形関数は、Lin[M] = a + b*:height + c*:weight のような関数です。ここで、a、b、c は単なるフィッティング係数です。 確率を取得するために、JMP は Prob[M] に対して変換 1/(1_exp(-Lin[M])) を使用し、Prob[F] に対して 1/(1+exp(Lin[M])) を使用します。これは、ちょうど 1-確率[M]。 最も可能性の高い結果は MaxIf(Prob[M]=>M, Prob[F]=>F) となり、Prob[y] の大きい方が最も可能性の高い結果、M または F になります。
あなたの場合、カテゴリカルな結果を扱う場合は、確率に変換するために Lin[Y] 関数を平均する必要があると思います。 確率関数ではなく、データに適合するのは線形関数であるため、線形関数を変換する前に平均を取る必要があります。
結果を連続応答に変更できる場合は、予測式の単純平均を求めるのが簡単です。 モデリング タイプが名目または順序である限り、JMP はそれを離散レベルとして扱い、毎回ロジスティック モデリングを実行します。
連続スケールを使用する必要があったアイデアの 1 つは、特定の領域内の漂白の割合を表すことです。 100 cm^2 (10cmx10cm のパッチ) のサンゴを評価し、約 2cmX3cm (または 6cm^2) が白化していると判断した場合、白化率は 60% になります。 このようにすることで、サンゴ標本がどの程度白化しているかをより正確に表現できる可能性があり、回帰対分類でモデル化できる連続応答が得られます。
お役に立てれば!、
DS
PS ディスカバリーサミットは素晴らしかったです。 たくさんの話が気に入りました。 また、ユーザー入力に基づいてチューニング テーブルを自動的に生成するように GUI を更新しています。 新しいバージョンの準備ができたらお知らせします。 実行したい実行数を使用して空間充填設計を生成することで、プロセスをさらに自動化するのに役立ちます。
Re: モデルの結合あなたの説明から、確率(連続)ではなく予測(離散)を平均したいように思えます。私はそのように行われているのを見たことがありません。モデルからの予測がどの程度堅牢であるかを確認するために設計された等角予測という手法があります。しかし、説明していることは次のようになります。予測するクラスが 2 つあり、それらを連続 0 と 1 としてコード化するとします。モデルが 3 つあるとします。そのうちの 2 つは特定のケースに対して 0 を予測し、1 つは 1 を予測します。次に、「平均化」により 1/3 の結果が得られ、これを 1 が得られる確率とみなすことになると思います。興味深いアイデアですが、そのようなアプローチにどのような統計的根拠があるのかはわかりません。また、バイナリ分類に限定されるようです(あくまで限界ですが)。他にどのような回答が得られるか興味があります。