回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在使用Python的sklearn+xgboost模块解决一个分类问题。我有一个高度不平衡的数据,0类占92%,1类只有8%。列车数据集可以在这里下载。<a href="http://www.filedropper.com/kangarootrain" rel="nofollow noreferrer">http://www.filedropper.com/kangarootrain</a></p>
<p>我不能在这个数据集中使用numclaims和claimcst0变量。
此数据集中的变量包括:
id,索赔单0,车辆价值,暴露,车辆车身,车辆年龄,性别,区域,年龄CAT,clm,NUM索赔</p>
<p>性别和年龄是连续变量。Id是该记录的Id。在</p>
<p>前10个记录是</p>
<pre><code>id,claimcst0,veh_value,exposure,veh_body,veh_age,gender,area,agecat,clm,numclaims
1,0,6.43,0.241897754,STNWG,1,M,A,3,0,0
2,0,4.46,0.856522757,STNWG,1,M,A,3,0,0
3,0,1.7,0.417516596,HBACK,1,M,A,4,0,0
4,0,0.48,0.626974524,SEDAN,4,F,A,6,0,0
5,0,1.96,0.089770031,HBACK,1,F,A,2,0,0
6,0,1.78,0.25654335,HBACK,2,M,A,3,0,0
7,0,2.7,0.688128611,UTE,2,M,A,1,0,0
8,0,0.94,0.912765859,STNWG,4,M,A,2,0,0
9,0,1.98,0.157753423,SEDAN,2,M,A,4,0,0
</code></pre>
<p>我尝试了几种方法来预测“clm”,这是我的目标变量。我试过knn,RF,svm,nb。我甚至试着对数据进行二次抽样。但无论我做什么,都不能使预测变得更好。使用trees/boosting,我可以得到大约93%的准确率,但这仅仅是因为我正确地预测了所有的0。在</p>
<p>模型也错误地将所有的1都预测为0。在</p>
<p>任何帮助都会很有帮助的。这是我为NB尝试的基本代码。在</p>
^{pr2}$