深度学习 / 数据处理:如何处理偏态数据

1 前言

当我们使用一个线性回归模型时,通常这个模型是在很大假设的前提下才有一个很好的结果:

  • 1、假设预测因子和预测目标之间的关系是线性的
  • 2、数据不存在外在噪声:不存在一些极端的数据
  • 3、非共线性( collinearity):如果你的预测因子和预测目标之间高相关,可能会发生过拟合
  • 4、正态分布:如果预测因子和目标变量是正态分布,则可以进行更可靠的预测
  • 5、尺度:因为它是一个基于距离的算法,所以预测因子应该进行归一化,使得在相关的量纲或者量级上

其中,对于第四点,说明了数据应该符合一个高斯分布,如下所示:

在这里插入图片描述

可能你使用的数据并不是一个完美的高斯分布,也无法处理为一个完美的高斯分布,但是并不意味着你不去尝试,下面介绍如何处理偏态数据。

什么是偏态数据

  • 偏态数据:当数据的分布曲线不对称时(与完全对称的正态分布曲线相比)。
  • 数据中有两种不同类型的偏态,左(负)或右(正)偏。
    在这里插入图片描述
    给个降水数据的一般分布情况:
    在这里插入图片描述

2 偏态数据的影响

  • 降低模型(特别是基于回归的模型)描述典型case的能力:因为它必须处理极端值的罕见case。也就是说,右偏的数据在低值上的预测结果,比在高值上的预测结果更好。偏态的数据也不适用于许多统计方法。但是,基于tree的模型不受影响。

为了避免机器学习模型的能力不被影响,应该对偏态数据进行处理,处理为一个近似标准正态分布,处理的方法取决于数据的特征。

3 处理偏态数据的方法

3.1

log转换 可能是第一种应该尝试的方法来去除偏态分布

y = np.log1p(y)
  • 这个实际上就是log(1+x),这个对于降水数据的去偏还是挺不错的

  • 注意:无法转换0或负值(为所有值添加常数以确保值 > 1)

3.2 剔除极端值

对于降水数据不太适合,因为降水数据本身就是大部分为晴天,异常降水是少部分,是典型的右偏数据类型。

3.3 最大最小正态化

3.4 立方根转换

当值太大时,可以做一个立方根
可以应用于负值

具体没有试过,感觉对于降水数据不适用

3.5 平方根转换

y = np.sqrt(y)
  • 不适用于包含负值的数据

3.6 倒数转换

3.7 平方转换

  • 适用于左偏数据分布

3.8 Box Cox transformation

scipy已经封装好了,可以之间调用.
而且这个方法和log转换差不多,也并不复杂

from scipy import stats
y = stats.boxcox(y)

基于下面的方程进行转换,只适用于正值
在这里插入图片描述
当包含负值时,可以使用以下的方程:
在这里插入图片描述

3.9 对于预测目标的变量进行重采样

  • undersampling
  • oversampling
  • SMOTE

本质上没有解决模型对于偏态数据的学习处理能力

总结

总的来说,对于降水这种偏态分布的数据来说,使用log转换和box cox转换都是有作用且存在必要的的。

引用

1、 https://www.e-education.psu.edu/meteo810/content/l5_p5.html
2、 https://www.mdpi.com/2076-3417/10/18/6247 Handling Skewed Data: A
Comparison of Two Popular Methods
3、 https://www.sciencedirect.com/science/article/abs/pii/S0022169423002895
A comprehensive implementation of the log, Box-Cox and log-sinh transformations for skewed and censored precipitation data
4、 https://stats.stackexchange.com/questions/47698/kriging-on-log-transformed-rainfall-data
5、 https://www.researchgate.net/publication/239792614_RAINBOW-A_software_package_for_hydro_meteorological_frequency_analysis_and_testing_the_homogeneity_of_historical_data_sets
6、 https://blogs.ubc.ca/colinmahony/2014/10/17/should-precipitation-variables-be-transformed-prior-to-pca/
Should precipitation variables be transformed prior to PCA?
7、 https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4120293/
Log-transformation and its implications for data analysis
8、 https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2020GL089794
Skewness of Temperature Data Implies an Abrupt Change in the Climate System Between 1985 and 1991
9、 https://journals.physiology.org/doi/full/10.1152/advan.00018.2018
Explorations in statistics: the log transformation

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

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

