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的提交文件相差不大,結論:
可以考慮提交
#--------------------------------------------------------
設置file2="submission_hour-0.49.csv",結果為:
根據圖形可以判斷,兩次kaggle的提交文件有較大差異,結論:
此次數據不宜提交,當前訓練的代碼存在問題。
?
總結
以上是生活随笔為你收集整理的kaggle提交前预估本地cv和LB上的score是否相差很大的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas的DataFrame转化为D
- 下一篇: XGBoost的GPU用法