实际上,我想使用一个线性模型来拟合一组'sin‘数据,但结果表明,损失函数在每次迭代中都会变大。下面的代码有问题吗?(梯度下降法)
这是我在Matlab中的代码
m=20;
rate = 0.1;
x = linspace(0,2*pi,20);
x = [ones(1,length(x));x]
y = sin(x);
w = rand(1,2);
for i=1:500
h = w*x;
loss = sum((h-y).^2)/m/2
total_loss = [total_loss loss];
**gradient = (h-y)*x'
我正在使用可用的最简单的模型在Node.js中创建这个测试用例:
model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
并使用公式X+X=Y对其进行测试:
let xsData = [];
let ysData = [];
for (let i = 1; i < 17; i++) { // Please note the 16 iterations here!
xsData.push(i);
ysData.push(i+i);
}
c
我计算了两种证券收益的最小方差对冲比率(MVHR):
用样本计算最优h* = Cov(S,F) / Var(F)
运行OLS回归并获得beta值
这两个值略有不同,例如,我得到h* = 0.9547和beta = 0.9537。但他们应该是一样的。为什么是这样?
下面是我的代码:
import numpy as np
import statsmodels.api as sm
var = np.var(secRets, ddof = 1)
cov_denom = len(secRets) - 1
for i in range (0, len(secRets)):
cov