第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

給定 N 個(gè)元素的列表,如何確定按比例遞減的權(quán)重?

給定 N 個(gè)元素的列表,如何確定按比例遞減的權(quán)重?

胡說(shuō)叔叔 2022-05-24 09:23:27
我有一個(gè)由 N 個(gè)元素組成的列表。就上下文而言,我正在進(jìn)行時(shí)間序列預(yù)測(cè),并且 - 一旦做出預(yù)測(cè) - 希望對(duì)開(kāi)始時(shí)所做的預(yù)測(cè)進(jìn)行加權(quán),使其比后來(lái)的預(yù)測(cè)更重要。這很有用,因?yàn)楫?dāng)我計(jì)算性能錯(cuò)誤分?jǐn)?shù) ( MAPE ) 時(shí),該分?jǐn)?shù)將代表每個(gè)項(xiàng)目的預(yù)測(cè),以及基于我想要識(shí)別好模型和壞模型的方式。我應(yīng)該如何更新我現(xiàn)有的函數(shù)以獲取任何元素列表 (N) 以生成這些穩(wěn)步下降的權(quán)重?這是我自己提出的功能。它適用于類似的例子compute_equal_perc(5),但不適用于其他組合......def compute_equal_perc(rng):    perc_allocation = []    equal_perc = 1 / rng    half_rng = rng / 2    step_val = equal_perc / (rng - 1)    print(step_val)    for x in [v for v in range(0, rng)]:        if x == int(half_rng):            perc_allocation.append(equal_perc)        elif x < int(half_rng):            diff_plus = ((abs(int(half_rng) - x) * step_val)) + equal_perc            perc_allocation.append(round(float(diff_plus), 3))        elif x >= int(half_rng):            diff_minus = equal_perc - ((abs(int(half_rng) - x) * step_val))            perc_allocation.append(round(float(diff_minus), 3))    return perc_allocation對(duì)于compute_equal_perc(5),我得到的輸出是:[0.3, 0.25, 0.2, 0.15, 0.1]此sum序列的 應(yīng)始終等于 1,并且值之間的增量應(yīng)始終相等。
查看完整描述

1 回答

?
qq_花開(kāi)花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

這可以通過(guò)應(yīng)用基本代數(shù)來(lái)解決。算術(shù)序列定義為

A[i] = a + b*i, for i = 0, 1, 2, 3, ... where a is the initial term

元素序列 0 到 n 的總和是

S = (A[0] + A[n]) * (n+1) / 2

換句話說(shuō),第一個(gè)和列表項(xiàng)的總和乘以一半的項(xiàng)數(shù)。

既然你知道Sn,你只需要再?zèng)Q定一個(gè)“傳播”因子來(lái)生成你的序列。平均元素必須是1/n- 這是您的算法錯(cuò)誤的地方,因?yàn)樗鼤?huì)為偶數(shù)的n.


您的代碼在這組語(yǔ)句中失?。?/p>

half_rng = rng / 2
step_val = equal_perc / (rng - 1)
# comparing x to int(half_rng)

如果rng是偶數(shù),則將平均值分配給 position rng/2,從而為您提供諸如 4 個(gè)元素的列表:

[0.417, 0.333, 0.25, 0.167]

這意味著您有兩個(gè)大于所需平均值的元素,只有一個(gè)小于所需的平均值,這迫使總和超過(guò) 1.0。相反,當(dāng)你有偶數(shù)個(gè)元素時(shí),你必須讓均值成為一個(gè)“幻影”中間元素,并在它周圍采取半步。讓我們用分?jǐn)?shù)來(lái)看看:你已經(jīng)有了

[5/12, 4/12, 3/12, 2/12]

您的差異是 1/12 ... 1 / (n * (n-1))...您需要將這些值降低半步。相反,您選擇的散布 (1/12) 的解決方案將開(kāi)始半步:從每個(gè)元素中減去 1/24。

[9/24, 7/24, 5/24, 3/24]

你也可以用一個(gè)簡(jiǎn)單的線性因子來(lái)改變你的步數(shù)。用簡(jiǎn)單的整數(shù)決定你想要的元素的比率,例如5:4:3:2,然后從 5+4+3+2 的明顯總和生成你的權(quán)重:

[5/14, 4/14, 3/14, 2/14]

請(qǐng)注意,這適用于任何整數(shù)的算術(shù)序列,這是選擇“傳播”的另一種方式。如果你使用4:3:2:1你會(huì)得到

[4/10, 3/10, 2/10, 1/10]

或者您可以將它們更緊密地聚集在一起,例如,13:12:11:10

[13/46, 12/46, 11/46, 10/46]

所以......選擇你想要的傳播并簡(jiǎn)化你的代碼以利用它。


查看完整回答
反對(duì) 回復(fù) 2022-05-24
  • 1 回答
  • 0 關(guān)注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)