機器學習實戰項目中,回歸與分類模型中該如何科學定義目標變量Y?

前言

在機器學習項目里,目標變量 (Y) 的定義決定了你能解答什么問題,以及模型能給業務帶來什么價值。選擇不當不僅可能導致模型誤差大、偏差嚴重,還可能讓業務決策方向偏離。

本文分兩大場景:

  1. 供應鏈項目中的 銷量預測(回歸問題)
  2. 營銷項目中的 高潛力回購用戶預測(分類問題)

本篇將針對每個場景,給出多種 Y 的設定方案,是比較 通俗易懂的方案,每種方案的優缺點與適用情形;然后給出詳盡的 特征工程流程與技巧


1 場景一:銷量預測回歸模型

1.1 多種 Y 的設定方案(目標變量)

以下是常見的不同定義方式:

方案編號Y 定義數學表達優點風險 / 注意點典型適用情境
方案 A1:原始銷量當期銷量數值Yt=Salest Y_t = Sales_t Yt?=Salest?易解釋;直接與庫存/補貨/生產規劃對應分布可能有長尾,極端值/促銷衰退期/零銷量期噪聲大;誤差度量敏感產品穩定、歷史銷量記錄豐富、促銷波動較小
方案 A2:對數變換后的銷量用 log 或類似變換平滑銷量Yt=log?(Salest+c) Y_t = \log(Sales_t + c) Yt?=log(Salest?+c)(例如 (c = 1) 平滑零銷量)縮小長尾影響;使誤差分布近似正態;對比例誤差敏感性降低反變換后解釋比較復雜;零或負銷量需處理;業務方可能不喜歡“對數銷量”這個概念零銷量/低銷量很多,銷量跨度大(small SKUs + large SKUs 混在一起)
方案 A3:環比/同比增長率與上期/同期相比的變化Yt=SalestSalest?1?1 Y_t = \frac{Sales_t}{Sales_{t-1}} - 1 Yt?=Salest?1?Salest???1 或者 Yt=SalestSalest?P?1 Y_t = \frac{Sales_t}{Sales_{t - P}} - 1 Yt?=Salest?P?Salest???1(P 為周期,如 52 周、12 月)弱化趨勢與季節性影響;更關注變化/促銷/市場事件的影響增長率極端值問題(基期小或為零);對業務解釋性下降;未來預測可能不穩定如果你的業務關心“相對提升”多于“絕對銷量”,如促銷、預算評估、增長指標
方案 A4:差分銷量(絕對變化量)本期銷量減去上期銷量Yt=Salest?Salest?1 Y_t = Sales_t - Sales_{t-1} Yt?=Salest??Salest?1?強調絕對變化;可捕捉向上的“需求增量”或下滑;便于用差分方法處理非平穩性噪聲大;上下波動可能互相抵消;趨勢 /季節性仍可能殘留;如果滯后太短可能誤導快消品、促銷頻繁的品類;補貨周期短
方案 A5:未來窗口內銷量總和預測未來 (k) 個時間單位(天/周/月)之和Yt=∑i=1kSalest+i Y_t = \sum_{i=1}^k Sales_{t+i} Yt?=i=1k?Salest+i?與業務補貨/生產周期一致;可適用于中短期計劃;減少每天的波動窗口大小敏感;若窗口大,預測延遲;特征滯后要處理好;可能 data leakage 問題補貨周期為月或數周的供應鏈;對于季節性商品或物流周期長的情況

1.2 特征工程教程

為不同 Y 定義準備特征,下面是一個詳細流程與技巧,包含公式和步驟:

1.2.1 步驟 1:數據準備 &清洗

  • 收集歷史銷量數據 (Sales_t),包括產品/SKU/店鋪/區域維度
  • 收集與銷量可能相關的輔助變量:價格、促銷活動、節假日、天氣、庫存水平、廣告投放 etc.
  • 處理缺失值與零銷量:如果大量零銷量,可能需要平滑(如對數變換 + 常數),或考慮零銷量與非零銷量分開建模

1.2.2 步驟 2:時間序列特征

