非正态性(双峰)数据正态化处理(sklearn)
Box-Cox变换是Box和Cox在1964年提出的一种广义幂变换方法是统计建模中常用的一种数据变换用于连续的响应变量不满足正态分布的情况。Box-Cox变换之后可以一定程度上减小不可观测的误差和预测变量的相关性。Box-Cox变换的主要特点是引入一个参数通过数据本身估计该参数进而确定应采取的数据变换形式Box-Cox变换可以明显地改善数据的正态性、对称性和方差相等性对许多实际数据都是行之有效的。但是当我们遇到双峰性数据时使用box-cox方法进行处理处理出来的效果往往是不理想的因此我们需要换方法。通过数据处理发现sklearn.preprocessing.QuantileTransformer这个方法处理双峰性数据的效果非常好因此我们接下来讲讲这种方法的具体使用以及对处理后的数据进行正态性检验以及查看峰度和偏度以及q-q图。接下来我们先了解一下sklearn.preprocessing.QuantileTransformer这个方法。此方法将要素转换为遵循均匀或正态分布。因此对于给定的特征此变换趋向于散布最频繁的值。它还减少了边际离群值的影响因此这是一个可靠的预处理方案。变换独立应用于每个功能。首先特征的累积分布函数的估计值用于将原始值映射到均匀分布。然后使用关联的分位数函数将获得的值映射到所需的输出分布。低于或高于拟合范围的新数据/看不见数据的特征值将映射到输出分布的边界。请注意此变换是非线性的。它可能会扭曲以相同比例尺测量的变量之间的线性相关性但会使以不同比例尺测量的变量更直接可比。好了接下来我们进入实战我们以 2022 SAS中国高校数据分析大赛 复赛题目-农产品期货 数据为例子首先导入数据import pandas as pd import numpy as np from scipy import stats import matplotlib.pyplot as plt f pd.read_csv(rC:\Users\bai\Desktop\2022 SAS中国高校数据分析大赛 复赛题目-农产品期货\2022 SAS中国高校数据分析大赛 复赛题目-农产品期货\玉米期货2005-2021日线数据\Corn_dat.csv) f.head() #查看数据导入画图库查看原始数据的分布import seaborn as sns sns.set() #切换到sns的默认运行配置 sns.displot(f[High]) #画直方图画q-q图resstats.probplot(f[High],plotplt) #画q-q图参数检验p值偏度与峰度u f[High].mean() #求均值 std f[High].std() #求方差 result stats.kstest(f[High],norm,(u,std)) #正态分布检验 print(result) #输出结果pvalue大于0.05才满足正态分布print(fSkewness of saleprice: {f[High].skew()}) print(fKurtosis of saleprice: {f[High].kurt()})导入机器学习库对数据进行处理from sklearn.preprocessing import QuantileTransformer #导入sklearn 分位数转换器 将双峰数据正态化 xQuantileTransformer(n_quantiles 300,output_distributionnormal, random_state0) #初始化参数 #f[High].values.reshape(-1,1) 由于在sklearn中所有的数据都应该是二维矩阵哪怕它只是单独一行或一列 #比如前面做预测时仅仅只用了一个样本数据所以需要使用.reshape(1,-1)进行转换 high x.fit_transform(f[High].values.reshape(-1,1)) #调用分位数转换器将数据进行转换high.flatten() #将二维数据降维回来以便后面画图 f[high]high #将正态化的数据写入表 f.head() #查看处理后的数据画处理后的直方图sns.displot(f[high]) #画正态分布图画q-q图resstats.probplot(f[high],plotplt) #画q-q图输出检验参数u f[high].mean() #求均值 std f[high].std() #求方差 result stats.kstest(f[high],norm,(u,std)) #正态分布检验 print(result) #输出结果pvalue大于0.05才满足正态分布 print(fSkewness of saleprice: {f[High].skew()}) print(fKurtosis of saleprice: {f[High].kurt()})将原始数据还原回来方便数据分析fhigh x.inverse_transform(high) #将原始数据还原回来进行数据分析 print(fhigh)还原回来后和原数据相同。接下来就可以进行其他分析啦

相关新闻

Android Binder通信原理(一):简介

Android Binder通信原理(一):简介

源码基于:Android R 0. 前言 在Linux 系统中现有的进程间通信(IPC)方式: 管道(PIPE):在创建时分配一个page大小的内存,缓存区大小比较有限;命名管道(FIFO):考虑 PIPE_BUF 和原子操…

2026/11/10 2:59:36 阅读更多 →
网络安全(DVWA命令执行漏洞)—代码审计思路

网络安全(DVWA命令执行漏洞)—代码审计思路

<?php if( isset( $_POST[ Submit ] ) ) { //查看前端传入的post值submit是否为空// Get input $target trim($_REQUEST[ ip ]); //获取get、post、cookie的ip值传参赋值给$target// Set blacklist $substitutions array( //定义数组&#xff…

2026/11/13 4:10:54 阅读更多 →
超级详细的 FinalShell 安装 及使用教程

超级详细的 FinalShell 安装 及使用教程

一、引言FinalShell 是一款免费的国产的集 SSH 工具、服务器管理、远程桌面加速的良心软件&#xff0c;同时支持 Windows,macOS,Linux&#xff0c;它不单单是一个 SSH 工具&#xff0c;完整的说法应该叫一体化的的服务器&#xff0c;网络管理软件&#xff0c;在很大程度上可以免…

2026/11/10 2:59:54 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年&#xff0c;我大部分时间都在跟浏览器标签页打交道&#xff0c;直到第一次把桌面应用跑起来&#xff0c;才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词&#xff0c;最开始是在某段时间频繁出现在同事的讨论里&#xff0c;一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档&#xff0c;主要面向智能锁安装人员、终端用户及售后维护者&#xff0c;帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件&#xff0c;大小4.37MB&#xff0c;内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统&#xff0c;整车要求空载跑到8m/s&#xff0c;电机转速已经拉到额定点&#xff0c;驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令&#xff0c;转速纹丝不动&#xff0c;三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年&#xff0c;用它写过嵌入式驱动、做过游戏服务端&#xff0c;也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词&#xff0c;我其实挺感慨的——这门语言的难点从来不是语法多&#xff0c;而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书以PDF格式发布&#xff0c;适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开&#xff0c;先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能&#xff0c;再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历&#xff1a;翻开源码注释、论文摘要或者一份专业报告&#xff0c;每个字都认识&#xff0c;连在一起却像天书。想找人聊聊&#xff0c;身边要么没人懂&#xff0c;要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型&#xff0c;几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