相关文章

利用弱监督学习实现从单张图像到图像集的准确3D人脸重建:PyTorch和Python的深度实践

在这篇文章中,我将带你走进3D人脸重建的世界,并介绍如何使用弱监督学习从单张图像或图像集中准确重建3D人脸。我们将使用Python和PyTorch,一种广泛用于深度学习的开源框架,来实现这一目标。 一、概述 3D人脸重建是计算机视觉领域…

新增进程管理、SSH会话管理功能,1Panel开源面板v1.4.0发布

2023年7月17日,现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.4.0版本。 在这个版本中,1Panel新增了进程管理和SSH会话管理功能;支持容器编辑和升级,数据库兼容MySQL 5.6;备份账号可以添加微软OneDrive&…

github简单使用

留个链接等着吃灰 链接github的使用 举例 先选择需要上传的文件夹 比如db -main文件夹 gitbash 打开shell 进行如下的操作 一般都得写的东西 git init git remote add origin 想要上传的地址 git pull 将远程库拉过来 如果远程没有文件的话 那么shell就显示没有文件 git …

【Vue】 在 vue 中使用 iframe 挂载 html 文件

文章目录 首先需要将要挂载的html文件放到public 文件夹中 路径的引用形式 <iframe ref"sheet" src"/luckysheet.html" width"100%" height"100%"></iframe>通过绑定 ref 获取到 iframe&#xff0c;data为我需要传递的数…

Vscode自定义注释模板

首先安装插件Doxygen Documentation Generator&#xff0c;安装完成之后点击Doxygen插件的设置&#xff0c;按照下面的步骤打开settings.json进行编辑&#xff1a; 在settings.json中追加如下代码&#xff1a; "doxdocgen.file.copyrightTag": ["Copyright (C),…

Python一行命令搭建HTTP服务器并外网访问+-+内网穿透

文章目录 1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试 3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 转载自远程内网穿透的文章&#xff1a;【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透…

select 语法和 select 死锁问题

select 语法和 select 死锁问题 引言 本文介绍了 Go 语言中的 select 语法以及与之相关的 select 死锁问题。我们将详细讨论 select 语句的语法&#xff0c;解答常见的疑问&#xff0c;并提供示例代码进行说明。 select 语法 select 用于处理多个通道操作&#xff0c;实现非…

FlinkCDC第四部分-同步mysql到mysql,ctrl就完事~(flink版本1.17.1)

本文介绍了不同源单表-单表同步&#xff0c;不同源多表-单表同步。 注&#xff1a;此版本支持火焰图 Flink版本&#xff1a;1.17.1 环境&#xff1a;Linux CentOS 7.0、jdk1.8 基础文件&#xff1a; flink-1.17.1-bin-scala_2.12.tgz、 flink-connector-jdbc-3.0.0-1.16.…

人工智能与Chat GPT

一本书全面掌握ChatGPT&#xff0c;既有向ChatGPT提问的技巧&#xff0c; 也有构建自己的ChatGPT模型的方法&#xff0c;涵盖开发背景、关联技术、使用方法、应用形式、实用案例等 人工智能是我们这个时代最热门的话题&#xff0c;人们既希望它能代替我们做一些工作&#xff0c…

云原生——Docker容器化实战

❄️作者介绍&#xff1a;奇妙的大歪❄️ &#x1f380;个人名言&#xff1a;但行前路&#xff0c;不负韶华&#xff01;&#x1f380; &#x1f43d;个人简介&#xff1a;云计算网络运维专业人员&#x1f43d; 前言 "Docker"一词指代了多个概念&#xff0c;包括开源…

