Python 机器学习中带离群值的线性回归

Python 机器学习中带离群值的线性回归,python,machine-learning,linear-regression,Python,Machine Learning,Linear Regression,Python(确切地说是jupyter笔记本),仅使用numpy和sklearn np.random.seed(16) x = np.arange(100)  yp = 3*x + 3 + 2*(np.random.poisson(3*x+3,100)-(3*x+3)) np.random.seed(12) # Choose how many outliers out = np.random.choice(100,15) yp_wo = np.copy(yp) np.random.seed(12

Python(确切地说是jupyter笔记本),仅使用
numpy
sklearn

np.random.seed(16)
x = np.arange(100) 
yp = 3*x + 3 + 2*(np.random.poisson(3*x+3,100)-(3*x+3))
np.random.seed(12)
# Choose how many outliers
out = np.random.choice(100,15)
yp_wo = np.copy(yp)
np.random.seed(12) #set again
yp_wo[out] = yp_wo[out] + 5*np.random.rand(15)*yp[out]
# With outliers
plt.scatter(x,yp_wo)
# Without outliers
plt.scatter(x,yp)
对于上述数据(
wo
表示“有异常值”),我需要找到:

  • 另外两种损失的最佳系数:MAE和MAPE(中值绝对百分比误差)

  • 绘制MSE损失、MAE损失和MAPE损失的最佳拟合线

  • 对相同的数据应用岭回归,并使用交叉验证选择最佳参数alpha(可以使用alpha=10^-5、10^-4、10^-3、…10^3的值)。哪个值给出最小的MSE

让我困惑的是,必须为两次或两次以上的损失画出最合适的线

我可以按照类中的代码尝试获取值,但我不知道系数是什么意思

有什么帮助/指导吗

这是我想弄明白的家庭作业(不,我不是在问答案)


请原谅任何格式错误,我对堆栈溢出非常陌生。

3*x+3
中,第一个3是一个系数,它告诉你回归线的斜率,第二个3是y截距,即当x为零时y所取的值。所以,基本上,当你使用不同的损失时,你会得到这两个变量的不同值(斜率aka系数和y截距aka常数)。这有帮助吗?如果实际上是关于基础概念而不是关于代码本身,那么这个问题可能更适合(或其他SE站点)而不是这样。@sai对,但我只是构建模型来获得所说的损失吗?听起来有点像一个任务。是吗?损失与模型无关。您可以使用任何您想要的损失(用于测试)。但是,您在构建过程中使用的损耗决定了您在
3*x+3
中的模型,前3是一个系数,它告诉您回归线的斜率,第二个3是y截距,即当x为零时y所取的值。所以,基本上,当你使用不同的损失时,你会得到这两个变量的不同值(斜率aka系数和y截距aka常数)。这有帮助吗?如果实际上是关于基础概念而不是关于代码本身,那么这个问题可能更适合(或其他SE站点)而不是这样。@sai对,但我只是构建模型来获得所说的损失吗?听起来有点像一个任务。是吗?损失与模型无关。您可以使用任何您想要的损失(用于测试)。但是,您在构建过程中使用的损耗决定了您的模型-