def polynomialRegressionCV(obj,X,y,numberoffolds,degree,label): rmseList = [] degreeList = [] for degree in range(1,degree+1): model = make_pipeline(PolynomialFeatures(degree), obj) rmse = callCrossValPoly(model, X, y, numberoffolds, degree, label) degreeList.append(degree) rmseList.append(rmse) #print('%s (Polynomial) - The best RMSE obtained is: %.4f for Degree: %d' % (label,minRMSE(rmseList),rmseList.index(minRMSE(rmseList))+1)) Plots.linePlot(degreeList, rmseList, 'Degree_of_Polynomial', 'RMSE', 'Degree VS RMSE', 'red', 'PolyRegressionCV'+label)
def polynomialRegression(obj,X_train,y_train,X_test,y_test, degree, label): rmseList = [] degreeList = [] for degree in range(1,degree+1): model = make_pipeline(PolynomialFeatures(degree), obj) model.fit(X_train, y_train) pred=model.predict(X_test) rmse=rootMeanSquareError(pred, y_test) degreeList.append(degree) rmseList.append(rmse) print("%s (Polynomial) - Root Mean Squared Error for degree %d: %.4f" % (label,degree,rmse)) #print('Variance score (Polynomial): %.4f' % model.score(X_test, y_test)) print('%s (Polynomial) - The best RMSE obtained is %.4f for degree: %d' % (label,minRMSE(rmseList),rmseList.index(minRMSE(rmseList))+1)) Plots.linePlot(degreeList, rmseList, 'Degree_of_Polynomial', 'RMSE', 'Degree VS RMSE', 'blue', 'PolyRegression'+label)