机器学习的损失函数

李航的统计机器学习方法说:
统计学习方法三要素:模型,策略,算法
模型是假设,策略就是验证这个假设好坏的方法,算法是知道了假设好坏程度,怎么让假设向好的方向演进.所以需要定量地知道模型的好坏程度.

模型好坏的理解

如何定义模型的好坏呢.比如拿来一堆真实数据 (Xi,yi) ,然后一个模型根据 Xi 预测 yi^ ,显然这个 yi^ 不一定和真实的 yi 相符.现在有一个问题,假设空间中,最好的那个模型,他能好到什么程度,这显然和训练数据有关,和模型自身也有关系,比如有些数据就是自相矛盾的,那模型再怎么牛逼,也无可奈何.其次,即使数据是可学习的,并且有个模型非常牛逼,对于这些真实数据,预测值和真实值都相符,它也不能保证对于未见到的值,它也能预测准确.说不定它只是死记硬背的呢.万里长征总有第一步,先研究一下如何定义模型的好坏.

损失函数(loss function)和风险函数

损失函数

损失函数度量的是一次预测的好坏.它并没有说是在训练集/测试集/验证集.

  1. 0-1 损失函数
  2. 平方损失函数
  3. 绝对损失函数
  4. 对数损失函数 这个比较有意思有篇介绍. 如果模型认为一个事件太会发生(p很小),但是它发生了,就要给他很大的惩罚.
  5. 合页损失函数

代理损失函数

对于一些问题

风险函数(risk function)

从”风险”两个字,就可以看出风险函数是一种期望,是对一个事物的提前估量.

Rexp=Ep[L(y,f(X))]

经验风险(empirical risk)

经验风险是训练数据集中的损失的平均.
根据大数定理,自然的想法,是希望经验风险越小越好.但是如果训练集数据少,有可能过拟合.所以需要区分下面两个概念

经验风险最小

结构经验风险最小

李航书中说,极大似然估计是一种经验风险最小的例子.不是很理解.
结构经验风险=经验风险+结构带来的风险

### 关于机器学习中的损失函数 #### 损失函数的定义 损失函数(Loss Function)或代价函数(Cost Function)是一种将随机事件或与该事件有关的随机变量取值映射为某个非负实数来表示该随机事件存在的“风险”或“损失”的函数[^1]。此概念广泛应用于优化问题,在机器学习领域尤其重要。 #### 主要类型及其应用场景 ##### 回归问题上的损失函数 对于回归问题,通常使用的损失函数有均方误差(Mean Squared Error, MSE),其计算目标是使预测值与真实值之间的平方差最小化。这种类型的损失函数适合处理连续数值输出的任务,比如房价预测等。 ```python import numpy as np def mean_squared_error(y_true, y_pred): return np.mean((y_true - y_pred)**2) ``` ##### 分类问题上的损失函数 ###### 对数损失/二分类交叉熵损失 对数损失(Log Loss),即二分类交叉熵损失(Cross Entropy Loss),适用于二分类问题。通过衡量模型给出的概率分布和实际标签间的距离来进行性能评价。当模型倾向于给出更接近真实的概率估计时,相应的对数损失会更低[^2]。 ```python from sklearn.metrics import log_loss # 假设这是两个样本的真实标签(0 或 1) 和对应的预测概率([p_0, p_1]) true_labels = [0, 1] predicted_probabilities = [[0.9, 0.1], [0.4, 0.6]] logloss_value = log_loss(true_labels, predicted_probabilities) print(f'Log loss value is {logloss_value}') ``` ###### 铰链损失(Hinge Loss) 铰链损失主要用于支持向量机(Support Vector Machine, SVM)中作为分类器训练的目标函数。相比于其他形式的损失函数,它可以更好地捕捉边界情况下的错误惩罚力度,并有助于构建最大间隔超平面[^3]。 ```python from sklearn.svm import SVC from sklearn.metrics import hinge_loss svm_model = SVC(kernel='linear', C=1, random_state=42) # 训练数据X_train以及对应的真实标签y_train... hingeloss_value = hinge_loss(y_train, svm_model.decision_function(X_train)) print(f'Hinge loss value is {hingeloss_value}') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值