為捕捉過去銷量對未來的影響,常用以下特征:

  • 滯后銷量:

    Xlag(k)=Salest?k X_{lag(k)} = Sales_{t-k} Xlag(k)?=Salest?k?

    可以取多個滯后值 ( k=1,2,3,\dots )

  • 滾動統計(滑動窗口):

    Xma(k)=1k∑i=1kSalest?i X_{ma(k)} = \frac{1}{k} \sum_{i=1}^k Sales_{t-i} Xma(k)?=k1?i=1k?Salest?i?

  • 滾動最大/最小/標準差:

    Xstd(k)=1k∑i=1k(Salest?i?Xma(k))2 X_{std(k)} = \sqrt{\frac{1}{k} \sum_{i=1}^k (Sales_{t-i} - X_{ma(k)})^2} Xstd(k)?=k1?i=1k?(Salest?i??Xma(k)?)2?

  • 周期性 / 日期特征:

    • 日、周、月指標

    • 周幾 / 月份 /季度 one-hot 編碼

    • 年/季節周期正余弦編碼(sine / cosine):

      Xsin=sin?(2π?dayOfYear365),Xcos=cos?(2π?dayOfYear365) X_{sin} = \sin\left(\frac{2\pi \cdot dayOfYear}{365}\right), \quad X_{cos} = \cos\left(\frac{2\pi \cdot dayOfYear}{365}\right) Xsin?=sin(3652π?dayOfYear?),Xcos?=cos(3652π?dayOfYear?)

1.2.3 步驟 3:促銷、價格與市場活動特征

  • 折扣率/促銷強度:

    DiscountRatet=Priceoriginal,t?Pricediscounted,tPriceoriginal,t DiscountRate_t = \frac{Price_{\text{original}, t} - Price_{\text{discounted}, t}}{Price_{\text{original}, t}} DiscountRatet?=Priceoriginal,t?Priceoriginal,t??Pricediscounted,t??

  • 是否有促銷事件:

    Binary 特征 ( Promo_t = 1 ) if 有活動 else 0

  • 廣告投入 /市場預算 /競爭者活動等

1.2.4 步驟 4:外部變量

  • 天氣(溫度、降水、節氣 etc.)
  • 節假日/公共假期前后影響
  • 宏觀經濟指標(若適用,如零售業可能關心消費者購買力、人口變動 etc.)

1.2.5 步驟 5:處理趨勢與平穩性

  • 若銷量序列整體趨勢明顯,可用差分(如一階差分):

    ΔSalest=Salest?Salest?1 \Delta Sales_t = Sales_t - Sales_{t-1} ΔSalest?=Salest??Salest?1?

  • 或者進行去趨勢 + 季節性分解 (seasonal decomposition)

1.2.6 步驟 6:劃分訓練 /驗證與防止數據泄露

  • 用時間切片(time-based split):訓練集的時間晚于驗證集要早,未來窗口不能被提前泄露
  • 若用未來窗口預測 ∑i=1kSalest+i\sum_{i=1}^k Sales_{t+i}i=1k?Salest+i?,要確保特征都是在時間 ( t ) 或之前的,不含未來信息

1.2.7 步驟 7:模型指標與評估

  • 常用指標:MAE(平均絕對誤差)、RMSE、MAPE(平均絕對百分比誤差)
  • 如果對大額/高銷量 SKU 更在乎,可以加權評估(按銷量權重或按利潤權重)
  • 做殘差分析,檢查季節或促銷期預測誤差是否系統性偏高或低

2 場景二:營銷中高潛力回購用戶分類模型

2.1 多種 Y=1 定義方案(“會回購”的客戶)

下面是常見的不同方式來定義 “回購”/“高潛力回購用戶”:

方案編號Y = 1 的定義優點風險 / 注意點
方案 B1:未來窗口內至少一次回購客戶在基準時間 (T_0) 之后的未來窗口大小為 (W)(如 3 個月/6 個月)內有一次或以上購買定義明確;多數客戶樣本可獲取;易于計算與解釋窗口選得太短可能漏掉潛在的慢購物客;太長可能標簽延遲;樣本不平衡;業務方可能要求頻次或金額更高的“回購”
方案 B2:回購頻次閾值在 (W) 窗口內購買次數 ≥ (K)(例如 ≥ 2 次/3 次等)能區分更忠誠/高頻客戶;營銷資源更值得投入在這些客戶上如果 K 閾值太高客戶少;頻次受產品類別/客單價影響;可能忽略高價值但少次購買者
方案 B3:回購金額閾值在未來窗口內總消費金額 ≥ 閾值 (M)聚焦高價值用戶;對營收貢獻重;能和銷售/利潤目標對齊金額閾值敏感;受品類價格變動的影響;少次但金額高 vs 多次但金額低可能被偏向;業務方可能難設置合理閾值
方案 B4:回購速度/間隔限制在未來窗口內有回購,且首次到回購間隔 ≤ 某閾值 (D)(例如 ≤ 30 天/90 天等)更能捕捉“活躍度高的潛力客戶”;早期反應快的用戶;有利于短期營銷策略若客戶自然購買周期長的產品,可能誤判;間隔的閾值需要業務與數據雙重調優;可能忽略穩定但周期長的復購用戶
方案 B5:組合定義比如頻次 + 金額 + 時間間隔綜合規則更精細區分;高潛力用戶定義更符合業務標準;營銷投入回報率可能更高定義復雜,標簽樣本可能很少;解釋與溝通成本高;可能會忽略某些邊緣客戶;需要進行閾值調優與驗證

