机器学习调优方法总结

目录

一、问题

问题1:数据输入

问题2:output和target维度不匹配

问题3:NLP中处理数据有哪些方法?

二、改进

改进1:改变归一化函数

改进1.1:用StandardScaler替换MinMaxScale

改进1.2:数据正态化

改进2:使用随机搜索的方法来找到最优参数

改进2.1:使用随机搜索的方法来寻找最优的参数

改进3:模型改进

改进3.1:将机器学习模型转换为Transformer模型


问题描述:

本项目旨在利用包含 79 个解释变量的数据集,预测爱荷华州埃姆斯市住宅的最终价格。数据集提供了房屋的详细信息,如地理位置、面积、房间数量、建筑材料等。我们将通过数据预处理、特征工程、模型选择和训练、模型评估等步骤,构建一个准确的房价预测模型。

一、问题

问题1:数据输入

提问:在用Transformer进行预测的时候,怎么处理输入数据呢?

思考:理想方式是处理成什么样的数据呢?(1468*79*64)

方法1:把1468 * 79转化成str list,然后放入Word2Vec中,就可以变成1468*79*64型数据

方法2:把1468 * 79转化成整数数值,然后放入nn.Embedding中,就可以变成1468*79*64型数据

提升都不大

问题2:output和target维度不匹配

提问:输入数据维度是(32,79,64),最后Encoder输出的维度是(32,79,1),这很正常,但是Target的维度是(32,1),这个时候又该怎么调整这个输出以达到维度合适呢?

方法1:x.mean(dim = 1) 在79的那个维度上取平均值,然后就变成了(32,1)

方法2:flatten + linear 没办法提升

问题3:NLP中处理数据有哪些方法?

这是问题1的引申问题,garbage in garbage out原则

二、改进

改进1:改变归一化函数

改进1.1:用StandardScaler替换MinMaxScale

改进效果:有效果,由0.21提升到0.178

原因:在进入Transformer结构之前,数据进行标准化,StandardScaler比MinMaxScaler好,在训练集和测试集上,MinMaxScaler效果很好,但是实际效果很差。在inverse_transform的时候MinMaxScaler有很大的误差!

在Transformer或者Stacking上都有提升

改进1.2:数据正态化

改进效果:有效果,由0.178提升到0.174

原因:既然改进1有效果,那就在这个方向上继续改进,加入了下面这段代码,将数据正态化,原因是StandardScaler在正态分布上的效果更好。

scaler_norm_saleprice = PowerTransformer(method='yeo-johnson')

改进2:使用随机搜索的方法来找到最优参数

改进2.1:使用随机搜索的方法来寻找机器学习最优的参数

改进效果:没有很大改变

改进2.2:减小模型的规模,减少每次训练的数据量

改进效果:没有很大改变

因为数据量不够多,减小模型的规模,减少训练的数据量,来帮助收敛

改进3:模型方面改进和优化

改进3.1:将机器学习模型转换为Transformer模型

改进效果:有效果,0.17到0.14

原因:建模用的Transformer模型甚至只用了6层Encoder,数据也没处理,模型架构也很粗糙,参数也没有调整,效果就有很大提升

Transformer方面:

优化1:在处理好了数据之后,用nn.Embedding和标准的Position Embedding;

优化2:调整超参数;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/52203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单的jar包重打包Failed to get nested archive for entry 报错处理

简单的jar包重打包Failed to get nested archive for entry 报错处理 1. 需求 公司有一个后端项目,项目已经打好了jar包,现在我们发现jar包依赖的子包有问题,其中的一个mybatis xml文件查询数据不正确,我们需要替换项目&#xf…

批量将labelme的json文件转为png图片查看

文章目录 前提修改 l a b e l m e labelme labelme然后你就可以在这个环境下用代码批量修改了 前提 安装anaconda或者miniconda安装labelme 修改 l a b e l m e labelme labelme 查看labelme所处环境的路径:conda info --envs 比如我的是在py39_torch里面 修改la…

秋招力扣Hot100刷题总结——链表

1. 反转链表题目连接 题目要求:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 代码及思路 遍历所有节点,将所有节点的next指向前一个节点由于要改变节点的next指向,而链表是单向的,因此需要…

Radiance Field Learners As UAVFirst-Person Viewers 翻译

作为无人机第一人称视角的辐射场学习者 引言。第一人称视角(FPV)在无人机飞行轨迹的革新方面具有巨大的潜力,为复杂建筑结构的导航提供了一条令人振奋的途径。然而,传统的神经辐射场(NeRF)方法面临着诸如每…

PyQt5 QSS

一、 二、 三、课堂练习 1.课时122.QSS基础_哔哩哔哩_bilibili import sys, os from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtPrintSupport import QPrinter,QPageSetup…

【Mac】植物大战僵尸杂交版 for Mac(经典策略塔防游戏)游戏介绍

游戏介绍 植物大战僵尸杂交版 for Mac是一款非常受欢迎的策略塔防游戏,植物大战僵尸游戏以其独特的主题、幽默的风格和富有挑战性的关卡设计而著称。玩家需要种植各种植物来防御入侵的僵尸,每种植物都有其特定的功能和攻击方式。植物大战僵尸杂交版&…

