企业网站建设及推广,网站下载软件怎么安装,易县做网站的在哪,网站 多服务器1.这个多项式回归问题可以准确地解出吗#xff1f;提⽰#xff1a;使⽤线性代数。 可以,把多项式问题#xff0c;用matlab的str2sym表示出来#xff0c;再用solve求解。
2.考虑多项式的模型选择。
1. 绘制训练损失与模型复杂度#xff08;多项式的阶数#xff09;的关系…1.这个多项式回归问题可以准确地解出吗提⽰使⽤线性代数。 可以,把多项式问题用matlab的str2sym表示出来再用solve求解。
2.考虑多项式的模型选择。
1. 绘制训练损失与模型复杂度多项式的阶数的关系图。观察到了什么需要多少阶的多项式才能将训练损失减少到0? 画图代码阶数1-100
# 记得把max_degree改为100# 把train改成这个函数
def trainLossComplex(train_features,test_features,train_labels,test_labels,num_epochs1000):lossnn.MSELoss(reductionnone)input_shapetrain_features.shape[-1]# 不设置偏置因为我们已经在多项式中实现了它net nn.Sequential(nn.Linear(input_shape,1,biasFalse))batch_sizemin(10,train_labels.shape[0])train_featurestorch.tensor(train_features, dtypetorch.float32)test_featurestorch.tensor(test_features, dtypetorch.float32)train_iterd2l.load_array((train_features,train_labels.reshape(-1,1)),batch_size)test_iterd2l.load_array((test_features,test_labels.reshape(-1,1)),batch_size,is_trainFalse)trainertorch.optim.SGD(net.parameters(),lr0.01)for epoch in range(num_epochs):d2l.train_epoch_ch3(net,train_iter,loss,trainer)return evaluate_loss(net,train_iter,loss),evaluate_loss(net,test_iter,loss)trainLoss[]
textLoss[]
xnp.arange(1,100)
for i in np.arange(1,100):train_loss,text_losstrainLossComplex(poly_features[:n_train, :i], poly_features[n_train:,:i],labels[:n_train],labels[n_train:])trainLoss.append(train_loss)textLoss.append(text_loss)d2l.plot(x, y, xlabeldegree, ylabeltrain_loss, legendNone, xlimNone,ylim[1e-30.007,1*1e-20.005], xscalelinear, yscalelinear,fmts(-, m--, g-., r:), figsize(3.5, 2.5), axesNone)从图中看1-100的阶数的多项式都不能把训练损失减少到0
2. 在这种情况下绘制测试的损失图。
d2l.plot(x, textLoss, xlabeldegree, ylabeltrain_loss, legendNone, xlimNone,ylim[1e-3,1.2], xscalelinear, yscalelinear,fmts(-, m--, g-., r:), figsize(3.5, 2.5), axesNone)这里的值没有到0只是图上看着到了
3. ⽣成同样的图作为数据量的函数。 改一改数据量吧再自己画一下吧我太懒了对不起
3. 如果不对多项式特征xi进⾏标准化(1/i!)会发⽣什么事情能⽤其他⽅法解决这个问题吗 如果有一个 x大于 1那么这个很大的 i就会带来很大的值优化的时候可能会带来很大的梯度值。
4. 泛化误差可能为零吗 不太可能