2.2. 特征工程流程

2.2.1 步驟 1:樣本集定義 &標簽生成

  • 確定基準時間 (T_0)(cut-off date),所有 “潛在客戶” 的歷史行為均在≤T0\le T_0T0?時間內
  • 確定未來窗口大小 ( W ) 用于標簽定義
  • 根據所選方案(B1~B5),為每個客戶在訓練集中生成標簽 Y∈{0,1}Y \in \{0,1\}Y{0,1}

2.2.2 步驟 2:客戶歷史行為特征(基于 ( \le T_0 ) 時間段)

  • RFM 特征

    • Recency: 最近一次購買到 (T_0) 的時間間隔
      Ri=T0?tlast?purchase?by?customer?i R_i = T_0 - t_{\text{last purchase by customer i}} Ri?=T0??tlast?purchase?by?customer?i?

    • Frequency: 在歷史期內購買次數
      Fi=Norders?by?i?in?history F_i = N_{\text{orders by i in history}} Fi?=Norders?by?i?in?history?

    • Monetary: 歷史期總消費金額
      Mi=∑orders≤T0Amount M_i = \sum_{orders \le T_0} Amount Mi?=ordersT0??Amount

  • 購買間隔特征

    • 平均購買間隔(如果有多次購買)
      Δtˉi=1Fi?1∑j=2Fi(tj?tj?1)if?Fi≥2 \bar{\Delta t}_i = \frac{1}{F_i - 1} \sum_{j=2}^{F_i} (t_j - t_{j-1}) \quad \text{if } F_i \ge 2 Δtˉi?=Fi??11?j=2Fi??(tj??tj?1?)if?Fi?2

    • 最后兩次購買間隔

  • 品類/產品偏好特征

    • 買過哪些產品/品類的分布:one‐hot 或 count
    • 客單價分布:平均/中位數/最大/最小
  • 行為特征(若有行為數據):

    • 瀏覽量、加購未付、促銷點擊率/優惠券領取情況
    • 市場活動/郵件/Push 響應情況
  • 時間/周期特征

    • 過去購買的時間分布:是否偏向某些月/節假日/周末
    • 客戶注冊時間/首購時間:新客戶 vs 老客戶

2.2.3 步驟 3:特征處理與標準化

  • 對數變換:對于如消費金額這類正偏分布的特征可做 log 轉換
  • 縮放(standardization / min-max)
  • 類別變量編碼:one-hot 或 target encoding

2.2.4 步驟 4:訓練 /驗證劃分與防止泄露

  • 用時間切片 split:訓練集含所有 ( \le T_0 ) 的行為與特征,標簽由 (T0,T0+W](T_0, T_0 + W](T0?,T0?+W]決定
  • 若客戶在≤T0\le T_0T0? 時間購買行為中使用未來標簽窗口的信息,要避免

2.2.5 步驟 5:模型評價指標

  • 二分類常用指標:ROC‐AUC,Precision, Recall, F1‐score
  • 針對業務,也看 Precision@K、Lift(提升率)準則:你可能只對 top-10% 的潛力客戶做營銷投入
  • 可區分不同閾值設定下的召回 vs 精確度 Trade-off

2.3 模擬未來一個月消費者回購概率模型

2.3.1 Y變量設計

  • 預測目標:預測未來一個月(9月 → 10月)是否回購。
  • Y = 1:用戶在預測窗口內至少一次購買。
  • Y = 0:用戶在預測窗口內無購買。
  • 正樣本選擇:所有在預測窗口內有回購的用戶。

示例:

用戶ID訓練窗口內交易預測窗口內交易Y
A1次2次1
B3次0次0

2.3.2 滾動切片設計

