18-预测房价竞赛总结

18-预测房价竞赛总结

本节目录

1.方法总结

下面提供了排行榜前几使用的方法介绍链接

2.分析

  • 已知的排名靠前的4个成绩均使用了集成学习

  • 目前不知道是否有使用书中的mlp取得好成绩

    通过调参数,是能够取得很好的结果的

    对于mlp来说,特征预处理和超参数的调节是取得好成绩的基础

  • 数据的难点

    • 数值较大

      梯度相对较大,容易发生梯度爆炸

      一个解决方案是可以对数据取对数,再进行标准化

    • 有文本特征(地址,介绍)

      这些文字可能含有较多的噪声,对模型产生影响

      解决办法日后会讲解,比如第二名用的transformer

    • 训练数据是前6个月,公榜是后3个月,私榜是再往后3个月

      利用历史的数据进行训练,在实践中自然会有不同的影响(可能过拟合)

      因此公榜与私榜的排名有一定差异

             这个问题称为Covariate Shift,没有特别好的解决方案  ,可以让模型尽可能稳定,不去仔细调参
      

3.关于automl

3.1 课程内容

这一部分李沐老师要表达的主要是我们应该深入去了解本后的原理,不要因为有"自动化"深度学习而产生一种依赖心理或者变得没有深究深度学习的动力,学习deep learning仍然是有意义的

  • 数据科学家80%时间在处理数据,20%调模型

    处理数据是automl不能做的,automl的作用主要在调模型这块,数据科学家仍然能大展身手

  • Automl现在能处理一些基础的情况

    目前节省10%时间,未来节省20%时间

  • 为什么还要学习深度学习

    正如买菜只需要用到四则运算甚至不用,我们仍然需要学习三角函数去进行更深入的科学研究等其他事情。当人人都会用Automl的时候,我们仍然需要懂得一些底层的原理,毕竟Automl也是有局限性的,需要我们不断改进,或者想出其他算法。另一方面,我们也要肯定Automl带来的便利。

3.2 补充内容

AutoGluon

与大部分automl框架是基于超参数搜索技术的不同,Autogluon会利用多个机器学习包来训练模型

  • 房价预测竞赛中模型的改动

    1.对于数据中数值比较大且数据变化大的数值取log,CPU上训练2个小时,最终排第七

    2.房子描述里包含大量文本,使用mutimodal选项来用transformer提取特征,并做多模型融合,用GPU才跑得动,排名第二

  • AutoGluon背后的技术

    1.stacking

    2.k-则交叉bagging

    3.多层stacking

  • 总结

    1.autogluon在合理的计算开销下得到还不错的模型

    2.虽然autogluon可以做自动特征抽取,但是当加入一些人工数据处理也是不错的方法

    3.对于比较大的数据集计算开销仍然是瓶颈,需要使用GPU甚至多台机器做分布式训练,这仍是AutoML未来的研究方向

    4.具体讲解可参考:https://www.bilibili.com/video/BV1F84y1F7Ps/?spm_id_from=333.788.recommend_more_video.1

4.总结

这节课本身就是一次对预测房价竞赛的总结,主要介绍了排名的分布情况以及一些队伍使用的方法。

5.预测房价竞赛总结 Q&A

Q1: 统计学专业本科生未来从事人工智能如何规划

注重动手能力的培养

Q2: 避免overfit是调参好还是不调参好?老师有何经验分享?

调参是需要的,首先最好有一个比较好的验证集;当你找到一个在验证集效果比较好的超参数值的时候,最好在这一值上调或下调一点看看是否敏感,如果比较敏感说明这点可能只是在这点凑巧效果好罢了,泛化性就不好;当然在实践中调参并没有像在竞赛中那么重要

Q3: 老师说的80%时间处理数据是指的找数据、清理数据这些?数据搭建pipeline不就好了, ?为什么改进模型等等不占主要时间?

处理数据并不是搭建pipeline就好了,你需要决定从哪里获取数据、怎样获取数据、如何处理噪音(清理数据)……这些都是很费时间的

Q4: AutoML与ML有严格的特征区别吗

AutoML可以看作是ML中的一类算法

Q5: 用mlp做竞赛时发现层数深的时候预测出来的房价全是一样的,层数浅一点还不会出现这个问题,为什么?

应该是梯度爆炸,或者梯度消失,也就是数值稳定性出现问题

Q6:MLP有值得精细调参的价值吗?

有。

上一页
下一页