圈圈456 2022-05-27 22:49 采纳率: 90.9%
浏览 64
已结题

Python-交叉验证得到最优模型?

问题遇到的现象和发生背景

我现在是在使用Python的sklearn做GBDT,现在主要遇到的问题是:使用交叉验证得到最优模型。但问题是我不知道怎么使用k折的交叉验证得到最优模型。因为k折的交叉验证是将数据分为k份数据,每个数据用于模型,但得到的k个模型怎样进行整合,或是怎样得到最优模型?
并且怎么使用随机搜索进行最优参数的选取?

  • 写回答

3条回答 默认 最新

  • 梦什 2022-05-27 23:45
    关注

    如果你能接受调包的话,就是下面这样
    我这里是以决策树模型为例的:
    k折交叉验证

    # 代码实现
    from sklearn.model_selection import cross_val_score
    acc = cross_val_score(model, X, y, cv=5)        
    # 5折交叉验证,默认是3折,这里没有设置scoring参数,所以是用默认的 'accuracy'(准确度)作为评估标准
    print(acc)
    
    # 5折交叉验证的均值
    acc.mean()
    

    网格搜索(需要自己输入参数)

    import numpy as np
    from sklearn.model_selection import GridSearchCV
    
    # 指定参数范围,最大深度,特征选择标准,子节点往下分裂所需的最小样本数
    parameters = {'max_depth':np.arange(5,14,2),
                 'criterion':['gini','entropy'],
                 'min_samples_split':np.arange(5,16,2)}
    
    # 构建决策树模型
    model = DecisionTreeClassifier()
    
    # 网格搜索
    grid_search = GridSearchCV(model,parameters,scoring='roc_auc',cv=5)
    
    grid_search.fit(X_train,y_train)
    
    # 输出参数的最优值
    grid_search.best_params_
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月11日
  • 已采纳回答 6月3日
  • 创建了问题 5月27日

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作