切片編號訓練時間窗口預測時間窗口
12025-07-01~07-312025-08-01~08-31
22025-07-08~08-072025-08-08~09-07
32025-07-15~08-142025-08-15~09-14

說明:每次訓練用過去30天數據預測未來30天回購,步長可設為7天或其他。


2.3.3 滾動切片模擬代碼

import pandas as pd
import numpy as np# 模擬用戶每日交易數據
dates = pd.date_range("2025-06-01", "2025-09-30")
users = range(1, 101)
data = pd.DataFrame([(u, d) for u in users for d in dates], columns=['user_id', 'date'])
np.random.seed(42)
data['purchase'] = np.random.binomial(1, 0.05, len(data))  # 5%概率購買# 滾動切片參數
train_window = 30
predict_window = 30
step = 7slices = []
start_date = data['date'].min()
end_date = data['date'].max()while start_date + pd.Timedelta(days=train_window+predict_window-1) <= end_date:slices.append({'train_start': start_date,'train_end': start_date + pd.Timedelta(days=train_window-1),'pred_start': start_date + pd.Timedelta(days=train_window),'pred_end': start_date + pd.Timedelta(days=train_window+predict_window-1)})start_date += pd.Timedelta(days=step)pd.DataFrame(slices).head(3)

2.3.4 交叉驗證方法

  • 時間序列交叉驗證(TimeSeriesSplit)

    • 保持時間順序,訓練集總是早于驗證集
    • sklearn示例:
from sklearn.model_selection import TimeSeriesSplittscv = TimeSeriesSplit(n_splits=3)
for train_index, test_index in tscv.split(data):print("TRAIN:", train_index, "TEST:", test_index)

2.3.5 特征泄露風險與案例

  • 易泄露特征

    • 未來購買金額、未來交易次數
    • 未來優惠券使用情況
  • 案例

    • 用“未來30天消費金額總和”作為訓練特征 → 模型預測幾乎完美,但不可落地
    • 用“優惠券領取后是否使用”預測回購,如果領取在預測窗口內 → 泄露未來信息

4 對比 &實戰建議

在實際項目中,要根據你的業務與數據情況來選擇哪一種 Y 定義方案:

  • 如果你在供應鏈里關心 絕對銷量 與庫存/生產計劃,則方案 A1 或 A5 較好
  • 如果銷量分布長尾、促銷/季節性強,則 A2 或 A3 更穩健
  • 在回購預測中,如果營銷預算有限且希望集中資源,則 B2/B3/B4(頻次/金額/速度)更合適
  • 若目標是寬泛識別潛在客戶,則 B1 簡單且覆蓋面廣

5 公式匯總

為了便于快速應用以下是常見公式:

  • 滯后特征:
    Xlag(k)=Salest?k X_{lag(k)} = Sales_{t-k} Xlag(k)?=Salest?k?

  • 滾動平均:
    Xma(k)=1k∑i=1kSalest?i X_{ma(k)} = \frac{1}{k} \sum_{i=1}^k Sales_{t-i} Xma(k)?=k1?i=1k?Salest?i?

  • 差分銷量:
    ΔSalest=Salest?Salest?1 \Delta Sales_t = Sales_t - Sales_{t-1} ΔSalest?=Salest??Salest?1?

  • 對數變換銷量:
    Yt=log?(Salest+c) Y_t = \log(Sales_t + c) Yt?=log(Salest?+c)

  • 回購頻次閾值標簽:
    Y(2)=1?????Npurchases?in?(T0,T0+W]≥K Y^{(2)} = 1 \iff N_{\text{purchases in }(T_0, T_0+W]} \ge K Y(2)=1?Npurchases?in?(T0?,T0?+W]?K

  • 回購金額閾值標簽:
    Y(3)=1?????∑orders∈(T0,T0+W]Amount≥M Y^{(3)} = 1 \iff \sum_{orders \in (T_0, T_0 + W]} Amount \ge M Y(3)=1?orders(T0?,T0?+W]?AmountM

  • 回購速度標簽:
    Y(4)=1?????(exists?purchase?in?(T0,T0+W])∧(Δtfirst?repeat≤D) Y^{(4)} = 1 \iff (\text{exists purchase in } (T_0, T_0 + W] ) \land (\Delta t_{\text{first repeat}} \le D) Y(4)=1?(exists?purchase?in?(T0?,T0?+W])(Δtfirst?repeat?D)


五、結語

