哪种回归模型最适合这种通常的散点图但分布异常?

Which regression model(s) should be the most appropriate with this usual scatter plot but unusual distribution?

我需要将两个不同的回归模型拟合到以下 df(例如属于两个不同系列的曲线)。

因此,考虑到我所知道的回归类型,有:

df超级简单,只有两列xy,每列450个条目。

散点图如下:

但是,当我完成 train/test 绘图过程时,我得到以下结果:

现在,很明显,简单的线性模型对于这样的 train/test 分布是不够的。

但是,当我开始研究 MSE(均方误差)时,我得到了一些有趣的东西:

Train Error: 0.06336815111266955
Test Error: 0.06359148208824823

我确定代码(我没有报告)。我用另一个玩具数据集检查了它并且工作得很好。

有人可以帮帮我吗?

非常感谢!

编辑:在模型拟合过程中,我在 [0,1] 范围内应用了 MinMaxScaler() 函数

不太确定哪里出错了,可能是训练/测试的组合或者拟合错误,下面我模拟了一些看起来像你的数据,你可以看到它有效:

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")