数据集特征预处理

news/2024/5/19 1:34:04/文章来源:https://blog.csdn.net/qq_42402817/article/details/133999085

1、什么是特征预处理

1.1、什么是特征预处理

  • scikit-learn的解释

provides several common utility functions and transformer classes to change raw feature vectors into a representation that is more suitable for the downstream estimators.

翻译过来:通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程

可以通过下面那张图来理解
在这里插入图片描述

1.2、包含内容

  • 数值型数据的无量纲化:
    • 归一化
    • 标准化

1.3、特征预处理API

sklearn.preprocessing

为什么我们要进行归一化/标准化?
特征的单位或者大小相差较大或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征;

约会对象数据

在这里插入图片描述
我们需要用到一些方法进行无量纲化使不同规格的数据转换到同一规格

2、归一化

2.1、定义

通过对原始数据进行变换把数据映射到(默认为[0,1])之间

2.2、公式

在这里插入图片描述

作用于每一列,max为一列的最大值,min为一列的最小值,那么X’’为最终结果,
mx,mi分别为指定区间值默认mx为1,mi为0

那么怎么理解这个过程呢?我们通过一个例子
在这里插入图片描述

2.3、API

  • sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
    • MinMaxScalar.fit_transform(X)
      • X:numpy array格式的数据[n_samples,n_features]
    • 返回值:转换后的形状相同的array

2.4、数据计算

我们对以下数据进行运算,在dating.txt中。保存的就是之前的约会对象数据

milage,Liters,Consumtime,target
40920,8.326976,0.953952,3
14488,7.153469,1.673904,2
26052,1.441871,0.805124,1
75136,13.147394,0.428964,1
38344,1.669788,0.134296,1

import pandas as pd
from sklearn.preprocessing import MinMaxScalerdef minmax_demo():"""归一化演示:return: None"""data = pd.read_csv("dating.txt")print(data)# 1、实例化一个转换器类transfer = MinMaxScaler(feature_range=(0, 1))# 2、调用fit_transformdata = transfer.fit_transform(data[['milage','Liters','Consumtime']])print("最小值最大值归一化处理的结果:\n", data)return Noneif __name__ == '__main__':minmax_demo()

结果:

最小值最大值归一化处理的结果:[[0.44832535 0.39805139 0.56233353][0.15873259 0.34195467 0.98724416][0.28542943 0.06892523 0.47449629]...[0.29115949 0.50910294 0.51079493][0.52711097 0.43665451 0.4290048 ][0.47940793 0.3768091  0.78571804]]

问题:如果数据中异常点较多,会有什么影响?
在这里插入图片描述

  • 归一化总结
    注意最大值最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差(健壮性),只适合传统精确小数据场景。

怎么办?

3、标准化

3.1、定义

通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内

3.2、公式

在这里插入图片描述

  • 作用于每一列,mean为平均值,σ为标准差
    所以回到刚才异常点的地方,我们再来看看标准化
    在这里插入图片描述
  • 对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变
  • 对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。

3.3、API

  • sklearn.preprocessing.StandardScaler( )
    • 处理之后每列来说所有数据都聚集在均值0附近标准差差为1
    • StandardScaler.fit_transform(X)
      • X:numpy array格式的数据[n_samples,n_features]
    • 返回值:转换后的形状相同的array

3.4、数据计算

import pandas as pd
from sklearn.preprocessing import StandardScalerdef stand_demo():"""标准化演示:return: None"""data = pd.read_csv("dating.txt")print(data)# 1、实例化一个转换器类transfer = StandardScaler()# 2、调用fit_transformdata = transfer.fit_transform(data[['milage', 'Liters', 'Consumtime']])print("标准化的结果:\n", data)print("每一列特征的平均值:\n", transfer.mean_)print("每一列特征的方差:\n", transfer.var_)return Noneif __name__ == '__main__':stand_demo()

结果:

标准化的结果:[[ 0.33193158  0.41660188  0.24523407][-0.87247784  0.13992897  1.69385734][-0.34554872 -1.20667094 -0.05422437]...[-0.32171752  0.96431572  0.06952649][ 0.65959911  0.60699509 -0.20931587][ 0.46120328  0.31183342  1.00680598]]
每一列特征的平均值:[3.36354210e+04 6.55996083e+00 8.32072997e-01]
每一列特征的方差:[4.81628039e+08 1.79902874e+01 2.46999554e-01]

在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。

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

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

相关文章

2023年中国汽车覆盖件模具竞争格局、市场规模及行业需求前景[图]

汽车覆盖件模具是汽车车身生产的重要工艺装备,其设计和制造时间约占汽车开发周期的 2/3,是汽车换型的重要制约因素之一。汽车覆盖件模具具有尺寸大、工作型面复杂、技术标准高等特点,属于技术密集型产品。汽车覆盖件模具按以其冲压的汽车覆盖…

找不到concrt140.dll无法继续执行此代码的解决方法总结,快速解决dll问题的5种方法

最近,我在使用电脑的过程中遇到了一个问题,即“找不到concrt140.dll无法继续执行此代码”。通过查阅资料和自己的实践,我了解到concrt140.dll是Microsoft Visual C 2015 Redistributable中的一个动态链接库文件。它提供了一些用于支持多线程编…

不同类型的RFID标签及其应用场景浅析

RFID技术是一种利用无线电信号进行数据传输和识别的技术,根据标签的不同特点和应用场景,RFID标签可以分为多种类型,下面将详细介绍不同类型的RFID标签及其应用场景。 一、有无电源电池 1.1 有源RFID标签 有源RFID标签内置电池,…