定義 Y 看起來是一個基礎問題,但它實際上蘊含多重業務假設。一個好的 Y 不僅能讓模型訓練與調參更穩定、預測誤差更低,也能確保預測結果被業務方理解、接納、用于決策。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/98038.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/98038.shtml
英文地址,請注明出處:http://en.pswp.cn/web/98038.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【 C/C++ 算法】入門動態規劃-----一維動態規劃基礎(以練代學式)

每日激勵&#xff1a;“不設限和自我肯定的心態&#xff1a;I can do all things。 — Stephen Curry” 緒論?&#xff1a; 本章是動態規劃算法的基礎入門篇&#xff0c;我將通過三道簡單題 一道中等難度的一維動態規劃題來帶你對動態規劃有個初認識&#xff0c;并基本了解動…

深入對比Tomcat與Netty:HTTP請求從網卡到Controller的全鏈路追蹤

我們日常用Spring Boot寫的RestController&#xff0c;感覺上就是一個簡單的方法&#xff0c;但它背后其實有一套復雜的網絡服務在支撐。一個HTTP請求到底是怎么從用戶的瀏覽器&#xff0c;穿過層層網絡&#xff0c;最終抵達我們代碼里的Controller方法的&#xff1f;理解這個過…

GO學習記錄十——發包

記錄下不同平臺的發包操作和期間遇到的問題 1.命令&#xff1a; $env:GOOSlinux $env:GOARCHamd64 go build -o release/HTTPServices-linux第一行&#xff0c;配置平臺&#xff0c;linux、windows 第二行&#xff0c;配置部署服務器的處理器架構 第三行&#xff0c;輸出目標文…

貪心算法與動態規劃

1. 什么是貪心算法&#xff1f; 貪心算法是一種在每一步選擇中都采取在當前狀態下最好或最優&#xff08;即最有利&#xff09;的選擇&#xff0c;從而希望導致結果是全局最好或最優的算法。 核心思想&#xff1a;“每步都貪心地選擇眼前最好的&#xff0c;不去考慮整個未來的長…

學會“讀網頁”:生成式 AI 在足球賽事信息整理中的實戰

逐步教程&#xff08;Step-by-Step&#xff09; — 適合初學者與教學類文章 背景&#xff08;為什么要這樣做&#xff09; 對于足球迷、資訊編輯與數據分析師來說&#xff0c;最快、最準確把握一場比賽的核心信息至關重要&#xff1a;比分、關鍵事件&#xff08;進球、點球、紅…

BM3D 圖像降噪快速算法的 MATLAB 實現

BM3D 圖像降噪快速算法的 MATLAB 實現1. 快速 BM3D 算法流程&#xff08;概述&#xff09;步驟操作加速技巧① 分組塊匹配 堆疊FFT 互相關② 協同濾波3D 變換 硬閾值FFT 沿第三維③ 聚合加權平均稀疏矩陣累加 2. 核心函數&#xff08;單文件版&#xff09; 保存為 bm3d_fast.…

Go的schedt調度(runtime/proc.go)

1. 創建go的入口函數// Create a new g running fn. // Put it on the queue of gs waiting to run. // The compiler turns a go statement into a call to this. func newproc(fn *funcval) {gp : getg()pc : sys.GetCallerPC()systemstack(func() {newg : newproc1(fn, gp, …

Ubuntu 服務器配置轉發網絡訪問

配置文檔&#xff1a;Ubuntu 服務器轉發網絡訪問 一、網絡拓撲以以下網絡拓撲為示例Ubuntu 服務器&#xff08;兩個網卡&#xff09; eth1 10.66.71.222 &#xff08;接入內網&#xff09;eno1 192.168.2.100 &#xff08;直連相機&#xff09; 相機ip 192.168.2.1 Windows 客…

為什么企業需要高防IP

1. 抵御日益猖獗的DDoS攻擊 現代DDoS攻擊規模已突破Tbps級別 傳統防火墻無法應對大規模流量攻擊 高防IP采用分布式清洗中心&#xff0c;可輕松抵御300Gbps以上的攻擊流量 2. 保障業務連續性 網絡中斷1小時可能造成數百萬損失 高防IP確保服務99.99%可用性 智能切換機制實…

CSS基礎 - 選擇器備忘錄 --筆記5

目錄基礎選擇器組合器偽類選擇器屬性選擇器選擇器可以選中頁面上的特定元素并為其指定樣式。 CSS有多種選擇器。 基礎選擇器 標簽選擇器 – tagname&#xff1a;匹配目標元素的標簽名。優先級是0,0,1。如&#xff1a;p、h1、div類選擇器 – .class&#xff1a;匹配class屬性中…

