Не совсем уверен, где это пошло не так, может быть комбинацией разделения для поезда / теста или неправильной подгонки, ниже я симулирую некоторые данные, которые выглядят как ваши, и вы можете увидеть, как они работают:
import numpy as np
from sklearn import linear_model
import seaborn as sns
from sklearn.preprocessing import PolynomialFeatures
LR = linear_model.LinearRegression()
x = np.linspace(7, 15, num=100)
y = x + 2*x**2 + np.random.normal(0,5,size=100)
poly = PolynomialFeatures(2)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.3)
clf = linear_model.LinearRegression()
clf.fit(poly.fit_transform(X_train.reshape(-1,1)), y_train)
pred_train = clf.predict(poly.fit_transform(X_train.reshape(-1,1)))
pred_test = clf.predict(poly.fit_transform(X_test.reshape(-1,1)))
Мы можем построить результаты для поезда:
df = pd.DataFrame({'x':X_train,'y':y_train,'pred':pred_train})
sns.scatterplot(x='x',y='y',data=df)
sns.lineplot(x='x',y='pred',data=df,color="orange")
df = pd.DataFrame({'x':X_test,'y':y_test,'pred':pred_test})
sns.scatterplot(x='x',y='y',data=df)
sns.lineplot(x='x',y='pred',data=df,color="orange")