准确率,精度与召回率

准确率,精度与召回率

假设某鱼塘有100条鱼,鲤鱼80条,鲫鱼20条,目标是捕到所有鲫鱼。让某人捕50条鱼,其中20条是鲫鱼,另外30条鲤鱼也当做鲫鱼被捕到。评估此人工作。

TP(True Positive):被判定为正样本,事实上也是正样本。

TN(True Negative):被判定为负样本,事实上也是负样本。

FP(False Positive):被判定为正样本,但事实上是负样本。

FN(False Negative):被判定为负样本,但事实上是正样本。

此时:TP=20,TN=50,FP=30,FN=0

准确率

对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率

Accuracy=(TP+TN)/100=70%

精度

它计算的是预测正类预测正确的样本数,占预测是正类的样本数的比例。

Precision=TP/(TP+FP)=40%

召回率

它计算的是预测正类预测正确的样本数,占实际是正类的样本数的比例

Recall=TP/(TP+FN)=100%

### 提高机器学习模型的准确率精度召回率 #### 准确率(Accuracy) 准确率是指分类器预测正确的样本数占总样本数的比例。对于均衡的数据集来说,准确率是一个有效的评估标准。然而,在类别不均衡的情况下,仅依赖于准确率可能会误导模型的表现评估[^1]。 为了提高准确率,可以采取以下措施: - **增加数据量**:更多的高质量训练数据有助于捕捉更广泛的模式。 - **特征工程**:通过创建新的特征或者改进现有特征来增强模型的能力。 - **调整算法参数**:优化超参数设置以找到最佳配置。 ```python from sklearn.model_selection import GridSearchCV param_grid = {'C': [0.1, 1, 10], 'gamma': [1, 0.1, 0.01]} grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5) grid_search.fit(X_train, y_train) ``` #### 精度(Precision)召回率(Recall) 精度表示被预测为正类中的真实正类比例;而召回率则是指所有实际正类中被正确识别出来的比例。这两者通常存在一种反向关系,即当其中一个指标上升时另一个可能下降[^2]。 改善这两种指标的方法包括但不限于: - 使用成本敏感型学习方法处理不平衡数据集问题; - 应用集成技术如随机森林或梯度提升树等复杂模型结构; - 调整决策阈值使得更加偏向关注的方向上获得更好的表现效果。 针对接近零的情况及其解决方案: 如果发现某些特定条件下这些关键性能指标几乎等于零,则可能是由于以下几个原因之一造成的,并需相应地加以解决: - 数据质量问题:检查是否存在标签错误或其他形式噪声干扰了正常训练过程。 - 类别失衡现象严重:尝试采用过采样(Over-sampling) 或欠采样(Under-sampling) 技术重新平衡各类别的数量分布情况。 - 不恰当的选择基础估计函数:更换更适合当前任务特性的另一种类型的分类器试试看是否有改观迹象发生。 ```python from imblearn.over_sampling import SMOTE smote = SMOTE() X_resampled, y_resampled = smote.fit_resample(X_train, y_train) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值