JMP サポート ベクター マシン (SVM) プラットフォームRで行ったSVMモデルを再作成しようとしていますが、現在はJMP組み込みSVMプラットフォームを使用しています。 入力パラメータのスケーリングやセンタリングを行わずに JMP SVM を実行することはできますか? 私は化学混合物成分を重量分数で表現しているので、それらはすべて同じ単位 (wt.fraction) を持っています。 また、JMP SVM は C とガンマを最適化できるのでしょうか、それとも R で行う必要があるのでしょうか? JMP Pro 15.0 を使用しています。
Re: JMP サポート ベクター マシン (SVM) プラットフォーム言えません。
柔軟な補間器であるため、Neural を使用しました。 それは私の目的を果たしました。 この場合、または他の一般的な場合に最適なインターポレーターであることを意味するつもりはありませんでした。 ご利益を頂きました。 他の補間器は考慮しませんでした。 この場合、別の方がうまくいったかもしれませんが、この結果は「gut genug」でした。
最適なモデルの選択は常に異なります。 それは「プラグ アンド チャグ」ではありません。
予測モデリングの多くのニッチには、お気に入りのモデルがあり、他のモデルに目を向けることはありません。 モデルが最初にトレーニングされたときは、それが最良のモデルだったのかもしれません。 まあ、データは変化するので、予測モデルも変化するはずです。 データの特性によって最適なモデル タイプの選択が決まりますが、データの特性は時間とともに変化します。 そのため、データが変更されたときにモデルを更新する必要があり、おそらくモデルの種類の選択も再評価する必要があります。 (今日はアンサンブル モデルには立ち入りません。)
この議論における質問への回答では、さまざまな状況におけるすべてのタイプの予測モデルの長所と短所をすべて説明することはできません。 優れたモデルはありません。 「統計学習の要素」を読むことをお勧めします。
Re: JMP サポート ベクター マシン (SVM) プラットフォーム確かに、NN プラットフォームを使用してコストとガンマの最適値を推定し、for ループで使用した可能な組み合わせを考慮して最適なモデル適合を達成しましたよね?
私の質問は、最適な値を見つけるためにガウス過程よりも NN プラットフォームを使用する利点があるかどうかについてです。Re: JMP サポート ベクター マシン (SVM) プラットフォーム質問は、ニューラル フィッティング プロセスのハイパーパラメーターに関するものでした。 別のプラットフォームのハイパーパラメーターからの結果のニューラル モデルは使用していませんでした。
Re: JMP サポート ベクター マシン (SVM) プラットフォームやあ@マークベイリー、
コストとガンマの最適な設定を見つけるために NN プラットフォームを使用する利点はありますか?
最適なハイパーパラメーター設定を見つけるためにデータを使って同様のことを行いますが、NN を使用して最適なものを見つけようとする代わりに、Gaussian Process プラットフォームを使用します。 2 つの「最適な」オプションのそれぞれからの適合を比較したところ、ガウス過程からの適合は 0.25 対 NN 法の 0.275 の誤分類率でした。

