問題タブ [generalization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
228 参照

statistics - 遺伝的アルゴリズムを新しいデータに一般化できません

一定期間 (5 年間) にわたって少数の株式 (4) をモデル化するための GA を作成しました。GA がトレーニング データの最適な解をどれだけ迅速に見つけられるかは印象的ですが、これは主にトレーニング フェーズでオーバーフィットする傾向があるためであることも認識しています。

ただし、いくつかの予防策を講じて、同じ期間の一連の未確認のテスト株について何らかの予測を得ることができると考えていました.

私が取った予防措置の 1 つは、同じ日に複数の株を購入できる場合、GA はリストから 1 つだけを購入し、これをランダムに選択することでした。このランダム性は、過適合を避けるのに役立つと思いましたか?

オーバーフィッティングがまだ発生している場合でも、GA の初期世代にはまだオーバーフィッティングの機会がないため、GA が存在しないはずではありませんか?

注記として、私は、2 つの異なるデータセットに対して最適な出力を生成する完全なパラメーターのセットが存在しないことを示す (私が信じている) ノーフリーランチ定理を認識しています。これをさらに進めると、この無料ランチ定理も一般化を禁止するのでしょうか?

下のグラフはこれを示しています。→青線がGA出力です。->赤い線はトレーニング データ (前述のランダム性のためにわずかに異なります) -> 黄色い線は、一般化を示さない頑固なテスト データです。実際、これは私が作成できる最もお世辞のグラフです..

y 軸は利益、x 軸はそれぞれの利益 (y 軸上) に従って最悪から最良 (左から右) にソートされたトレーディング戦略です。 ここに画像の説明を入力

私がこれまでに受け取った最良のアドバイスのいくつか (seaotternerd に感謝) は、以前の世代に焦点を当て、トレーニング例の数を増やすことです。以下のグラフには、4 つではなく 12 のトレーニング ストックがあり、(1,000 ではなく) 最初の 200 世代のみが表示されています。繰り返しますが、これは私が作成できる最も魅力的なチャートです。今回は中程度の選択圧力です。確かに見た目は少し良くなりましたが、素晴らしいものでもありません。赤線はテストデータです。

ここに画像の説明を入力

0 投票する
3 に答える
568 参照

java - 同様のオブジェクト属性を取得するための一般化された方法

フィールドとしていくつかの配列を持つオブジェクトがあります。クラスはおおよそ次のようになります。

すべての請求書タイプには、相互マーカー インターフェイスInvoicesがあります。
請求書に対して別のメソッドを呼び出すには、すべての請求書を取得する必要があります。

問題は、すべての請求書に共通のマーカー インターフェイスしかないことです。メソッドgetCustomerID()は、相互インターフェースまたはクラスによって定義されていません。これは、特定の仕様のために変更できない動作です。

for-each-loop 内のコードの繰り返しは、私を悩ませているものです。4 つの異なる配列内のすべての請求書オブジェクトに対してまったく同じことを行う必要があります。したがって、4 つの for-each ループがコードを不必要に肥大化させます。

一般的な (プライベート) メソッドを作成する方法はありますか? 1つのアイデアは次のとおりです。

しかし、クラスInvoiceはメソッドgetCusomterId()を認識していないため、これには 4 つの instanceof チェックが必要になります。したがって、私は何も得られません。メソッドにはまだ繰り返しが含まれます。

この問題を一般化するためのあらゆる可能な解決策に感謝します!

0 投票する
2 に答える
619 参照

c# - インターフェイスクラスの正しい汎化関連か

タイトルが言ったように、これが良いプログラミング/設計方法であるかどうかを尋ねています。

私はクラスを取得しました。これは単なるインターフェイスにすることができます(1つの抽象メソッドといくつかの属性のみを取得しました)

私の場合の例として、これは似ています:

トラック、自動車、モトなどのメイン クラス Car を取得し、抽象メソッド void move() を持っています。

CAR をインターフェースとして設計し、他の具象クラスを CAR クラスの一般化として設計できますか? それともこれは間違っていますか?

その後

正しいでしょうか?