Skip to content

Latest commit

 

History

History
62 lines (44 loc) · 4.92 KB

第一次提交反馈.md

File metadata and controls

62 lines (44 loc) · 4.92 KB

第一次提交反馈

审阅导师反馈

  1. checked(定义2)明确定义需要解决的问题。已制定解决问题的策略,并讨论了预期解决方案。

     你需要明确定义一下该问题,这是一个有监督的回归问题,这里你使用的XGBOOST建模求解。
    
  2. checked(分析3)充分讨论了项目中所用的算法和方法,并根据问题特征对其进行了合理调整。

     实际上关于xgboost,你需要更加详细的介绍一下其原理,以及其和GBDT的区别,这部分是实际面试中问到最多的。可以参考如下slides:
     http://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
    
  3. checked(分析4)学生明确定义基准测试结果或用于对比所获得的解决方案效果的阈值。

     实际上,我们要求学员最低达到leaderboard private 的top 10%,这并不是一个很困难的任务,你可以通过参考discussion部分优秀选手的特征工程以及模型,自己进行深入的分析达到这个基准。
     这里建议你提高你的基准到private leaderboard 的top 10%,对于测试集rmpse为0.11773。
     https://www.kaggle.com/c/rossmann-store-sales/leaderboard
    
  4. checked(方法1)清楚记录了所有预处理步骤。纠正了需要解决的数据或输入异常或特征。如果没有必要进行数据处理,则需要给出合理的理由。

     这里你需要说明一下你的数据集关于训练集、验证集的划分方式,对于该题来说这是十分关键的。
    
  5. checked(方法3)清楚记录根据算法和实现上进行改进的过程。报告最初和最终解决方案,如有中间解决方案也请写明。

     很明显,你这里的模型明显是欠拟合的,你可以继续优化下去,一般来说,train loss (rmspe)可以达到0.10左右
    
  6. checked(结果2)使用某些统计分析类型将最终结果与基准测试结果或阈值进行对比。解释最终模型和解决方案是否足以解决问题。

     对于该任务来说,你需要达到kaggle private leaderboard top 10%,对应于大约0.11773的分数。
    
  7. checked(结论3)讨论如何改进某方面的实施。考虑通过这些改进可能解决的问题,并将改进后的解决方案与当前解决方案进行对比。

     关于特征工程部分,可以参考Kaggle discussion 上获奖选手的优秀特征工程方案,大体可以从五大类特征:时间特征、假期特征、促销特征、竞争对手和商店本身的特征 角度进行特征构建,这里也可以使用额外的数据,例如discussion 里提供的天气数据。
     首先你可以尝试换成按照时间顺序划分的验证集,看一下这里和之前随机划分是否会有比较严重的过拟合;
     模型方面,你还可以尝试lightgbm,这也是一个非常优秀的boosting类模型;
     NN的话,你可以参考Kaggle discussion里的一个优秀的solution,也就是使用 Entity Embedding ,可以参考:
         https://arxiv.org/abs/1604.06737
         https://github.com/entron/entity-embedding-rossmann
    

修改

目前最大的问题是模型的表现不好,private=0.16,按照要求要提升到0.11773,首先应该是特征工程部分,这部分也是可提升空间比较大的,以下几个点:

  1. rolling函数计算时序数据的统计值,既然是时序数据,那么这一点还是要利用,之前有过计算但是最终没有使用这些统计数据。
  2. 参考kaggle大神们的做法,原来还可以扩展外部信息,比如天气,这一点确实是一种非常大胆的想法,也体现了更有经验的大神们处理问题的方式,看待问题的角度确实更独特(商店跟州之间的关系,德国各州天气)。
  3. 在特征工程的基础上,将train loss和valid loss降低到0.10~0.11左右,否则在test上肯定无法达到0.11773的得分。
  4. 特征工程之后再进行详细的调参过程。
  5. 衍生想法:流行病相关数据???。

第一次反馈修改流程

  1. Copy Rossmann.ipynb to Rossmann-v2.ipynb
  2. Update base on Rossmann-v2.ipynb & kernel.ipynb
  3. Keep data analysis in Rossmann-v2.ipynb and insert feature, parameters, data handling into Rossmann-v2.ipynb to inplace original this from Kernel.ipynb.
  4. Finally, keep whole data training part to create predict file for kaggle(train_model, whole_model, PS:It is hard to choose a n_estimators value for whole_model, because has not valid data, but I will try some number).
  5. Upload submission file to kaggle and get private and public score, make private score lower than 0.11773.
  6. Update document.
  7. Export pdf from document.
  8. Copy Rossmann-v2.ipynb, document, pdf to Grudation Project folder.
  9. Commit to Udacity.

Think:

  1. What`s feature project need, and how to decide this.
  2. Model choice and parameters opt.