技术

加权线性回归(Weighted Linear Regression)的公式及其推理

1.加权线性回归与普通线性回归

对于一组有N个观测的数据

$$(x_i,y_i), i = 1,2,3,4,…, N$$

可以使用一元线性回归模型

$$y = a x + b + \epsilon$$

来拟合 \(x\) 与 \(y\) 之间的关系。其中的参数 \(a,b\) 通常使用最小二乘拟合,即寻找使代价函数

$$J(a,b) = \frac{1}{N}\sum^{N}_{i=1}{(y_i-ax_i-b)^2}$$

最小的\(a,b\),使得拟合曲线尽可能地接近所有的观测点。

但在实际应用中,观测点之间可能是有差异的。比如,有的观测点误差大,有的观测点误差小,这就需要让我们的拟合直线\(y=ax+b\),不必考虑误差大的观测点,而要尽可能逼近误差小的观测点。这时就可以使用一个权重系数\(w_i\)来表示第\(i\)个观测点的权重(例如,对于误差小的观测点,\(w_i\)的值更大) 而考虑了这个权重系数\(w_i\)的线性回归,就是加权线性回归。

阅读更多 »加权线性回归(Weighted Linear Regression)的公式及其推理

解决WIN7下Sublime运行python代码出现的UnicodeEncodeError错误

在win7下安装sublime后,编写python脚本并执行,没有任何反应,ctrl+`打开控制台之后才发现执行程序时出现了错误:

Running python.exe -u E:\文档\test.py
 Traceback (most recent call last):
 File ".\sublime_plugin.py", line 337, in run_
 return self.run(**args)
 File ".\exec.py", line 154, in run
 File ".\exec.py", line 48, in __init__
 File ".\subprocess.py", line 633, in __init__
 File ".\subprocess.py", line 842, in _execute_child
 UnicodeEncodeError: 'ascii' codec can't encode characters in position 17-19: ordinal not in range(128)

阅读更多 »解决WIN7下Sublime运行python代码出现的UnicodeEncodeError错误

解决OpenWRT下python出现的‘md_rand.c: 322: ssleay_rand_add: Assertion `md_c[1] == md_count[1]’ failed’ 错误

在路由器刷了 OpenWRT系统后,可以运行某python应用,但经常会出现错误提示

<code>……python: md_rand.c: 322: ssleay_rand_add: Assertion `md_c[1] == md_count[1]' failed
</code>

阅读更多 »解决OpenWRT下python出现的‘md_rand.c: 322: ssleay_rand_add: Assertion `md_c[1] == md_count[1]’ failed’ 错误