动手学深度学习18 预测房价竞赛总结

动手学深度学习18 预测房价竞赛总结

视频: https://www.bilibili.com/video/BV15Q4y1o7vc/?vd_source=eb04c9a33e87ceba9c9a2e5f09752ef8
代码: https://www.bilibili.com/video/BV1rh411m7Hb/?vd_source=eb04c9a33e87ceba9c9a2e5f09752ef8

李沐老师代码

第一部分代码是kaggle预测泰坦尼克号人生还。

py 复制代码
conda create -y --force -n ag python=3.8 pip
conda activate ag
pip install 'mxnet<2.0.0'
pip install autogluon
pip install kaggle 
# 配置kaggle秘钥 下载数据集
kaggle c doenload titanic
unzip -o titanic.zip

from autogluon.tabular import TabularDataset, TabularPredictor
# 训练
train_data = TabularDataset('train.csv')
# id, label = 'PassengerId', 'Survived'
id, label = 'ID', 'Sold Price'
# 数据预处理
large_val_cols = ['Lot', 'Total interior livabel area', 'Tax assessed value',
          'Listed Price', 'Last Sold Price']
# 对字符串较长的列取log操作
for c in large_val_cols + [label]:
  train_data[c] = np.log(train_data[c]+1)
# 把pandas自动生成的id列去掉 不参与训练  label列做label
# predictor = TabularPredictor(label=label).fit(train_data.drop(columns=[id]))
# 更好的模型 multimodal选项用transformer抽取特征+多模型融合
predictor = TabularPredictor(label=label).fit(train_data.drop(columns=[id]), 
                        hyperparameters='multimodal',
                        num_stack_levels=1, num_baf_folds=5)

# 预测
import pandas as pd
test_data = TabularDataset('test.csv')
preds = predictor.predict(test_data.drop(columns=[id]))
submission = pd.DataFrame({id:test_data[id], label:preds})
# 生成提交的csv文件
submission.to_csv('submission.csv', index=False)

# 1. autogluon在合理的计算开销下模型还不错
# 2. 虽然可以做自动特征抽取,但是人为数据预处理可能效果更好
# 3. 对于比较大的数据集,计算开销仍旧是瓶颈 gpu或者多台gpu分布式训练。

AutoGluon

代码: https://github.com/autogluon/autogluon

文档: https://auto.gluon.ai/stable/index.html

AutoGluon是一个开源的自动化机器学习(AutoML)工具包,旨在使机器学习变得更加易于使用和普及。它提供了高度自动化的机器学习管道,可以帮助开发者和数据科学家快速构建和部署高性能的机器学习模型,而无需深入了解每个模型的细节。

以下是AutoGluon的一些主要特点和功能:

  1. 自动化调参:AutoGluon能够自动搜索最佳的超参数配置,包括模型选择、特征工程、调参等,从而提高模型的性能和泛化能力。

  2. 多模型支持:支持多种机器学习模型,包括集成学习、神经网络、决策树等,可以根据数据集自动选择合适的模型进行训练。

  3. 高性能:AutoGluon针对大规模数据和高维特征进行了优化,具有较高的训练速度和效率。

  4. 易于使用:提供简洁的API和命令行界面,使用户可以轻松地进行模型训练、评估和部署。

  5. 自动化特征工程:自动处理数据预处理和特征工程,包括缺失值处理、数据标准化、特征选择等。

  6. 模型解释性:提供模型解释性功能,可以帮助用户理解模型的预测结果和特征重要性。

AutoGluon适用于各种机器学习任务,包括分类、回归、聚类等,可以在不同的领域和应用中使用,如金融、医疗、电子商务等。它为机器学习的开发和应用提供了更高的效率和便利性,使更多的开发者和科学家可以利用机器学习技术解决实际问题。

h2o

https://zhuanlan.zhihu.com/p/638874401

集成学习

集成学习会让模型更稳定。

automl

80%的时间去处理数据。

怎么搜集数据,搜集什么样的数据,怎么做数据清洗,搭建数据pipeline, 怎么低成本的获取存储数据。

QA

1: 避免overfit, 调参是必要的,要有一个比较好的验证集。当找到一个很好的超参数效果特别好,就在这个超参数附近调一下看看效果是否会有很大变化。实际应用中调参没那么重要。

2:kaggle比赛 公榜数据是测试数据前半部分,私榜是测试数据后半部分。

3:数据处理,难的是要预测一个任务,机器学习能不能做,要什么样的数据,历史数据是否有用,从哪里找数据,数据怎么获取,噪音数据怎么处理【90%的数据可能都是噪音】,哪些数据是对模型有用的。第一步:思考世界。

4:神经网络调参方法和需要调的参数。

5:nas 搜整个网络的架构【烧钱,还不成熟】,autogulon和pytorch结合做NAS?

Autogluon 和 PyTorch 结合起来进行 NAS(神经架构搜索)是指使用 Autogluon 框架与 PyTorch 深度学习库结合,进行神经网络架构的自动搜索和优化。这种方法旨在通过自动化技术来发现和优化深度学习模型的架构,以提高模型的性能和效率。

Autogluon 是一个自动机器学习工具包,它可以帮助开发者在各种机器学习任务中自动搜索和选择最佳的模型和超参数配置。PyTorch 则是一个流行的深度学习框架,提供了丰富的工具和功能,使得在构建、训练和部署深度学习模型时更加便捷。

因此,将 Autogluon 与 PyTorch 结合使用进行 NAS,意味着利用 Autogluon 提供的自动化搜索技术,结合 PyTorch 提供的深度学习能力,来寻找最优的神经网络结构和超参数配置,以达到更好的模型性能和效果。

6:AutoML是自动机器学习,给一个处理过,样本处理过但是特征没有抽取好的数据,能自动做特征提取训练模型,是ML的一个算法。

7:层数深预测输出的房价都是一样的,说明数值稳定性出了问题,可能把bias弄出来了。或者梯度爆炸或者梯度为0.

8:autogluon有用树模型,DeepLearning大部分模型,autogluon可以理解为一个大容器,里面塞了好多模型。

9:MLP有精细调参的价值。bert transformer也有MLP的实现。

10:xgboost训练房价预测.

11:看数据看那些数据是有用的。可以尝试把单词逐一创建特征项,看看是否有效果,没有的话不要浪费时间。

12:第一版kaggle竞赛,MLP比赛经验。

13:AutoGluon从最简单最快的模型开始,继续往下训练,一直试不同的模型。




相关推荐
Tianyanxiao19 分钟前
如何利用探商宝精准营销,抓住行业机遇——以AI技术与大数据推动企业信息精准筛选
大数据·人工智能·科技·数据分析·深度优先·零售
撞南墙者26 分钟前
OpenCV自学系列(1)——简介和GUI特征操作
人工智能·opencv·计算机视觉
OCR_wintone42127 分钟前
易泊车牌识别相机,助力智慧工地建设
人工智能·数码相机·ocr
进击的六角龙1 小时前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
王哈哈^_^1 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
一者仁心1 小时前
【AI技术】PaddleSpeech
人工智能
是瑶瑶子啦1 小时前
【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)
论文阅读·人工智能·深度学习·视觉检测·空间变换
一只爱好编程的程序猿1 小时前
Java后台生成指定路径下创建指定名称的文件
java·python·数据下载
EasyCVR1 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
Aniay_ivy1 小时前
深入探索 Java 8 Stream 流:高效操作与应用场景
java·开发语言·python