Чтобы избежать этой проблемы, вы можете добавить постоянное значение c
ко всем data[n][1]
, чтобы ни один из них больше не был 0
(который в основном сдвигает все точки на c
единицы). Если пакет делает правильные вещи, он должен предсказать эквивалентный полином, который также сдвинут на c
единиц. Таким образом, вы можете изменить этот многочлен, чтобы получить действительный, вычитая из него c
.
Теперь вы можете просто игнорировать точки, имеющие значение ординаты 0
, потому что эти точки не влияют на метод exponential
. Я только что проверил исходный код и в методе exponential
всякий раз, когда используются data[n][0]
и log(data[n][1])
, data[n][1]
умножается на них, поэтому, когда data[n][1]
равен 0
, это не имеет никакого значения , Но проблема в том, что он вызывает метод determinationCoefficient
, который вычисляет mean
всех значений data[n][1]
. Таким образом, если вы не используете точки с data[n][1] = 0
, он получит другое значение для mean
. В результате вы можете получить другой результат.
Теперь вопрос в том, нужны ли вам точки с 0
ординатами? Пакет написан при условии, что ординаты не 0
. Возможно, вы используете слишком много очков.