python實現PolynomialFeatures多項式的方法

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多項式內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: