問題タブ [weighted]
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.
php - 配列または配列の加重シャッフル?
ネストされた配列の重みを使用して配列をシャッフルする優れたアルゴリズムは何ですか?
例:
配列をランダムにシャッフルしたいが、rank
値を重みにしたい。したがって、数字のランクが低い人は、リストの一番上にいる可能性が高くなります。
配列を反復処理したり、選択した配列を引き出したりするなど、いくつかのことを試しましたmt_rand(mt_rand(0,$value),$value)
が、正しい軌道に乗っているとは思いません...
matlab - MATLAB で非常に大きな配列からインデックスによって重み付けされた n 個の要素を選択する
非常に大きな正方行列 M(i, j) があり、行列の各要素が加重ランダム選択で要素が選択される確率を表すとします。行列から n 個の要素を ((i, j) インデックスで) 置換してサンプリングする必要があります。重みは、メイン ループの反復ごとに変更されます。
現在、私は次のようなものを使用しています:
しかし、これはかなり不格好な方法のようで、for ループのために非常に長い時間がかかります。より効率的な方法はありますか?おそらく、何らかの方法で行列をベクトル化したら?
*編集統計ツールボックスへのアクセス権がないことに言及する必要があります
よろしくお願いします。
r - 重み付けされたピアソンの相関?
私は、各行 (2396) が 34 の連続する時間セグメントからなる個別の状況を表す2396x34 double matrix
という名前を付けました。y
また、34 の連続する時間セグメントの 1 つの状況を表すnumeric[34]
名前もあります。x
y
現在、次のx
ように各行間の相関を計算しています。
crs[,2] <- cor(t(y),x)
cor
ここで必要なのは、上記のステートメントの関数を加重相関に置き換えることです。重みベクトルxy.wt
は 34 要素の長さであるため、34 の連続する時間セグメントのそれぞれに異なる重みを割り当てることができます。
関数を見つけて、最初にデータを取得すれば、Weighted Covariance Matrix
関数と同じように機能するはずだと考えました。実際、関数が相関行列を返すように指定することもできます。残念ながら、2 つの変数 (と) を別々に指定できないため、同じ方法で使用できるようには見えません。cov.wt
scale
cor
x
y
速度をあまり犠牲にすることなく、説明した方法で加重相関を取得する方法を知っている人はいますか?
編集:おそらく、私が探しているのと同じ結果を得るためにy
、関数の前にいくつかの数学関数を適用できます。cor
たぶん、各要素に を掛けたらxy.wt/sum(xy.wt)
?
編集 #2パッケージに別の関数corr
が見つかりました。boot
これも私が必要とするものではありませんが、より近いです。
編集 #3 これは、私が扱っているデータのタイプを生成するためのコードです。
algorithm - 任意の数のパラメーターを受け入れる get / set 関数を使用してツリーを作成する
get と set の 2 つの関数を作成しようとしています。どちらも任意の数のパラメーター (4 としましょう) を受け入れます。set 関数は配列を受け取って memcached に設定し、get 関数は memcached から配列を取得して返します。
$a には 5 つの可能性、$b には 10 の可能性、$c には 100 の可能性、$d には 1000 の可能性があるとします。
ひねり: $a のみが保証されますが、(渡されたデータに基づいて) 取得する応答が常に存在する必要があります。また、特定の $a、$b、および $c について、これら 3 つのパラメーターすべてに一致する設定がない場合、(ツリーの意味で) 「上に」移動し、最も近いものを見つけるケースを処理できる必要があります。パラメータの優先度に基づいて一致します)。
現在、パラメータに優先順位が付けられ、重みが割り当てられた何らかの形式の重み付きツリーを構築することを考えています (たとえば、$a の優先度は 100、$b の優先度は 10、$c の優先度は 90、$d の優先度は 50)。 .
コードは言語に依存せず、これにアプローチする方法 (最も効果的/効率的) についてのアイデアを探しています。前もって感謝します!
php - シンプルな加重リンクのローテーション?
現在、キャンペーンのランディング ページを分割して、次のスクリプトに送信してテストしています。
最初の LP を 75% の確率で表示したい場合、どうすればそれを実現できますか? 最初のリンクをあと 2 回複製するだけでうまくいきますか、それとももっと良い方法がありますか?
r - 加重平均と標準偏差の計算
私は時系列を持っていx_0 ... x_t
ます。データの指数加重分散を計算したいと思います。あれは:
参照: http://en.wikipedia.org/wiki/Weighted_mean#Weighted_sample_variance
目標は、基本的に、時間的にさかのぼる観測を重み付けすることです。これは実装が非常に簡単ですが、できるだけ多くの組み込み機能を使用したいと考えています。これがRで何に対応するか知っている人はいますか?
ありがとう
c# - 常に変化するパラメータに基づいてソートする必要があるオブジェクトのコレクションをソートする方法
加重値を使用してリストを効果的にソートする方法を探しています。
各アイテムには、ID、名前、およびファイルパスがあります。各アイテムには、パーセンテージが割り当てられた値のリストもあり、各値との関連性を示しています。
リストの一番上にあるアイテムが現在のパラメーターに最も関連するアイテムになるように、リストを並べ替える必要があります。
まあ言ってみれば、
項目 1:
- A: 50、B: 30、C: 20、D: 10
- X:50、Z:20
項目 2:
- A:100、B:0、C:0、D:0
- X:0、Z:100
私のパラメータは A と Z です。最も関連性の高いアイテムであるため、明らかにアイテム 2 がリストの一番上にあるはずです。しかし、これを実装するにはどうすればよいでしょうか。
おまけ: わずかなランダム化もできるといいのですが、毎回決定的な関連アイテムが提供されるのは望ましくありません。
ありがとう
ruby - ユーザー間の非二部非加重最大マッチング
状況: ユーザーが、プロジェクトの可能なパートナーとして他の複数のユーザーを選択します。ユーザーは、自分が選んだユーザーを別のユーザーより優先することはありません (つまり、リスト内のユーザーはパートナーとして十分です)。例:
実際のリストはもっと大きくなります。
私の質問: ユーザーとその優先パートナー (上記のリストなど) の配列が与えられた場合、最終的なパートナー ペアの配列を生成したいと考えています。最終的にパートナーになるペアの数を最大化する必要があります (できるだけ多くの人をペアにしたい)。
これは私が必要だと思うアルゴリズムです: Edmonds's matching algorithmですが、私は数学のバックグラウンドを持っていないため、解釈と実装に問題があります。
どんな助けでも大歓迎です。前もって感謝します。
r - Rの「加重」回帰
「加重」回帰と呼ばれるものを実行するために、以下のようなスクリプトを作成しました。
temp.df
では、各行に重みがあることがわかります。つまり、合計 1178 のサンプルがありますが、同じbp
との行でage
は、それらは 1 行にマージされ、weight
列に表示されます。
weight
関数でパラメーターを使用した後、データフレームが「展開」されlm
ている別のデータフレームと結果をクロスチェックします。temp.df
しかしlm
、2つのデータフレームの出力が異なることがわかりました。
weight
関数内のパラメーターを誤って解釈しましたか?lm
のように提示されたデータセットに対して回帰を適切に (つまり、データフレームを手動で拡張せずに) 実行する方法を誰かに教えてもらえますtemp.df
か? ありがとう。
c - すべての m-subsequence の最大加重合計を見つける
次の問題を解決しようとしていました。
私が以前に行った最も近い問題は Kadane のアルゴリズムであるため、「ここで終わる最大」アプローチを試みた結果、次の DP ベースのプログラムが作成されました。アイデアは、問題をより小さな同一の問題 (通常の DP) に分割することです。
しかし、このプログラムは指定された制限時間内に動作しません (スペース制限は問題ありません)。この問題で使用するアルゴリズムのヒントを教えてください。
編集。
コードの説明は次のとおりです: Kadane の場合と同様に、私のアイデアは、特定の C[i] を調べ、次に C[i] で終わる m サブシーケンスの最大加重合計を取り、最後にすべての最大値を取ることです。すべての i にわたるそのような値。これで答えが得られます。ここで、C[i] で終わる m サブシーケンスを見て、最大加重合計を取る場合、これは C[0] に含まれる (m-1) サブシーケンスの最大加重合計を取るのと同じであることに注意してください。 C[i-1]に。そして、これは元の問題と同じ小さな問題です。そこで、再帰を使用します。関数の二重呼び出しを避けるために、値 f[i][j] のテーブルを作成します。ここで、f[ii][j] は、n を i に置き換え、m を に置き換えた問題と同じ問題の答えです。 j. つまり、f[i][j] のテーブルを作成し、最終的な答えは f[n-1][m] です (つまり、メモ化を使用します)。ここで、エントリ f[i][j] を計算するには前の列のみが必要であることに注意してください。配列のみを保持するだけで十分です。これらの配列は「a」と「b」です。
長くなってすみません、仕方ありません。:(