kaggle提交前预估本地cv和LB上的score是否相差很大

有的时候如果因为代码误操作,导致提交后的score特别低,那么贸然提交,就会浪费一次提交机会。

那么,如何预判将要提交的submission.csv是否靠谱呢?

我碰到过这样的情况:
就稍微改了人家的代码,人家代码原始提交大概0.94左右,

结果修改自己代码后,本地cv0.96,提交后LB 0.49。

很明显,这个时候,本地的cv已经错了。

这个时候就需要把自己的cv与人家kernel上的notebook发布的submission.csv进行进行相似度计算:

如果相似度很接近,我们可以放心提交。

如果相似度差距大,我们就要重新检查。

这样就可以节省一次提交机会。

----------------------------------------直接图片上比较相似度,具体代码------------------------------------------------

import matplotlib.pyplot as plt
import datatable as dt

#-----------路径设置----------------
path="/home/appleyuchi/桌面/Kaggle比赛/discussion/"
file1="submission-0.9387-lgb.csv"
# file2="simple_xgboost-2-0.9355-xgb-pupil1.csv"
file2="submission_hour-0.49.csv"

#-----------读取文件-----------------
submission1=dt.fread(path+file1).to_list()
submission2=dt.fread(path+file2).to_list()
import pandas as pd

#----------调包-----------------
import numpy as np
import matplotlib.pyplot as plt 
from matplotlib.ticker import MultipleLocator, FormatStrFormatter 
xmajorLocator = MultipleLocator(1) #将x主刻度标签设置为1的倍数

def minmax_value(list1):
    minvalue=min(list1)
    maxvalue=max(list1)
    return minvalue,maxvalue

#----------第1份提交数据----------------
x=submission1[0]#TransactionID
y1=submission1[1]#isFraud


#----------第2份提交数据----------------
# x=submission1[0]#TransactionID不用在这里重复设置
y2=submission2[1]#isFraud


#----------设定要绘制多少数据点----------------
pointcount=500#这里不要设置的太大,不然就看不清了。
minx,maxx=minmax_value(x[:pointcount])
minyA,maxyA=minmax_value(y1[:pointcount])
minyB,maxyB=minmax_value(y2[:pointcount])
        
maxy1=max(maxyA,maxyB)
miny1=min(minyA,minyB)

#----------设置坐标轴绘制范围----------
plt.axis([minx,maxx,miny1,maxy1])
plt.grid(True)#绘图过程中出现的网格设置

#------------------------------
A,=plt.plot(x[:pointcount],y1[:pointcount],"b-")
B,=plt.plot(x[:pointcount],y2[:pointcount],"r")
#设置主刻度标签的位置,标签文本的格式]


legend=plt.legend(handles=[A,B],labels=[file1,file2])  

plt.show()

file2="simple_xgboost-2-0.9355-xgb-pupil1.csv",结果为:

kaggle提交前预估本地cv和LB上的score是否相差很大_第1张图片

根据图形可以判断,两次kaggle的提交文件相差不大,结论:

可以考虑提交

#--------------------------------------------------------

设置file2="submission_hour-0.49.csv",结果为:

kaggle提交前预估本地cv和LB上的score是否相差很大_第2张图片

根据图形可以判断,两次kaggle的提交文件有较大差异,结论:

此次数据不宜提交,当前训练的代码存在问题。

 

你可能感兴趣的:(Kaggle-数据挖掘与技巧)