Управление выводом класса градиентного спуска в Python - PullRequest
0 голосов
/ 08 ноября 2019

Я создал класс LinearRegression как часть домашней задачи, но полученные результаты отображают сумасшедшее количество десятичных точек вместе с научной нотацией. Я был бы очень рад, если бы мой вывод отображал значения только с несколькими десятичными точками.

Я попытался дать 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)

Когда я добавлюформатирование (например, возвращая '{: .4}'. format (self.theta_0) в методе fit () моего класса), я получаю:

('2.18e+229', '1.453e+232', 'inf')

Я действительно не уверен, почему это такпривередливы. Там должно быть что-то, что я скучаю. Любая помощь с благодарностью!

1 Ответ

1 голос
/ 08 ноября 2019

'{:. 4f}'. Format (self.theta_0)

ИЛИ

импортировать numpy как np

np.set_printoptions (suppress = True)

...