1. 程式人生 > >利用sklearn.preprocessing.PolynomialFeatures生成交叉特徵

利用sklearn.preprocessing.PolynomialFeatures生成交叉特徵

當我們使用一次多項式擬合一組資料時,可能不太理想,如下圖:

如果用直線來進行擬合的話:

如果用三次函式來擬合的話:

如何用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的描述請看: