予測プロファイラーと満足度関数こんにちは、みんな、
JMPプロ16.1.0。
私は予測プロファイラーを使用してモデル調整の検証に取り組んでいますが、望ましさ関数を「騙して」本来の目的ではないことを実行させる方法はないかと考えていました。 望ましさの標準設定では、最大化、ターゲットに一致、最小化、またはなしのオプションがあります。
モデルの調整プロセス中に、トレーニングと検証用の R^2 値と、その 2 つの値の差を記録します。 モデルを調整するときに私が心がけていることの 1 つは、トレーニングと検証の両方で R^2 を最大化するだけでなく、両者の差を最小化するパラメーター設定です。 たとえば、R^2 トレーニングが 0.7 で R^2 検証が 0.25 であるモデルよりも、R^2 トレーニングが 0.4 で R^2 検証が 0.35 であるモデルの方が優れています。 つまり、たとえ小さくても、トレーニング セットと検証セットが互いに近いほど、私の状況ではパフォーマンスが向上する傾向があります。

問題は、予測プロファイラーでは、差を最大化および最小化するようにトレーニングと検証 R^2 の両方を設定すると、プロファイラーは、トレーニング R^2 が 0.6、検証 R^2 が 0.2 程度になる設定を提案することです。 私が求めているのはそうではない。
プロファイラーに本当に実行してもらいたいのは、大きな R を維持しながら差を最小限に抑えるために、できる限り大きく、かつ互いにできるだけ近いトレーニング R^2 と検証 R^2 に収束しようとすることです。 ^2 の値。 残念ながら、重要度 (0 から 1) や目標などを変更しても、私が望んでいることは実際には達成されません。
プロファイラーにこのようなことを実行させる方法のコツを知っている人がいたら、教えていただければ幸いです。 あるいは、それが不可能な場合でも、応答を最大化 (または最小化) しながら 2 つの応答を収束させるようプロファイラーに指示できるのは、非常に優れた新機能かもしれません。
ありがとう!、
DS
データアクセスデータの探索と視覚化マスカスタマイゼーションRe: 予測プロファイラーと満足度関数やあ@ih 、
確かに、お二人のおっしゃるとおり、私はプロセスや決定に対する私の考えや主観的な影響を回避することができず、そのため全体がいくぶん主観的で、誰かの偏見を招きやすいものになっています。 当面の問題に対する特定の人の偏見を制限するために、そのようなものをできるだけ取り除くことが望ましいでしょう。 結局のところ、私たちが追求しているのは最高のパフォーマンスのモデルであって、誰かが最高のパフォーマンスのモデルを望んでいる/望んでいるモデルではありません。
私が生成するモデルの指標として R2 だけを使用しているわけではないことも事実です。 ただし、これは、ブースト ツリーやブートストラップ フォレストなど、一部のモデル フィットの調整プロセスを推進するのに役立つ、より信頼性の高い方法の 1 つです。 これらの方法は両方ともプロセスにある程度のランダム性が含まれており、これは良いことですが、モデルのパラメーターを微調整するのはかなり不便になる可能性があります。パラメーターがいくつかあるため、ハイパーパラメーター空間が非常に大きくなるため、大きな調整テーブルを生成するのは非常に簡単です。 。 このプロセスを少し支援するために、ガウス フィット プラットフォームは反復調整フィット時のパラメーター空間を削減できます。 R2 は、そのプラットフォームで非常に効果的な代替メトリクスとして機能します。
レポート診断用のブートストラップ オプションは、私が日常的に使用している非常に便利なツールです。 また、自動検証アドインの null 因子を使用して、(大規模なセットのうち) どの因子を本当にモデルに保持する必要があるかをテストすることも非常に役立ちます。これは、一種のプレモデリング因子削減手法です。
前述したように、トレーニングと検証の R2 が同様の値に近づくと、モデルのパフォーマンスが向上する傾向があります。 もう 1 つの極端な、高レベルのトレーニングと低レベルの検証では、日常的に全体的なパフォーマンスが大幅に低下します。 望ましさの関数とレベル (またはカットオフ) を設定する場合、それは非常に主観的な部分になる可能性があり、結果に大きな影響を与える可能性があります。 そのプロセスを最適化してくれるアルゴリズムがあればもっと良いでしょう。 もちろん、最終的な決定は、結果が数学的な意味だけでなく物理的な意味を持つかどうかを評価するために、ユーザーが電話をかけることを必要とするものです。 これに例えると、スペクトル データ、たとえばラマン スペクトルや光電子スペクトルなどが考えられます。これらのデータは、多くの場合、ローレンツ関数やガウス関数 (またはその混合) の線の形状を持ちます。 数学的には、関数内ではシグマが 2 乗されるため、負のシグマ (標準偏差) を持つ可能性があります。 しかし、物理的にはこれには何の意味もありません。そのため、測定値が負の標準偏差を持つ物理的根拠がないため、曲線の負のシグマを示唆するアルゴリズムからの適合結果はすべて破棄できます。 同様に、負の R2 値、またはトレーニング セットよりも大きな R2 検証値を持つ R2 値を取得することもできますが、それらのインスタンスは重大な危険信号であるため、さらなる分析では考慮されません。
最終的に、このメソッドはハイパーパラメータ空間を絞り込むために使用され、考えられるすべての組み合わせをテストするために数十万行を含む大規模な調整テーブルを生成するよりも、より安定したグローバル最小値を見つけることがより速く簡単になります。 これは依然として調整パラメータの推奨事項を提供するだけであり、それらの結果が意味があるかどうかを評価する必要があります。 モデルは依然としてランダムな開始条件の下で繰り返し生成されますが、毎回、より安定したパラメーターのセットに絞り込まれます。 このアプローチは、調整用の入力パラメーターが多数ある他のモデリング プラットフォームで役立ちます。
ありがとう!、
DS
Re: 予測プロファイラーと満足度関数同意する@Mark_Bailey 、ここで提供する解決策の一部として自分の考えや見解を回避することはできません。
RSquared に執着しないことをお勧めします。R2 が高いからといってモデルが有用であるとは限りませんし、R2 が低いからといってモデルがその目的を果たさないというわけでもありません。モデルの RMSE がしきい値を下回る必要があると誰かが言うのは正当ですが、R2 が任意の値を超えている必要があると言うのは無意味です。実際、データセットにないものによる測定誤差や変動が多く、R2 が非常に高いものを予測している場合は、問題が発生している可能性があります。
R2 を使用してテストと検証を比較することは確かに有効であり、オーバーフィット モデルの検出に役立ちます。 データセット内に異なる行があるだけで、予想R2は違います。例として、大きなクラスのデータセットを使用し、年齢と体重から線形最小二乗モデルを使用して身長を予測してみます。ここで、JMP Pro を使用している場合は、表示された RSquare 値を右クリックして、ブートストラップを選択します。デフォルトを使用して、結果のテーブルで分布を実行すると、以下のような分布が得られるはずです。JMP Pro をお持ちでない場合は、ランダムな 30 行を含むテーブルのサブセットを取得し、最小二乗法を実行し、R2 を記録し、このプロセスを何度も繰り返すことで、同様の結果を得ることができます。

モデルは変更されておらず、その構築に使用された行だけが変更されていますが、R2 でのそのバリエーションを見てください。したがって、トレーニングと検証の R2 が常に相互に 10% 以内にあることを期待すると、ソリューションに不必要な人為的な制約が課される可能性があります。
スクリプト化されたソリューションを使用して過学習をテストしたい場合は、R2 の差に対する「継続」制限に加えて、Col Shuffle 式を使用し、ランダム化された Y でモデルを当てはめてみるとよいでしょう。 R2 はゼロ近くまで低下します。そうでない場合、モデルはデータ内のランダム ノイズをモデル化できます。
Re: 予測プロファイラーと満足度関数プロセスは客観的です。 決定はそうではありません。
Re: 予測プロファイラーと満足度関数やあ@Mark_Baileyと@ih 、
@Mark_Bailey 、最初の返信は「うまくいく」というものでした。 残念ながら、これは自動化された最適化プロセスではないため、最適な条件を繰り返し見つけることはできません。 それにもかかわらず、各応答の相対的な重要性を手動で変更するのは確かに簡単です。
あなたの提案と@ihさんの提案は、私が最終的にこうしたいと考えていることに沿っていることが証明されています。 満足度関数の手動調整は、手動で数値を変更したり、グラフ内の小さなボックスを移動したりするだけです。 最終目標を達成するための、より自動化され、主観性が少し低くなる方法があればいいのにと思います。
@ih R2 Diffが0.01か0.1かは気にしないというあなたは部分的に正しいですが、R2 Diffが0.1で、トレーニングR2が0.8で検証R2が0.7の場合、R2よりもそれを好むでしょう。トレーニングが 0.31 で検証が 0.3 の場合、差は 0.01 です。 実際には、私のデータ セットは前者よりも後者のように動作する傾向があります。2 つの R2 を 0.8 と 0.7 まで高くできればいいのですが。
2 つの提案を組み合わせると、いろいろと試してみることができますが、もう少し主観的でないことを願っています。
フィードバックをお寄せいただきありがとうございます!、
DS
Re: 予測プロファイラーと満足度関数また、望ましさのグラフの形状を変更して、差が大きいほどペナルティが大きいことを示すこともできます。 中央の値が直線である必要はありません。
注: 関数グラフのプロット上でクリック (Windows) またはコマンド クリック (macOS) を制御し、さまざまなスキームを試しながら値をすばやく変更できます。 望ましさは変更せず、応答レベルのみを変更することをお勧めします。中心値を一方の端に移動して、非線形にします。
Re: 予測プロファイラーと満足度関数R2 の差が 0.01 であるか 0.1 であるかは気にしないと思いますが、あるしきい値を超えて増加するにつれて、徐々にそれを気にするようになります。 R2 の差を、特定の値以下では平坦で、その制限を超えると徐々に減少する式にしてみることもできますし、これを説明する満足度関数を設定することもできます。私は多変量モデルの T2 メトリックを使用して後者を行うことがよくあります。この例は、以下にリンクされているビデオの 16:30 あたりまでスキップしてご覧いただけます。
多変量モデルの最適化: データ収集から最適条件およびスコアリング モデルまで (2021-US-45MP-927)
Re: 予測プロファイラーと満足度関数プロファイラーと満足度関数を正しく使用しています。 desiriability = (0,1) を使用するのは間違いではありませんが、最大化に 1、差分に 2 などの値を使用して、希望の値に近づくかどうかを確認してみるとよいでしょう。 関数の定義 (制限、重要性) は、プロファイラーに何を求めているかを伝えるための鍵となります。
とはいえ、欲しいものが必ず手に入るという保証はありません。