Kode saya berfungsi dengan baik tetapi saya mengulangi blok beberapa kali untuk memvariasikan variabel polinomial, derajat. Saya berasumsi ini dapat dan harus diulang untuk memungkinkan iterasi yang lebih cepat, tetapi saya tidak yakin bagaimana melakukannya. Sebelum kode di bawah ini saya membuat split train_test yang saya simpan untuk plot.

Setelah beberapa iterasi, saya menggunakan np.vstack pada y_predictions untuk membuat satu array.

from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

### degree 1 ####
poly1 = PolynomialFeatures(degree=1)
x1_poly = poly1.fit_transform(X_train)
                           
linreg1 = LinearRegression().fit(x1_poly, y_train)
pred_1= poly1.transform(x_prediction_data)
y1_poly_pred=linreg1.predict(pred_1)

### degree 3 #####
poly3 = PolynomialFeatures(degree=3)
x3_poly = poly3.fit_transform(X_train)
                                  
linreg3 = LinearRegression().fit(x3_poly, y_train)
pred_3= poly3.transform(x_prediction_data)
y3_poly_pred=linreg3.predict(pred_3)

#### ect... will make several other degree = 6, 9 ...
0
Glenn 20 November 2020, 12:13

1 menjawab

Jawaban Terbaik

Saya akan merekomendasikan mengumpulkan jawaban Anda dalam kamus, tetapi saya membuat daftar untuk kesederhanaan.

Kode berulang di atas i, yang merupakan derajat polinomial Anda. Melatih model, dll..., lalu mengumpulkan jawabannya.

prediction_collector = []
for i in [1,3,6,9]:

    poly = PolynomialFeatures(degree=i)
    x_poly = poly.fit_transform(X_train)
                               
    linreg = LinearRegression().fit(x_poly, y_train)
    pred= poly.transform(x_prediction_data)
    y_poly_pred=linreg.predict(pred)

    # to collect the answer after each iteration/increase of degrees
    predictions_collector.append(y_poly_pred)

-1
ombk 20 November 2020, 23:53