首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何理解sklearn.preprocessing.PolynomialFeatures的行为?

如何理解sklearn.preprocessing.PolynomialFeatures的行为?
EN

Stack Overflow用户
提问于 2022-10-11 11:40:05
回答 2查看 25关注 0票数 0

滑雪博士中,引入了形式a,b的二维特征,得到其2次多项式特征为1,a,b,a^2,ab,b^2。

然而,目前还不清楚这是如何发生的。我不明白这个程度是否改变为3,例如,这个特征会是什么样子。

我试着用1,a,b,a^2,ab,b^2 = (a,b@ a,b.T )的上三角形来解释,因为它看起来是二次型。但对于第三级来说,这是不正确的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-11 11:48:46

1,a,b,a,b,ab,b,a,a,b,b。这些是(1 +a+b)的膨胀力。

关于三个变量,1、a、c、b、ab、abc、ac、ac、b、bc、bc、bc、c、cb。

票数 0
EN

Stack Overflow用户

发布于 2022-10-11 11:59:28

这个伪代码解释了如何为给定的最大度n生成这些特性。

代码语言:javascript
复制
polynomial_features = []
for degree in range(n + 1):
    for k in range(degree):
        polynomial_features.append(a**k * b**(degree - k))

因此,例如,对于3级以下的学位,您可以得到:

代码语言:javascript
复制
# for degree = 0:
# k = 0
polynomial_features.append(a**0 * b**0)  # = 1

# for degree = 1:
# k = 0
polynomial_features.append(a**0 * b**1)  # = b
# k = 1
polynomial_features.append(a**1 * b**0)  # = a

# for degree = 2:
# k = 0
polynomial_features.append(a**0 * b**2)  # = b**2
# k = 1
polynomial_features.append(a**1 * b**1)  # = a*b
# k = 2
polynomial_features.append(a**2 * b**0)  # = a**2

# for degree = 3:
# k = 0
polynomial_features.append(a**0 * b**3)  # = b**3
# k = 1
polynomial_features.append(a**1 * b**2)  # = a*(b**2)
# k = 2
polynomial_features.append(a**2 * b**1)  # = (a**2) * b
# k = 3
polynomial_features.append(a**3 * b**0)  # = a**3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74027510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档