首页 > 其他分享 >kaggle竞赛实战6——方案优化之交叉验证

kaggle竞赛实战6——方案优化之交叉验证

时间:2024-06-02 10:31:15浏览次数:22  
标签:实战 index 竞赛 验证 kaggle prediction train test 集上

特征选择一共有两种方法:filter和wrapper,前者根据指标(如相关系数),后者通过模型(如随机森林)筛选

超参数搜索也有三种方法——网格搜索和TPE搜索、贝叶斯优化器搜索等,后两者可以进行一定程度的先验计算,并在实际搜索中不断调整先验判断。

在完成上述过程后,还要用交叉验证来看超参数选择是否合理

模型融合方法:交叉验证——把数据集分五等分,每份分别作为验证集,其它作为训练集,得到验证结果可以参与到后续模型融合中,而在实际测试集上则根据模型融合结果输出结果

具体代码如下:

         # 实例化交叉验证评估器 
         kf = KFold(n_splits=5, random_state=22, shuffle=True) #shuffle参数决定数据是否重新划分
         # 执行交叉验证过程 
         for train_part_index, eval_index in kf.split(train[features], train['target']): 
             # 在训练集上训练模型 
             best_clf.fit(train[features].loc[train_part_index].values, train['target'].loc[train_part_index].values) 
             # 模型训练完成后,输出测试集上预测结果并累加至prediction_test中 
             prediction_test += best_clf.predict(test[features].values) 
             # 输出验证集上预测结果,eval_pre为临时变量 
             eval_pre = best_clf.predict(train[features].loc[eval_index].values) 
             # 输出验证集上预测结果评分,评估指标为MSE 
             score = np.sqrt(mean_squared_error(train['target'].loc[eval_index].values, eval_pre)) 
             # 将本轮验证集上的MSE计算结果添加至cv_score列表中 
             cv_score.append(score) 
             print(score) 
             # 将验证集上的预测结果放到prediction_train中 
             prediction_train = prediction_train.append(pd.Series(best_clf.predict(train[features].loc[eval_index]), 
                                                                  index=eval_index)) 
          
         # 打印每轮验证集得分、5轮验证集的平均得分 
         print(cv_score, sum(cv_score) / 5) 
         # 验证集上预测结果写入本地文件 
         pd.Series(prediction_train.sort_index().values).to_csv(\ preprocess/train_randomforest.csv\ , index=False) 
         # 测试集上平均得分写入本地文件 
         pd.Series(prediction_test / 5).to_csv(\ preprocess/test_randomforest.csv\ , index=False) 
         # 在测试集上加入target,也就是预测标签 
         test['target'] = prediction_test / 5 
         # 将测试集id和标签组成新的DataFrame并写入本地文件,该文件就是后续提交结果 
         test[['card_id', 'target']].to_csv(\ result/submission_randomforest.csv\ , index=False) 
         return 

提交后发现模型从3.654到了3.651,效果略微上升

标签:实战,index,竞赛,验证,kaggle,prediction,train,test,集上
From: https://blog.csdn.net/m0_60792028/article/details/139383730

相关文章

  • 06.爬虫---urllib与requests请求实战(POST)
    06.urllib与requests请求实战POST1.Urllib模块2.Requests模块3.实战(Requests)POST请求Python中的POST请求是HTTP协议中的一种请求方法,用于向服务器提交数据。与GET请求不同,POST请求将数据封装在请求体中,而不是在URL中传递。通常情况下,POST请求用于向服务器提交表单......
  • 【scikit-learn009】异常检测系列:单类支持向量机(OC-SVM)实战总结(看这篇就够了,已更新)
    1.一直以来想写下机器学习训练AI算法的系列文章,作为较火的机器学习框架,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。2.熟悉、梳理、总结下scikit-learn框架OCSVM模型相关知识体系。3.欢迎批评指正,欢迎互三,跪谢一键三连!4.欢迎批评指正......
  • 【Django技术深潜】揭秘Django定时任务利器:django_apscheduler全面解析与实战
    在现代Web开发中,定时任务是不可或缺的一部分,无论是定期数据分析、定时发送邮件、还是系统维护脚本,都需要精准的定时调度。Django作为Python世界中强大的Web框架,其对定时任务的支持自然也是开发者关注的重点。本文将深入探讨Django定时任务解决方案,特别是聚焦于django_apscheduler......
  • 众测项目实战--有趣的xss漏洞
    这是一个挺有意思的xss漏洞,正常情况下,一个邮件存在xss漏洞,就可以发给其他普通用户,危害一般也就只能截止到去攻击普通用户,但是这个案例的邮件就很有意思了。打开网站,发现是一个经典的商城界面,这种网站,需要先去注册,注册之后,才能去测试各种功能和各种漏洞。注册后,直接进入个人......
  • Goose Goose Duck(第八届河北省大学生程序设计竞赛)
    #include<bits/stdc++.h>#defineendl'\n'usingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();structsb{inta,b,c;};signedmain(){#ifdefGordenfreopen("in.txt","r......
  • 2024拼多多 最新理论+实战干货,从入门到精通全链路多角度学习-7节课
    基于最新规则理论结合实际的干货课程内容:012024年多多防比价新规则破局理论课与实操课.mp40224年多多强付费第二节课基础内功.mp40324年多多强付费第三节课直通车实操.mp40424年多多强付费第一节课市场定价格段,mp40524年多多自然流第一节课市场分析-small.mp40......
  • 掘金AI 商战 宝典 初级班:如何用AI做文案(实战实操 现学现用 玩赚超值)
    未来会用AIE剑客将干掉99.99%不会AI的人!课程目录:10-第十讲用AI面试11-第十一讲用AI写演讲稿12-第十二讲用AI写工作总结13-第十三讲用AI写日报周报14-第十四讲用AI拟定各类合同15-第十五讲用AI写课程教案16-第十六讲用AI做商业分析17-第十七讲用AI写工作邮件1-第一......
  • 鸿蒙HarmonyOS实战-Web组件(请求响应和页面调试)
    ......
  • 数据分析实战2---时间序列分析
    项目背景:本实训以自行车租赁统计数据为例,使用Pandas中的时间序列分析方法,探究自行车租赁数据随时间及天气变化的分布情况。采用的数据可在Kaggle网站(BikeSharingDemandStella|Kaggle)下载任务步骤:1.导入模块importpandasaspdimportnumpyasnpimportmatplotlib.......
  • 第二十一届宁波大学程序设计竞赛(同步赛) A,B,D,F,H题解
    链接:第二十一届宁波大学程序设计竞赛(同步赛)_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ(nowcoder.com)A:直接输出不多解释B:B-LoveYouGuys_第二十一届宁波大学程序设计竞赛(同步赛)(nowcoder.com)#include<bits/stdc++.h>usingnamespacestd;intx,y......