sklearn生成多项式
import numpy as np
from sklearn.preprocessing import polynomialfeatures #这哥用于生成多项式
x=np.arange(6).reshape(3,2) #生成三行二列数组
reg = polynomialfeatures(degree=3) #这个3看下面的解释
reg.fit_transform(x)
x是下面这样:
我们发现规律如下:
python生成多项式
编写实现函数如下:
def multi_feature(x,n):
c = np.empty((x.shape[0],0)) #np.empty((3,1))并不会生成一个3行1列的空数组,np.empty((3,0))才会生成3行1列空数组
for i in range(n+1):
for m in range(i,-1,-1):
h=(x[:,0]**m) * (x[:,1]**(i-m))
c=np.c_[c,h]
return c
multi_feature(x,3)
和上面实现的一模一样
print('n=4时,sklearn的输出是:')
reg = polynomialfeatures(degree=4)
print(reg.fit_transform(x))
print('\n')
#对比
print('n=4时,函数的输出是:')
print(multi_feature(x,4))
也是一样的,当然这个函数仅适用于2维数组,如果是n维数组,又该怎么实现呢?
到此这篇关于python实现polynomialfeatures多项式的方法的文章就介绍到这了,更多相关python polynomialfeatures多项式内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!