代码系列-python实现PolynomialFeatures(多项式)

python实现PolynomialFeatures(多项式)

  • sklearn生成多项式
  • Python生成多项式

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)

代码系列-python实现PolynomialFeatures(多项式)_第1张图片
x是下面这样:
代码系列-python实现PolynomialFeatures(多项式)_第2张图片
我们发现规律如下:

代码系列-python实现PolynomialFeatures(多项式)_第3张图片

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)

代码系列-python实现PolynomialFeatures(多项式)_第4张图片
和上面实现的一模一样

print('n=4时,sklearn的输出是:')
reg = PolynomialFeatures(degree=4)  
print(reg.fit_transform(x))
print('\n')

#对比
print('n=4时,函数的输出是:')
print(multi_feature(x,4))

代码系列-python实现PolynomialFeatures(多项式)_第5张图片
也是一样的,当然这个函数仅适用于2维数组,如果是n维数组,又该怎么实现呢?

你可能感兴趣的:(随笔,python,机器学习,numpy)