本文参考: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.对结果进行预测。
回归模型:
- 线性回归(Linear Regression)
- 逻辑回归(Logistic Regression)
- 多项式回归(Polynomial Regression)
- 逐步回归(Stepwise Regression)
- 岭回归(Ridge Regression)
- 套索回归(Lasso Regression)
- 弹性回归(ElasticNet Regression)
回归问题中的损失函数:
MSE,MAE,Huber平均平滑损失函数
均方误差(MSE,L2损失)是最常用的回归损失函数,计算方法是求预测值与真实值之间距离的平方和:
def mse(true, pred):
return np.sum((true - pred)**2)
MAE:
平均绝对值误差(也称L1损失)
def mae(true, pred):
return np.sum(np.abs(true - pred))
Huber损失:
这里超参数delta的选择非常重要,因为这决定了你对与异常点的定义。当残差大于delta,应当采用L1(对较大的异常值不那么敏感)来最小化,而残差小于超参数,则用L2来最小化。
Log-Cosh损失:
Log-cosh是另一种应用于回归问题中的,且比L2更平滑的的损失函数。它的计算方式是预测误差的双曲余弦的对数。
分位数损失:
当我们更关注区间预测而不仅是点预测时,分位数损失函数就很有用。使用最小二乘回归进行区间预测,基于的假设是残差(y-y_hat)是独立变量,且方差保持不变。