线性回归 - 最小二乘法
线性回归
一 简单的线性回归应用
webrtc中的音视频同步。Sender Report数据包
- NTP Timestamp(网络时间协议时间戳):这是一个64位的时间戳,记录着发送SR的NTP时间戳,用于同步不同源之间的时间。
- RTP Timestamp:这是RTP数据包的相对时间戳,用于与NTP时间戳关联,以便于在接收端进行媒体流的同步。
- Sender's Packet Count(发送者的数据包计数):这是一个32位字段,包含自传输开始以来与当前SSRC(同步源标识符)一起发送的RTP数据包总数。
- Sender's Octet Count(发送者的八位字节计数):这是一个32位字段,包含自传输开始以来与当前SSRC一起发送的RTP有效负载数据(不包括标头、填充等)的总字节数。
在webrtc应用中,至少收到两次sender report数据包才能做时间戳同步。原因是线性回归方程y = ax + b(x是RTP时间戳,Y是NTP时间戳)
需要两个点的坐标,才能计算出来a和b的值。
有了a和b的值之后,数据包中的时间戳记为x, y计算的结果就是同步时间戳。
二 多个离散点的线性回归计算(最小二乘法)
最小二乘法(Least Squares Method)是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。这种方法在统计学、数据分析、工程学和机器学习等领域中非常常见,尤其是在线性回归分析中。下面我将详细解释最小二乘法的基本概念、原理和计算过程。
上面公式中的希格玛xy 是指 x乘以y的累加和,通过上面的m计算公式,计算出m的值和b的值,n表述数据的个数。
这样就得到了线性回归方程
y = mx + b了。
例如这里有5组数据{3,10}, {2,8}, {13, 25}, {6, 30}, {7, 40}
m = 5x(3x10 + 2x8 + 13x25 + 6x30 + 7x40) - (3 + 2 + 13 + 6 + 7)x(10 + 8 + 25 + 30 + 40) / (5x(3^2 + 2^2 + 13^2 + 6^2 + 7^2) - (3 + 2 + 13 + 6 + 7)^2);
b = (0 + 8 + 25 + 30 + 40) - mx(3 + 2 + 13 + 6 + 7) / 5