【问题标题】:Generate the full polynomial regression formula, not just coefficients using sklearn? [duplicate]生成完整的多项式回归公式,而不仅仅是使用 sklearn 的系数? [复制]
【发布时间】:2015-09-26 20:52:22
【问题描述】:

背景:我正在使用 scikit-learn 进行多项式回归建模。通过生成的回归模型,您可以获得系数列表。

poly = PolynomialFeatures(degree)
X_ = poly.fit_transform(X)
model = linear_model.LinearRegression(fit_intercept=True)
model.fit(X_, Y_)
print model.coef_

结果:

[ 0.00000000e+00 -3.69049908e+00 9.45845788e-03 4.79401992e+01 1.13710193e+01 2.55613693e+01]

表示 Y = 0 + -3.69 X1 + 0.00945 X2 + 47.9 X1^2 + 11.3 X1X2 + 25.5 X2^2

但是您不知道它们代表哪些术语。您必须检查列表以找出哪个是哪个。我希望让计算机打印整个公式,而不仅仅是系数。

有没有办法做到这一点?我在 sklearn 中看不到任何可以做到这一点的功能。所以我正在考虑编写一个函数来生成多项式项的有序列表

所以如果我输入 1,则只有 1 个决策变量,多项式项类似于 [1, X1]

对于输入 2,它是 [1, X1, X2, X1^2, X1X2, X2^2]。

对于输入 3,它是 [1, X1, X2, X1^2, X1X2, X2^2, X1X3, X2X3, X3^2, X1^3, X1^2 * X2, X1 * X2^2, 。 ........X3^3]

所以我希望写这个函数。但是我很难弄清楚排名算法。任何人都可以给我一个提示吗?生成列表时是否可以遵循某种模式?

【问题讨论】:

    标签: python python-2.7 statistics scikit-learn polynomial-math


    【解决方案1】:

    好的,我自己想通了。

    print poly.powers_
    

    使用这段代码,对于n个变量,它看起来像

    [[0 0 0 0]
     [1 0 0 0]
     [0 1 0 0]
     [0 0 1 0]
     [0 0 0 1]
     [2 0 0 0]
     [1 1 0 0]
     [1 0 1 0]
     [1 0 0 1]
     [0 2 0 0]
     [0 1 1 0]
     [0 1 0 1]
     [0 0 2 0]
     [0 0 1 1]
     [0 0 0 2]
     [3 0 0 0]
     [2 1 0 0]
     [2 0 1 0]
     [2 0 0 1]
     [1 2 0 0]
     [1 1 1 0]
     [1 1 0 1]
     [1 0 2 0]
     [1 0 1 1]
     [1 0 0 2]
     [0 3 0 0]
     [0 2 1 0]
     [0 2 0 1]
     [0 1 2 0]
     [0 1 1 1]
     [0 1 0 2]
     [0 0 3 0]
     [0 0 2 1]
     [0 0 1 2]
     [0 0 0 3]
     [4 0 0 0]
     [3 1 0 0]
     [3 0 1 0]
     [3 0 0 1]
     [2 2 0 0]
     [2 1 1 0]
     [2 1 0 1]
     [2 0 2 0]
     [2 0 1 1]
     [2 0 0 2]
     [1 3 0 0]
     [1 2 1 0]
     [1 2 0 1]
     [1 1 2 0]
     [1 1 1 1]
     [1 1 0 2]
     [1 0 3 0]
     [1 0 2 1]
     [1 0 1 2]
     [1 0 0 3]
     [0 4 0 0]
     [0 3 1 0]
     [0 3 0 1]
     [0 2 2 0]
     [0 2 1 1]
     [0 2 0 2]
     [0 1 3 0]
     [0 1 2 1]
     [0 1 1 2]
     [0 1 0 3]
     [0 0 4 0]
     [0 0 3 1]
     [0 0 2 2]
     [0 0 1 3]
     [0 0 0 4]]
    

    并且公式可以建立在这张纸上。

    我不确定我说清楚了,所以如果有人看到这个帖子并有类似的问题,请留言,我可以进一步解释。

    查看此页面:sklearn: how to get coefficients of polynomial features

    【讨论】:

    • 您能详细解释一下如何将该表格转换为公式吗?
    猜你喜欢
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2020-01-14
    • 2020-04-17
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多