多项式回归失败

时间:2019-07-01 13:45:46

标签: python machine-learning statistics

我正在尝试从头开始实现自己的多项式回归模型,这是我到目前为止编写的内容:

import numpy as np



class Polynomial:

    def __init__(self, eta=0.2, degree=1, epochs=100):
        self.eta = eta
        self.degree = degree
        self.coef = np.ones(shape = (self.degree,))
        self.epochs = epochs

    def fit_coef(self, X_train, y_train):
        temp_coef = np.ones(shape=(self.degree, ))
        size = len(X_train)
        for _ in range(3):
            for x, y in zip(X_train, y_train):
                arr = np.array([x**i for i in range(self.degree)])
                for i in range(self.degree):
                    err = np.sum(np.transpose(arr)*self.coef)*2/size
                    err -= y
                    err *= x**i
                    err *= self.eta
                    temp_coef[i] -= err
                    print(temp_coef[i])
                self.coef = temp_coef

尝试将模型拟合到任何示例库数据集后,我遇到了一个问题,我的模型系数变成了NaN值,我注意到它们的增长很快就变成了很大的值。我无法解释,请解决。大多数在线教程,关于多项式回归的文章都侧重于使用sklearn或其他软件包,因此我没有找到解决方案。您能帮助我检查此问题吗?

1 个答案:

答案 0 :(得分:0)

首先,多项式回归使用平均绝对误差,L1损失 要么  均方误差,二次方损失,L2损失以避免误差过大

第二个x的形状是什么?系数应为x