【问题标题】:Polynomial Regression Failure多项式回归失败
【发布时间】:2023-03-03 08:26:21
【问题描述】:

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

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 吗?
  • 是的,当然,在创建实例时

标签: python machine-learning statistics


【解决方案1】:

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

其次,你的 x 的形状是什么? coef 的形状应该是 x

【讨论】:

    猜你喜欢
    • 2021-10-02
    • 1970-01-01
    • 2011-04-23
    • 2019-01-24
    • 2021-06-03
    • 2020-01-07
    • 1970-01-01
    • 2018-12-19
    • 2018-08-27
    相关资源
    最近更新 更多