5年经验之谈 —— 手把手教你接口性能测试之JMeter性能测试篇!

本文是我们《手把手教你接口性能测试》系列文章中的完结篇,介绍如何使用JMeter工具进行接口测试和并发测试。 一、Jmeter 简介 Jmeter是由Apache公司开发的一个纯Java开源项目,即可以用于做接口测试也可以用于做性能测试,具备高移植性和扩展…

针对遗留系统采取的不同演化策略

1. 改造策略 高水平、高价值区,即遗留系统的技术含量较高,本身还有极大的生命力。系统具有较高的业务价值,基本上能够满足企业业务运作和决策支持的需要。这种系统可能建成的时间还很短,对这种遗留系统的演化策略为改造。改造包括…

考过PMP之后,要不要继续学CSPM?

在7年前拿下了PMP证书,但又在今年报名了CSPM中级的学习,身边很多人都疑问,为什么还要继续花钱考一个新出的证书?是不是闲的没事干?下面跟大家说下我的想法,仅作参考。 1)了解项目管理行业的新动…

如何制作自己的数字人

如何制作自己的数字人呢?不用担心平台的使用授权,也不用担心哪一天自己自媒体被号被无故封杀,那么SadTalker将是你的首选,他是完全开源的数字人软件,现已达到Apache2的授权,完全自由的开源软件。作者自己试…

二进制明文字符串加密:还原与反还原

背景 上一篇文章中介绍了xorstr的原理和最小化验证概念的代码,这篇文章来看下这种已经被广泛应用于各恶意样本以及安全组件中的技术如何还原,如果还没看上篇建议先看下了解其实现后再看本篇文章 xorstr的现状 随着相关技术的应用越来越广,…

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持多实例自定义条件的流程流转

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 1、前端代码,主要修改下面这个文件,如下: 说明几点: 1.1 …

Python Opencv实践 - 车辆统计(2)检测线绘制,车辆数量计数和显示

针对我所使用的视频,对上一节的代码进行了修改,增加了更多参数。 Python Opencv实践 - 车辆统计(1)读取视频,移除背景,做预处理_亦枫Leonlew的博客-CSDN博客示例中的图像的腐蚀、膨胀和闭运算等需要根据具…

微机原理与接口技术-第七章输入输出接口

文章目录 I/O接口概述I/O接口的典型结构基本功能 I/O端口的编址独立编址统一编址 输入输出指令I/O寻址方式I/O数据传输量I/O保护 16位DOS应用程序DOS平台的源程序框架DOS功能调用 无条件传送和查询传送无条件传送三态缓冲器锁存器接口电路 查询传送查询输入端口查询输出端口 中…

err -110 while initial SD card failed enmmm否系解决方案

1.情况表述 之前把 sd卡从小容量换成了大容量 且运行正常 过了一两个月 发现启动失败 报错:mmc0: error -110 whilst initialising SD card 给出报错图片 2.相关解决方案 给出链接 讲的很有道理,但是 我在bash中没有找到对应内核的驱动文件 SD卡…

【JavaScript】JavaScript基础详解(文末送书)

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

Java 线程池调度周期性任务“异常“探究

背景 在做性能监控需求的过程中,会存在很多监控任务需要定时执行。比如在卡顿监控的实现中,我们需要每50ms 执行一次主线程调用栈的任务,此时由于任务本身可能存在一些耗时,可能需要对任务下次调度的时间做一些调整,避…

有没有人声和背景音乐分离的神器?

做视频剪辑,二次创作的朋友,需要去除视频中的背景音乐,保留人声;或者去除人声,保留背景音乐。随着用户需求的增多,科技的发展,让我们能通过智能的人声分离软件来实现,下面就来看看如…

XPS的锂电池表征技巧-科学指南针

XPS作为一种表面表征手段,这是它一个很大的限制,同时也是它一个很大的优势,正所谓“其术专则其艺必精”。限于笔者专业背景,此次主要讲述XPS在锂离子电池中的应用。 而由于XPS测试是一种表面分析手段,故其在锂离子电池…

Qt中QFile、QByteArray QDataStream和QTextStream区别及示例

在Qt中,QFile、QByteArray、QDataStream和QTextStream是常用的文件和数据处理类。 主要功能和区别 QFile: QFile是用于读写文本和二进制文件以及资源的I/O设备。可以单独使用QFile,或者更方便地与QTextStream或QDataStream一起使用。 通常在…

最新2023版完美可用的聚合支付系统源码,全开源无后门,适合二开

最新2023版完美可用的聚合易支付系统源码,全开源无后门,真正安全可用。 更新日志: 1.新增微信公众号消息提醒功能 2.重构转账付款功能,支持通过插件扩展 3.商户后台新增代付功能 4.后台新增付款记录列表 5.支付宝插件新增预…

嵌入式养成计划-46----QT--简易版网络聊天室实现--QT如何连接数据库

一百一十九、简易版网络聊天室实现 119.1 QT实现连接TCP协议 119.1.1 基于TCP的通信流程 119.1.2 QT中实现服务器过程 使用QTcpServer实例化一个服务器对象设置监听状态,通过listen()函数,可以监听特定的主机,也可以监听所有客户端&#x…

C++23:多维视图(std::mdspan)

C23:多维视图(std::mdspan) 介绍 在 C23 中,std::mdspan 是一个非拥有的多维视图,用于表示连续对象序列。这个连续对象序列可以是一个简单的 C 数组、带有大小的指针、std::array、std::vector 或 std::string。 这…