Android 上下滑隐藏显示状态栏

一、DisplayPolicy类中监听滑动事件,然后发送广播事件 Android12类路径: frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.javamSystemGestures new SystemGesturesPointerEventListener(mUiContext, mHandler,new SystemGest…

SQL注入(head、报错、盲注)

目录 【学习目标、重难点知识】 【学习目标】 【重难点知识】 1. 报错注入 1.1 那么什么是报错注入呢? 1.2 报错注入原理 extractvalue函数 updatexml函数 1.3 靶场解析 靶场练习 2. HEAD注入 2.1 相关全局变量 2.2 靶场解析 burp暴力破解 靶场练习 3…

PostgreSQL的pg_dump中 --inserts参数测试

PostgreSQL的pg_dump中 --inserts参数测试 1 准备测试数据 创建表yewu1.t1,并插入1000000条数据。 white# create table yewu1.t1 (id int,name varchar(20)); CREATE TABLE white# DO $$ white$# DECLARE aa INTEGER; white$# BEGIN white$# FOR aa IN 1..1…

java常见面试题汇总

🌏个人博客主页:意疏-CSDN博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 关注 收藏支持一下笔者吧~ 阅读指南: 开篇说明一、封装 继承 多态1.封装2.继承3.多态 二、什么是重载…

初始化列表 / 隐式转换 / 静态

目录 初始化列表隐式转换单参数的隐式类型转换多参数的隐式类型转换explicit关键字 static 初始化列表 大部分时候成员变量在对象实例化的时候调用构造函数就整体定义了,注意此时只有定义,不算初始化。而定义后的值的值是在构造函数里面给的。我们知道构…

Java并发编程(20)—— ConcurrentHashMap详解

ConcurrentHashMap是Java并发很重要的组件,也是大厂面试经常考察的对象,下面我就全面来详解ConcurrentHashMap 1. ConcurrentHashMap ConcurrentHashMap是Java集合框架中的一个线程安全的哈希表实现,它支持高效地并发访问和修改操作。 我们知道HashMap是线程不安全的,在多线…

DataWorks函数

文章目录 0、MaxCompute预置的函数分类1、日期函数2、数学函数3、算术运算符4、窗口函数5、聚合函数6、字符串函数7、复杂类型函数8、加密函数9、其他函数 0、MaxCompute预置的函数分类 函数类型说明日期函数支持处理DATE、DATETIME、TIMESTAMP等日期类型数据,实现…

oracle liunx 常用命令

前言 Oracle Linux 是一个企业级的 Linux 发行版,基于 Red Hat Enterprise Linux (RHEL)。在 Oracle Linux 上使用常用的 Linux 命令来管理系统和数据库是很普遍的。以下是一些常用的 Oracle Linux 命令和它们的功能说明: 1. 文件和目录管理 ls&#…

<数据集>无人机航拍不同高度牧羊识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:6065张 标注数量(xml文件个数):6065 标注数量(txt文件个数):6065 标注类别数:1 标注类别名称:[sheep] 序号类别名称图片数框数1sheep6065149785 使用标注工具&…

每日一题~abc 367 D+E(F 在上一篇)(区间和相关的计数问题前缀map,建图+倍增)

D题意: 环形的休息区,编号为 1-N,顺时针方向,从休息区i 到i1 需要的代价是 ai, 从休息区 s 顺时针走到休息区 t ( s!t )所需的最小步数是 M 的倍数。 找出可能的配对数 (s,t) 1.解决环形的问题:…

【51单片机】ds18b20驱动,11.0592MHZ,使用DS18b20

文章目录 ds18b20.h #include <reg52.h> #include <intrins.h> #include <math.h>// 管脚定义 sbit DS18B20_DATA_PIN = P1 ^ 0; // DS18B20数据口定义/******************************************************************************* * 函 数 名 …

Macos M1 IDEA本地调试 HBase 2.2.2

# 1. 前提 执行 mvn clean package assembly:single -DskipTests没问题&#xff0c;并在hbase-assembly/target目录下生成hbase-2.2.2-bin.tar.gz 文件夹 证明Maven 下载依赖没问题 1.1 报错 1 这里应该是报错找不到 com.google.protobuf:protoc:exe:osx-aarch_64:3.5.1 …

leetcode滑动窗口问题

想成功先发疯&#xff0c;不顾一切向前冲。 第一种 定长滑动窗口 . - 力扣&#xff08;LeetCode&#xff09;1456.定长子串中的元音的最大数目. - 力扣&#xff08;LeetCode&#xff09; No.1 定长滑窗套路 我总结成三步&#xff1a;入-更新-出。 1. 入&#xff1a;下标为…

docker inspect输出内容详解,推测容器运行命令

原始输出 [{"Id": "c2496d852ee3affd295a177e9f26f163a53da8d11e3708d6a479f189f707ad0b","Created": "2024-08-04T02:43:24.909341103Z","Path": "/startup.sh","Args": [],"State": {&quo…