uniapp调接口出现跨域问题。

今天在写uniapp项目的时候&#xff0c;使用在线模拟接口的时候&#xff0c;出现跨域问题。 【问题描述】&#xff1a; ①在内嵌浏览器运行&#xff0c;不会出现跨域问题&#xff0c;好像是内嵌浏览器自动去掉了跨域问题。 ②在外部浏览器调用的时候会出现跨域问题。&#xf…

IDEA 搭建Android 开发环境

项目实战 废话不多说开始创建先第一个 Android 项目 步骤一 FILE → New → Project 步骤二-选择 Android 项目模板 选那个安卓机器人,如果没有这个选项,需要升级IDEA版本或者安装安卓插件 选择*Basic Activity* Next-下一步 步骤三-项目初始化 名称、包名、安装位置自行调整…

Cadence PCB 仿真激励专题

&#x1f3e1;《总目录》   &#x1f3e1;《宝典目录》 目录 1&#xff0c;内容概述2&#xff0c;内容目录 1&#xff0c;内容概述 本专题详细介绍Cadence PCB仿真的激励源。 2&#xff0c;内容目录 Cadence PCB仿真 使用 Allegro PCB SI 激励信号源参数Simulation配置方法图…

3DE重客户端安装

3DE重客户端安装 一、百度网盘下载路径二、详细安装步骤 一、百度网盘下载路径 https://pan.baidu.com/s/16TltMRbrWuSe7p-Vn1x4Dw?pwdfku7 提取码&#xff1a;fku7 二、详细安装步骤 1、将\3deinstall\2022x_install_GA目录下的所有.tar文件全选解压 2.点击\3deinstall\…

ubuntu 20.04, 22.04网络配置比较

1.ubuntu 20.04网络配置&#xff0c;配置静态IP&#xff1a;切换roote用户&#xff0c;vi /etc/netplan/00-installer-config.yaml&#xff0c;修改网络配置&#xff0c;格式如下&#xff1a; network: ethernets: ens33: dhcp4: false addresses: [172.22.…

切换.net Framework 版本后,出现NuGet 包是使用不同于当前目标框架的目标框架安装的,可能需要重新安装

问题现象&#xff1a; 由于添加新的dll文件&#xff0c;依赖的.NET Framework版本与当前的不一致&#xff0c;在vs 中切换了目标框架版本后&#xff0c;运行程序&#xff0c;出现以下的warnning信息&#xff1a; 一些 NuGet 包是使用不同于当前目标框架的目标框架安装的&#…

《代码中的软件工程》学习总结/心得体会

《代码中的软件工程》阅读总结回顾 参考资料《代码中的软件工程》https://gitee.com/mengning997/se 终于系统性的阅读完了这本《代码中的软件工程》&#xff0c;受益匪浅。我本科时也上过软件工程这门课程&#xff0c;但是学到的东西诚然是没有在这本书中学到的多的&#xf…

APSIM模型的参数优化

随着数字农业和智慧农业的发展&#xff0c;基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。 APSIM (Agricultural Production Systems sIMulator)模型[1]是世界知名的…

C++STL:无序关联容器

文章目录 1. 无序关联容器1.1 概述1.2 无序容器种类 2. unordered_map2.1 概述2.2 成员方法2.3 创建C unordered_map容器的方法2.4 迭代器2.5 C STL unordered_map获取元素的几种方法2.6 C unordered_map insert()方法2.7 C unordered_map emplace()和emplace_hint()方法2.7.1 …

【稳定性验证】视频流mesh环境下稳定性验证

目录 正常保持上线状态 延时丢包 丢包&#xff08;很稳&#xff09; 延时 丢包 乱序 &#xff08;也很稳&#xff09; webGL lost 正常保持上线状态 延时丢包 丢包&#xff08;很稳&#xff09; 延时 丢包 乱序 &#xff08;也很稳&#xff09; webGL lost