To perform a polynomial linear regression with python 3, a solution is to use the module called scikit-learn, example of implementation:

from sklearn.linear_model import LinearRegressionfrom sklearn.preprocessing import PolynomialFeaturesfrom sklearn.metrics import mean_squared_error, r2_scoreimport matplotlib.pyplot as pltimport numpy as npimport random#----------------------------------------------------------------------------------------## Step 1: training dataX = [i for i in range(10)]Y = [random.gauss(x,0.75) for x in X]X = np.asarray(X)Y = np.asarray(Y)X = X[:,np.newaxis]Y = Y[:,np.newaxis]plt.scatter(X,Y)#----------------------------------------------------------------------------------------## Step 2: data preparationnb_degree = 4polynomial_features = PolynomialFeatures(degree = nb_degree)X_TRANSF = polynomial_features.fit_transform(X)#----------------------------------------------------------------------------------------## Step 3: define and train a modelmodel = LinearRegression()model.fit(X_TRANSF, Y)#----------------------------------------------------------------------------------------## Step 4: calculate bias and varianceY_NEW = model.predict(X_TRANSF)rmse = np.sqrt(mean_squared_error(Y,Y_NEW))r2 = r2_score(Y,Y_NEW)print('RMSE: ', rmse)print('R2: ', r2)#----------------------------------------------------------------------------------------## Step 5: predictionx_new_min = 0.0x_new_max = 10.0X_NEW = np.linspace(x_new_min, x_new_max, 100)X_NEW = X_NEW[:,np.newaxis]X_NEW_TRANSF = polynomial_features.fit_transform(X_NEW)Y_NEW = model.predict(X_NEW_TRANSF)plt.plot(X_NEW, Y_NEW, color='coral', linewidth=3)plt.grid()plt.xlim(x_new_min,x_new_max)plt.ylim(0,10)title = 'Degree = {}; RMSE = {}; R2 = {}'.format(nb_degree, round(rmse,2), round(r2,2))plt.title("Polynomial Linear Regression using scikit-learn and python 3 \n " + title,fontsize=10)plt.xlabel('x')plt.ylabel('y')plt.savefig("polynomial_linear_regression.png", bbox_inches='tight')plt.show()
References
| Links | Site |
|---|---|
| Régression linéaire | wikipedia |
| sklearn.linear_model.LinearRegression | scikit |
| Linear Regression Example | scikit |
| Sklearn Linear Regression - Python | stackoverflow |
| polynomial regression using python | stackoverflow |
| Polynomial Regression | towardsdatascience.com |
| Python Implementation of Polynomial Regression | geeksforgeeks.org |
