圈圈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 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题