自動駕駛中的傳感器技術46——Radar(7)

衛星雷達&#xff08;又稱為分布式雷達&#xff09;主要講當前雷達的雷達信號處理計算以及雷達目標相關的一些感知算法都遷移到中央域控進行&#xff0c;雷達端基本只負責數據采集&#xff0c;這樣做的影響如下&#xff1a; 雷達端成本與功耗降低&#xff1b; 雷達端采樣得到的…

【論文閱讀】Diff-Privacy: Diffusion-based Face Privacy Protection

基于擴散模型的人臉隱私保護方法——DiffPrivacy&#xff0c;解決了兩類人臉隱私任務&#xff1a;匿名化&#xff08;anonymization&#xff09;和視覺身份信息隱藏&#xff08;visual identity information hiding&#xff09;。1. 研究背景隨著人工智能和大數據技術的普及&am…

React 原理篇 - 深入理解虛擬 DOM

一、什么是虛擬 DOM&#xff1f; 在前端開發中&#xff0c;“虛擬 DOM” 是一個高頻出現的術語&#xff0c;尤其在 React 生態中被廣泛討論。但很多開發者對它的理解往往停留在 “JS 對象” 這個表層認知上。 實際上&#xff0c;虛擬 DOM 是一種編程概念—— 在這個概念里&…

對匯編的初理解

此處是一個簡單的函數&#xff0c;里面將調用了一個函數add&#xff08;&#xff09;函數這里是函數的原型這里是調用lcd函數產生的匯編語言&#xff0c;翻譯過來就是r11&#xff0c;r0cnt(r4cnt,前文有提及)&#xff0c;然后調用add函數&#xff0c;此處BL是指會回到指令的下一…

《Python 自動化實戰:從零構建一個文件同步工具》

《Python 自動化實戰:從零構建一個文件同步工具》 一、開篇引入:為什么我們需要文件同步? 你是否有過這樣的困擾: 公司電腦和家里電腦上都有工作項目,每次更新都要手動復制? U 盤頻繁傳輸文件,不僅麻煩還容易出錯? 項目文件夾動輒幾 G,每次同步都耗時長、效率低? 在…

工業相機與鏡頭的靶面尺寸詳解:選型避坑指南

在機器視覺系統中&#xff0c;相機與鏡頭的靶面尺寸匹配是一個非常關鍵卻又經常被忽略的細節。選錯了&#xff0c;不但影響圖像質量&#xff0c;還可能導致畫面“黑角”、視野不符、鏡頭浪費等問題。 今天我們就用通俗易懂的方式&#xff0c;聊一聊相機與鏡頭靶面尺寸的那些事兒…

使用 Go 和 go-commons 實現內存指標采集并對接 Prometheus

文章目錄一、準備工作二、編寫內存采集代碼三、運行 Exporter四、接入 Prometheus五、可擴展思路總結在運維和監控領域&#xff0c;資源指標采集 是必不可少的一環。CPU、內存、磁盤、網絡這些系統資源&#xff0c;需要實時采集并上報到監控系統中。 本文以 內存指標采集 為例&…

webrtc弱網-IntervalBudget類源碼分析與算法原理

一、核心功能 IntervalBudget 類用于基于時間窗口的帶寬預算管理。它根據設定的目標比特率&#xff08;kbps&#xff09;和一個固定時間窗口&#xff08;500ms&#xff09;&#xff0c;計算在該時間窗口內可用的字節數&#xff08;即“預算”&#xff09;&#xff0c;并支持預…

深度學習基本模塊:RNN 循環神經網絡

循環神經網絡&#xff08;RNN&#xff09;是一種專門用于處理序列數據的神經網絡架構。與處理空間數據的卷積神經網絡&#xff08;Conv2D&#xff09;不同&#xff0c;RNN通過引入循環連接使網絡具有"記憶"能力&#xff0c;能夠利用之前的信息來影響當前的輸出&#…

React18學習筆記(二) React的狀態管理工具--Redux,案例--移動端外賣平臺

文章目錄一.Redux的基礎用法1.示例:普通網頁中的Redux計步器2.Redux管理數據的流程3.配套工具和環境準備3.1.配套工具3.2.環境準備4.示例:React項目中的Redux計步器思路步驟step1:創建子模塊step2:導入子模塊step3:注入store實例step4:React組件內使用store中的數據step5:在組件…