在 Python 中控制梯度下降 class 的输出
Controlling output of gradient descent class in Python
我创建了一个 LinearRegression class 作为家庭作业问题的一部分,但我得到的输出显示了大量的小数点和科学记数法。如果我的输出只显示小数点后的值,我会很高兴。
我试过尝试 f 字符串和格式。那些 do 减少了显示的小数位数,但科学记数法保留在输出中,偶尔一些值只显示为 'inf'。示例如下。
如果我使用以下方法(根据作业)对此进行测试:
from model import LinearRegression # model.py is my file
model = LinearRegression()
examples = list(range(1, 1000))
values = list(range(1, 1000))
for i in range(len(examples)):
model.addSample(examples[i], values[i])
print(model.fit(0.0006, 100))
我得到输出:
(2.1803197675124753549e+229, 1.4528186498977718021e+232, 1.7775211633675145435e+465)
当我添加格式(例如,在 class 的 fit() 方法中返回 '{:.4}'.format(self.theta_0) 时,我得到:
('2.18e+229', '1.453e+232', 'inf')
我真的不知道为什么这么挑剔。一定有什么我想念的。非常感谢任何帮助!
'{:.4f}'.format(self.theta_0)
或
将 numpy 导入为 np
np.set_printoptions(抑制=真)
我创建了一个 LinearRegression class 作为家庭作业问题的一部分,但我得到的输出显示了大量的小数点和科学记数法。如果我的输出只显示小数点后的值,我会很高兴。
我试过尝试 f 字符串和格式。那些 do 减少了显示的小数位数,但科学记数法保留在输出中,偶尔一些值只显示为 'inf'。示例如下。
如果我使用以下方法(根据作业)对此进行测试:
from model import LinearRegression # model.py is my file
model = LinearRegression()
examples = list(range(1, 1000))
values = list(range(1, 1000))
for i in range(len(examples)):
model.addSample(examples[i], values[i])
print(model.fit(0.0006, 100))
我得到输出:
(2.1803197675124753549e+229, 1.4528186498977718021e+232, 1.7775211633675145435e+465)
当我添加格式(例如,在 class 的 fit() 方法中返回 '{:.4}'.format(self.theta_0) 时,我得到:
('2.18e+229', '1.453e+232', 'inf')
我真的不知道为什么这么挑剔。一定有什么我想念的。非常感谢任何帮助!
'{:.4f}'.format(self.theta_0)
或
将 numpy 导入为 np
np.set_printoptions(抑制=真)