简单线性回归-----如何让我的模型更高效?

数据挖掘 Python 线性回归
2022-03-13 06:50:36

我正在研究一个简单的线性回归模型,

这是我的 Python 代码:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

dataset=pd.read_csv('sample.csv')
X=dataset.iloc[:,:-1].values
Y=dataset.iloc[:,1].values

from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=1/3)

from sklearn.linear_model import LinearRegression
regressor=LinearRegression()
regressor.fit(X_train,Y_train)

plt.scatter(X_train,Y_train,color='red')
plt.plot(X_train,regressor.predict(X_train),color='blue')
plt.title('X vs Y(Training Set)')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

plt.scatter(X_test,Y_test,color='red')
plt.plot(X_train,regressor.predict(X_train),color='blue')
plt.title('X vs Y(Test Set)')
plt.xlabel('X')[enter image description here][1]
plt.ylabel('Y')
plt.show()`

这是我的训练集训练集 图 这是我的测试集测试集图

我怎样才能提高我的机器学习模型的效率???这是我的第一个 ML 模型,因此欢迎所有建议。提前致谢

2个回答

你真的不能做太多:回归量的拟合是最佳的,因此在给定这些点的情况下,算法可以做到最好。您可以做的是使用样本权重参数更改数据集各个点的权重

LinearRegression.fit(X, y, sample_weight)

方法,将线“吸引”到他们身上,看看这如何影响准确性。

不希望有显着差异,因为您的数据不遵循线性模式。

您的数据不遵循线性趋势。因此,您的线性模型具有明显的局限性。为了克服它们,您可以建立一个非线性模型。凭借您拥有的少量数据,我建议您做LOESS由于您的训练数据似乎能够遵循三次趋势,您也可以尝试使用 3 次多项式回归。

请记住,您的训练数据和测试数据的分布非常不同,因此您很可能会过度拟合。出于这个原因,它可能不是开始使用 ML 的最佳数据。