You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在sklearn中自定义评分器是否会影响GridSearchCV中估计器的损失函数?

SVM损失函数与GridSearchCV自定义评分器的关系
  • SVM的损失函数由自身算法决定,和GridSearchCV的scoring无关
    SVM(比如scikit-learn里的SVC)训练时的损失函数是模型本身的属性,默认是铰链损失(hinge loss)。只要你没修改SVM模型自身的损失函数参数(比如线性SVC的loss参数),不管用不用GridSearchCV,训练过程都会以铰链损失为优化目标,寻找最优分类超平面。

  • GridSearchCV的scoring是超参数筛选的评价标准,不改变模型训练逻辑
    你传入的自定义评分器,只是GridSearchCV用来对比不同超参数组合模型性能的依据。比如你自定义了加权F1或特定召回率,GridSearchCV会在每个超参数组合训练完模型后,用这个评分器计算得分,最终选出得分最高的超参数组合。这个过程完全不会干预SVM的训练过程,模型的损失函数依然保持原来的设置。

  • 代码示例直观说明

    from sklearn.svm import SVC
    from sklearn.model_selection import GridSearchCV
    from sklearn.metrics import make_scorer, recall_score
    
    # 自定义加权召回率评分器
    custom_scorer = make_scorer(recall_score, average='weighted')
    # SVM模型默认使用铰链损失
    svm_model = SVC()
    # 待调优的超参数网格
    param_grid = {'C': [0.1, 1, 10], 'gamma': [0.001, 0.01, 0.1]}
    # 传入自定义scoring执行网格搜索
    grid_search = GridSearchCV(svm_model, param_grid, scoring=custom_scorer)
    grid_search.fit(X_train, y_train)
    

    这段代码里,SVM训练全程用铰链损失优化,GridSearchCV只是用自定义的加权召回率来挑选最优的C和gamma,最终得到的最优模型,其训练损失函数还是铰链损失。

内容的提问来源于stack exchange,提问作者footycrazy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 15:06:03