我在不使用Sklearn的情况下建立多项式回归。我现在无法使用功能的多项式扩展。
我有一个带有A和B列的数据框。当我从Sklearn导入并运行PolynomialFeatures(2级)时,我发现它返回6个不同的特征。
我知道2个要素变成6个要素,因为它是(A + B +常数)*(A + B +常数)
即为A2 + 2AB + 2AC + 2BC + B2 + C2,共有6种不同的功能。我正在尝试使用Python和Numpy对此进行概括。
由于存在常数c,所以我在数据框中创建了一个新列C。但是,我对如何进行此操作非常执着。我尝试进行(特征数*度数)次循环,但对特征的组合感到困惑。
'''
def polynomial_expansion(features_df, order):
return expanded_df
'''
有人可以帮我吗?在这种情况下,我可以使用什么Python / Numpy / Pandas方法?谢谢。
Numpy具有称为polymul的功能。要使用此功能,只需将多项式指定为元组,如下所示:
poly1=(1,2,3) # for 1*x^0 + 2*x^1 + 3*x^2
from numpy.polynomial import polynomial as P
result = P.polymul(poly1,poly1)