ちょっと興味があるんだけど。
ありがとう!、
DS
Re: JMP サポート ベクター マシン (SVM) プラットフォームJMP Pro 15.0.Try Machines (SVM) も使用しています。ありがとうございます。Re: JMP サポート ベクター マシン (SVM) プラットフォーム確率のしきい値を常に 0.5 に保つにはどうすればよいですか?
Validation Method("KFold", 10) を使用してコストとガンマの最適化を実行すると、常に調整されたしきい値を使用して Validation Misclassification が計算されるため、Conditional Validation Misclassification Rate が計算されます。添付ファイルを参照してください。 最適化しようとしていない 3 番目のパラメーター Threshold があるため、最適なコストとガンマを選択できません。
Re: JMP サポート ベクター マシン (SVM) プラットフォーム私も少し変えました。 主に個人的なスタイルの問題です。
Names Default to Here( 1 );
// use a small example
data = Open( "$SAMPLE_DATA/Big Class.jmp" );
// launch SVM platform
svm = data << Support Vector Machines(
Y( :age ),
X( :height, :weight )
);
// iterate over a range of hyper-parameters
For( cost = 0.5, cost <= 5, cost += 0.5,
For( gamma = 0.1, gamma <= 1, gamma += 0.1,
svm << Fit(
Kernel Function( "Radial Basis Function" ),
Gamma( gamma ),
Cost( cost ),
Validation Method( "None" )
);
);
);
// separate parameters and performance in a new table
results = Report( svm )["Model Comparison"][TableBox(1)] << Make Into Data Table;
// fit interpolator for profiling
results << Neural(
Y( :Training Misclassification Rate ),
X( :Cost, :Gamma ),
Informative Missing( 0 ),
Validation Method( "Holdback", 0.3333 ),
Fit(
NTanH( 3 ),
Profiler(
1,
Confidence Intervals( 1 ),
Term Value(
Cost( 2.75, Lock( 0 ), Show( 1 ) ),
Gamma( 1, Lock( 0 ), Show( 1 ) )
)
),
Plot Actual by Predicted( 1 ),
Plot Residual by Predicted( 1 )
)
);
しかし、分類ミス率がハイパーパラメーターにどのように依存するかを理解するために、別のステップも追加しました。 モデルの比較からテーブルを保存し、単純な (しかし適切な) ニューラル ネットワークに適合させます。 プロファイラーを使用して、適切な値を見つけて理解することができます。 たとえば、高いガンマと中程度のコストを使用して、コストを上げてもほとんど改善されません。
Re: JMP サポート ベクター マシン (SVM) プラットフォーム私はそれを少し変更しました、そしてそれはうまくいきます、ありがとう!
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gam = .1;
cos = .5;
svm = dt << Support Vector Machines(
Y( :age ),
X( :height, :weight ),
Fit( Kernel Function( "Radial Basis Function" ), Gamma( gam ), Cost( cos ), Validation Method( "None" ), )
);
For( i = 1, i <= 10, i++,
For( ii = 1, ii <= 10, ii++,
svm << Fit(
Kernel Function( "Radial Basis Function" ),
Gamma( gam ),
Cost( cos ),
Validation Method( "None" )
);
gam = gam + .1;
);
cos = cos + .5;
);
Re: JMP サポート ベクター マシン (SVM) プラットフォーム次のようなエラーが発生します。
'Assign' のアクセスまたは評価で L 値ではないオブジェクトに代入しようとしています , dt << obj = /*###*/Support Vector Machines(
Y( :年齢 ),
X( :身長, :体重 ),
フィット(
カーネル関数( "放射基底関数" ),
ガンマ( gam )、
コスト( cos )、
検証方法( "なし" )
)
) /*###*/
私は何を間違えましたか?Re: JMP サポート ベクター マシン (SVM) プラットフォーム以下は、一連のパラメーターを反復処理する簡単な例です。 精巧さはなく、ブルートフォースだけです。
レポートが表示された後、最適なモデルがレポートの比較に示されることに注意してください。
dt=Open("$SAMPLE_DATA/Big Class.jmp")
gam=.1;
cos=.5;
dt<<OBJ></OBJ>Re: JMP サポート ベクター マシン (SVM) プラットフォームセンタリングとスケーリングをオフにする方法がわかりません。 すべての入力が同じスケールにある場合、センタリングとスケーリングによって実際にそれが変わることはありません。 モデルの「パラメーター」に影響しますが、結果のモデルには影響しません。 言い換えれば、それらが 0 から 1 のスケールであるか、-1 から +1 のスケールであるかは関係ありません。 X 間の関係は変わりません。
C とガンマについては、JMP のドキュメントから:
ヒント: 最適なモデルを見つけるには、さまざまなカーネル関数とパラメーター値を当てはめ、モデル比較レポートを使用します。
そのため、JMP はこれらのパラメータを最適化しません。 これを行うために JMP スクリプトを作成することを想像することもできますが、C とガンマの複数の組み合わせに対して SVM を適合させる必要があるため、スクリプトの実行には時間がかかる場合があります。モデル構築)「最適」を見つけます。
Re: JMP サポート ベクター マシン (SVM) プラットフォームセンタリングとスケーリングをオフにする方法がわかりません。すべての入力が同じスケールにある場合、センタリングとスケーリングによって実際には変化しません。これはモデルの「パラメータ」に影響しますが、結果のモデルには影響しません。言い換えれば、0 ~ 1 のスケールであっても、-1 ~ +1 のスケールであっても問題ありません。 X 間の関係は変わりません。
C と Gamma については、JMP ドキュメントから:
ヒント: 最適なモデルを見つけるには、カーネル関数とパラメーター値の範囲を適合させ、モデル比較レポートを使用します。
したがって、JMP はこれらのパラメータを最適化しません。これを行うために JMP スクリプトを作成することも想像できますが、C とガンマの複数の組み合わせに SVM を適合させる必要があるため、スクリプトの実行には時間がかかる可能性があり、その後も何らかの形式の補間 (またはモデル構築) を使って「最適」を見つけます。