return dayup缩进不对,然后返回的值一直是i为0时计算出的dayup值0.99,所以导致while循环死循环了;
将return dayup这一行保持和for循环一样的缩进位置,即等for循环计算完成之后再返回就可以了。
修改如下:
参考链接:
def dayUP(df):
dayup = 1
for i in range(365):
if i%7 in [6,0]:
dayup = dayup * (1-0.01)
else :
dayup = dayup * (1+df)
# print("dayup=",dayup,",i=",i)
# http://c.biancheng.net/view/4180.html
# https://blog.csdn.net/wosind/article/details/100012180
return dayup # 这一行保持和for循环同样的缩进
dayfactor = 0.01
while dayUP(dayfactor)<37.78:
dayfactor += 0.001
print("value:{:.3f}".format(dayfactor))
return dayup
的缩进不一样!
你这个是对齐错误
看看这个你就懂了:https://www.ycpai.cn/python/J4FjzpTP.html
里面有一句话是这样的:
Python代码中的对齐是非常重要的。在Python中,使用缩进来表示代码块的层次结构。如果缩进不正确,代码就会出现对齐错误。对齐错误可能包括缩进不足或缩进过多,这些错误可能会导致SyntaxError或IndentationError等错误。
不知道对你有没有帮助,有帮助的话,能采纳一下吗,谢谢啦。
作者主要使用均方根误差(RMSE)来计算预测分数与实际分数之间的差异,以反映推荐的准确性。
作者先采用MovieLens 1 M开放数据集来验证推荐准确性。MovieLens 1 M数据集上各种推荐算法的性能如图3所示。图3 MovieLens 1 M数据集上各种推荐算法的性能
上图显示了不同推荐算法的RMSE随着迭代次数的变化而变化。从实验性能的角度来看,作者提出的MOOCRC推荐算法经过约10次迭代后基本达到收敛,并且随着迭代次数的增加,RMSE降低,推荐精度提高。其推荐准确性几乎不再受迭代次数的影响。推荐质量优于基于RBM的混合推荐算法。当迭代次数固定时,基于RBM的混合推荐算法和MOOCRC算法的推荐质量明显高于其他推荐算法。而且,MOOCRC的收敛速度比其他推荐算法还快。
作者采用starC MOOC数据集来验证推荐准确性。starC MOOC数据集上各种推荐算法的性能如图4所示。
图4 starC MOOC数据集上各种推荐算法的性能
上图显示了不同推荐方法的迭代次数增加时,RMSE的变化。作者提出的MOOCRC模型在大约40个纪元后收敛,并且随着纪元数的增加,RMSE减小,推荐精度也继续提高。此外,该方法的推荐质量优于基于RBM的混合推荐方法。当使用所有训练集对MOOCRC进行完全训练时,其RMSE低至67.48%。当时间段固定时,基于RBM的混合推荐方法和MOOCRC产生的效果明显优于其他推荐算法。对于基于RBM的混合推荐方法,推荐效果明显小于MOOCRC方法,因为没有使用监督的BP算法进行参数调整。
这个问题缺乏具体的代码和问题描述,因此无法针对性地给出解决方案。建议提供相关的代码和问题描述,以便我们能更好地帮助你解决问题。