利用sklearn.preprocessing.PolynomialFeatures生成交叉特徵
阿新 • • 發佈:2018-12-18
當我們使用一次多項式擬合一組資料時,可能不太理想,如下圖:
如果用直線來進行擬合的話:
如果用三次函式來擬合的話:
如何用python的sklearn庫來做呢?
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import PolynomialFeatures from sklearn.linear_model import LinearRegression x = np.linspace(-3,3,num = 50) #用三次多項式來擬合 from sklearn.pipeline import Pipeline def PolyLin(degree): return Pipeline( [ ("poly",PolynomialFeatures(degree=degree)), ("Linearmodel",LinearRegression()) ]) lin_3 = PolyLin(degree=3) lin_3.fit(X,y) y_predict3 = lin_3.predict(X) plt.scatter(X,y) y_predict_3 = lin_3.predict(X)
更多關於sklearn.preprocessing.PolynomialFeatures的描述請看: