本文参考:​​https://www.jiqizhixin.com/articles/2018-06-21-3​

​http://rishy.github.io/ml/2015/07/28/l1-vs-l2-loss/​

​https://www.zhihu.com/question/21329754​


回归与分类不在于输入值,而在于输出值的不同,回归输出的值是连续的,分类输出的值存在离散的。

明天湿度是回归问题,明天下不下雨是分类。

机器学习篇:回归与分类的区别_最小化

回归问题

在回归问题中,我们可以预测房价的变化,未来天气湿度变化等连续性输出的问题。

处理回归问题:1.选取训练模型(如线性模型Linear Regression,多项式模型);2.导入训练集train_set;3.选择合适的学习算法;4.对结果进行预测。

回归模型:


  1. 线性回归(Linear Regression)
  2. 逻辑回归(Logistic Regression)
  3. 多项式回归(Polynomial Regression)
  4. 逐步回归(Stepwise Regression)
  5. 岭回归(Ridge Regression)
  6. 套索回归(Lasso Regression)
  7. 弹性回归(ElasticNet Regression)


回归问题中的损失函数:

MSE,MAE,Huber平均平滑损失函数


均方误差(MSE,L2损失)是最常用的回归损失函数,计算方法是求预测值与真实值之间距离的平方和:

机器学习篇:回归与分类的区别_多项式_02

def mse(true, pred):
return np.sum((true - pred)**2)

MAE:

平均绝对值误差(也称L1损失)

机器学习篇:回归与分类的区别_机器学习_03

def mae(true, pred):
return np.sum(np.abs(true - pred))


Huber损失:

机器学习篇:回归与分类的区别_损失函数_04

这里超参数delta的选择非常重要,因为这决定了你对与异常点的定义。当残差大于delta,应当采用L1(对较大的异常值不那么敏感)来最小化,而残差小于超参数,则用L2来最小化。

Log-Cosh损失:

Log-cosh是另一种应用于回归问题中的,且比L2更平滑的的损失函数。它的计算方式是预测误差的双曲余弦的对数。

分位数损失:

当我们更关注区间预测而不仅是点预测时,分位数损失函数就很有用。使用最小二乘回归进行区间预测,基于的假设是残差(y-y_hat)是独立变量,且方差保持不变。