机器学习—无量纲化和降维(四)

什么是特征预处理?

在这里插入图片描述
通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程

1包含内容

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

2特征预处理API

sklearn. preprocessing

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

归一化

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

2公式
在这里插入图片描述

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

在这里插入图片描述
3API

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

4数据计算
我们对以下数据进行运算:

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
  • 分析
    • 1、实例化MinMaxScalar
    • 2、通过fit_transform转换
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

在这里插入图片描述
在这里插入图片描述

问题:如果数据中异常点较多,会有什么影响?
异常值

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

标准化

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

2公式
在这里插入图片描述

作用于每一列,平均值为mean,标准差为σ

在这里插入图片描述

  • 对于归一化︰如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变
  • 对于标准化:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。

3API

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

4数据计算

在这里插入图片描述
在这里插入图片描述

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

降维

降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程。

此处的降维:降低特征的个数,使特征与特征之间不相关

  • 降低随机变量的个数
    在这里插入图片描述
  • 相关特征(correlated feature)
    • 相对湿度与降雨量之间的相关
    • 等等

正是因为在进行训练的时候,使用特征进行学习。如果特征本身存在问题或者特征之间相关性较强,对于算法学习预测会影响较大

降维的两种方式

  • 特征选择
  • 主成分分析(可以理解一种特征提取的方式)

特征选择

1定义
数据中包含冗余或相关变量(或称特征、属性、指标等),旨在从原有特征中找出主要特征。

2方法

  • Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间关联
    • 方差选择法:低方差特征过滤
    • 相关系数:特征与特征之间的相关程度
  • Embedded(嵌入式):算法自动选择特征(特征与目标值之间的关联)
    • 决策树:信息嫡、信息增益
    • 正则化:L1、L2
    • 深度学习:卷积等

3模块

sklearn.feature_selection

4过滤式

4.1低方差特征过滤
删除低方差的一些特征,前面讲过方差的意义。再结合方差的大小来考虑这个方式的角度。

  • 特征方差小:某个特征犬多样本的值比较相近
  • 特征方差大:某个特征很多样本的值都有差别

4.1.1API

  • sklearn.feature_selection.VarianceThreshold(threshold = 0.0)
    • 删除所有低方差特征
    • Variance.fit_transform(X)
      • X:numpy array格式的数据[n_samples,n_features]
      • 返回值:训练集差异低于threshold的特征将被删除。默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征。

4.1.2数据计算

1、初始化VarianceThreshold,指定阀值方差
2、调用fit_transform

在这里插入图片描述
在这里插入图片描述

transfer = VarianceThreshold(threshold=10)进行限制阈值,过滤不太重要的特征

4.2相关系数

  • 皮尔逊相关系数(Pearson Correlation Coefficient)
    • 反映变量之间相关关系密切程度的统计指标

4.2.1公式
在这里插入图片描述
列题
在这里插入图片描述

4.2.2特点
相关系数的值介于-1与+1之间,即-1 ≤ r ≤ +1。其性质如下:

  • 当 r>0时,表示两变量正相关,r<0时,两变量为负相关
  • 当 |r|=1时,表示两变量为完全相关,当 r=0时,表示两变量间无相关关系
  • 当 0<|r|<1 时,表示两变量存在一定程度的相关。且 |r|越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱
  • 一般可按三级划分:|r|<0.4为低度相关;0.4≤|r|<0.7为显著性相关;0.7≤lrl<1为高度线性相关

4.2.3API

  • from scipy.stats import pearsonr
  • ×:(N)array_like
  • y :(N,)array_like Returns:(Pearson’s correlation coefficient, p-value)
#计算某两个变量之间的相关系数
r =pearsonr(data["pe_ratio"], data["pb_ratio"])
print("相关系数: \n", r)
r2 = pearsonr(data['revenue'], data['total_expense'])
print("revenue与total_expense之间的相关性:\n",r2)

在这里插入图片描述

我们也可以通过画图来观察结果

import matplotlib.pyplot as plt
plt.figure(figsize=(20,8),dpi=100)
plt.scatter(data['revenue'], data['total_expense '])
plt.show ( )

在这里插入图片描述

若特征与特征之间相关性很高:①选取其中一个②加权求和③主成分分析

主成分分析

  • 定义:高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量。
  • 作用:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
  • 应用:回归分析或者聚类分析当中。

1例子
在这里插入图片描述
找到一个合适的直线,通过一个矩阵运算得出主成分分析的结果

在这里插入图片描述

2API

  • sklearn.decomposition.PCA(n_components=None)
    • 将数据分解为较低维数空间
    • n_components:
      • 小数:表示保留百分之多少的信息
      • 整数:减少到多少特征
    • PCA.fit_transform(X)
      • X:numpy array格式的数据[n_samples,n_features]
    • 返回值:转换后指定维度的array

整数:
在这里插入图片描述
在这里插入图片描述
小数:
在这里插入图片描述
在这里插入图片描述

3案例
探究用户对物品类别的喜好细分

用户物品类别
user_idaisle

①需要将user_id和aisle放在同一个表中——合并
②找到user_id和aisle——交叉表和透视表
③特征冗余过多——>PCA降维

import pandas as pd
#1、获取数据
order_products=pd.read_csv("./instacart/order_products_prior.csv")
products=pd.read_csv("./instacart/products.csv")
orders=pd.read_csv("./instacart/orders.csv")
aisles=pd.read_csv("./instacart/aisles.csv")

#2、合并
tab1=pd.merge(aisles,products,on=["aisle_id","aisle_id"])
Lab2=pd.merge(tab1,order_products,on=["product_id","product_id"])
tab3=pd.merge(tab2,orders,on=["order_id","order_id"])

#3、找到user_id和aisle之间的关系
table=pd.crosstab(tab3["user_id"],tab3["aisle"])
data =table[ :10000]#数据过多,取前10000个

#4、PCA降维
from sklearn.decomposition import PCA
#1)实例化一个转换器类
transfer=PCA(n_components=0.95)
#2)调用fit_transform
data_new=transfer.fit_transform(data)

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

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

相关文章

MATLAB | 这些美丽大方的弦图居然都是用MATLAB画的?

什么&#xff1f;这些美丽大方的弦图都是MATLAB画的&#xff1f;&#xff1f;&#xff1f; 没错都是由我本人开发的弦图绘制工具包实现的&#xff1a; chord chart 弦图https://www.mathworks.com/matlabcentral/fileexchange/116550-chord-chartDigraph chord chart 有向弦图…

【c语言】自定义类型:结构体详解

目录 自定义类型&#xff1a;结构体 结构体类型的声明 结构体变量的创建和初始化 结构的特殊声明 结构的自引用 结构体内存对齐 对其规则 为什么存在内存对齐&#xff1f; 修改默认对⻬数 结构体传参 结构体实现位段 位段的内存分配 位段的跨平台问题 位段的应用…

vue3新手笔记

setup&#xff08;&#xff09;{}函数&#xff0c;是启动页面后&#xff0c;自动执行的一个函数。所有数据&#xff08;常量、变量&#xff09;、函数等等&#xff0c;都要return 出去。 ref函数(可用于基本数据类型&#xff0c;也可以用于复杂数据类型)&#xff1a;让页面上的…

Java Set基础篇

目录 前言一、常用Set1.1 Set1.1.1 特点 1.2 HashSet1.2.1 特点1.2.2 使用 1.3 TreeSet1.3.1 特点1.3.2 使用 1.4 LinkedHashSet1.4.1 特点1.4.2 使用 二、对比总结 目录 前言 一、常用Set 1.1 Set Set是一个继承自Collection的接口&#xff1a; public interface Set<…

位图布隆过滤器的原理及实现

目录 位图的概念&#xff1a; 位图的前置知识&#xff1a;位运算 位图的实现&#xff1a; 位图的基本参数和构造方法&#xff1a; 位图的插入&#xff1a; 位图的查找&#xff1a; 位图的删除&#xff1a; 布隆过滤器概念&#xff1a; 布隆过滤器的实现&#xff1a; …

【软件测试之边界值法】

【软件测试之边界值法】(蓝桥杯学习笔记) 我们先来看一个 Java 小程序&#xff0c;如下图所示。 运行这个程序会发生什么事情呢&#xff1f;在这个程序中&#xff0c;目标是为了创建一个有 10 个元素的一维数组&#xff0c;但是&#xff0c;在 Java 语言中&#xff0c;当一个数…

win7无法升级win11,win7无法升级win11系统版本怎么解决

自动微软推出win11后,有不少小伙伴升级安装了。但是,有一些win7用户却安装win11失败,想知道有什么办法能让win7顺利升级win11。关于win7无法升级win11这个问题,最主要原因可能是你的电脑配置不够,毕竟升级win11的门槛要比升级win10还要高,而且还需要支持UEFI安全启动和TP…

Java项目:基于SSM+vue框架实现的人力资源管理系统设计与实现(源码+数据库+毕业论文+任务书)

一、项目简介 本项目是一套基于SSM框架实现的人力资源管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能…

局域网tcp通信实验

两台windows系统计算机简单TCP通信测试_两台计算机tcp通信-CSDN博客 使用这篇文章的小工具。 环境&#xff1a; 我和同学的两台笔记本电脑。 使用我的手机开热点&#xff0c;两台电脑连接热点。 我的&#xff1a; IPv4 地址 . . . . . . . . . . . . : 192.168.92.79 子…

labview技术交流-如何判断一个数是否为质数

问题起源 如何判断一个数是否为质数&#xff0c;其实并不难&#xff0c;只要你知道质数的定义&#xff0c;按照它的定义去编写代码就可以了。但是没有思路的人可能就会一直找不到方向&#xff0c;所以我就简单介绍一下。 还有我想吐槽的点&#xff0c;labview本来就是很小众的语…

【氧化镓】β-Ga2O3肖特基势垒二极管的缺陷识别

本文是一篇关于β-Ga2O3肖特基势垒二极管在电子辐射和退火调节下缺陷识别的研究。文章首先介绍了β-Ga2O3作为一种高性能器件材料的重要性&#xff0c;然后详细描述了实验方法&#xff0c;包括样品制备、电子辐照、热退火处理以及电学特性和深能级瞬态谱&#xff08;DLTS&#…

英特尔AI训练芯片惊艳亮相:速度与性能双超H200,引领AI新浪潮

英特尔甩出全新AI训练芯片&#xff01;跑千亿大模型速度超H200&#xff0c;罕见披露AI浮点性能 大规模AI计算已经进入系统竞赛。 英特尔在年度Intel Vision大会上重磅推出新一代AI训练芯片Gaudi 3&#xff0c;正面向英伟达旗舰芯片发起挑战。会上&#xff0c;英特尔CEO基辛格挥…

html页面跳转的方法

1、加在head里面 <head> <meta http-equiv"refresh" content"1;urlhttps://ha.huatu.com/zt/hnsylkseo/?"> </head> 2、加在body里面 在body里用js <script language"javascript" type"text/javascript">…

C++感受4-HelloWorld中文版——认识编码

及时了解“编码”对编写代码的影响&#xff0c;是中国程序员越早知道越好的知识点。 一分钟了解什么叫“编码”和“解码”&#xff1b;通过实际演示&#xff0c;充分理解中文Windows下&#xff0c;C源代码编码需要注意的地方&#xff1b;通过 -finput-charsetutf8 等 g 编译配置…

数据可视化-ECharts Html项目实战(11)

在之前的文章中&#xff0c;我们学习了如何在ECharts中特殊图表的双y图以及自定义形状词云图。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 数据可视化-ECh…

【随笔】Git 高级篇 -- 纠缠不清的分支 rebase | cherry-pick(二十四)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

基于特征的多模态生物信号信息检索与自相似矩阵:专注于自动分割

论文地址&#xff1a;Biosensors | Free Full-Text | Feature-Based Information Retrieval of Multimodal Biosignals with a Self-Similarity Matrix: Focus on Automatic Segmentation (mdpi.com) 论文源码&#xff1a;无 期刊&#xff1a;biosensors 这篇论文提出了一种基…

全国项目管理标准化技术委员会副秘书长肖杨先生受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 全国项目管理标准化技术委员会副秘书长、微薄之力&#xff08;北京&#xff09;管理咨询有限公司董事长肖杨先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“数字化时代下&#xff0c;由职能型组织向高度适应性组织转…

GCB Meta分析 | 土壤水分-大气反馈主导全球陆地N2O硝化的排放和反硝化的减少

原名&#xff1a;Soil moisture–atmosphere feedback dominates land N2O nitrification emissions and denitrification reduction 译名&#xff1a;土壤水分-大气反馈主导着陆地N2O硝化的排放和反硝化的减少 期刊&#xff1a;Global Change Biology 通讯作者&#xff1a…

OSCP靶场--Dibble

OSCP靶场–Dibble 考点(前端鉴权参数修改node.js代码注入 suid cp提权 ) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.173.110 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-09 06:36 EDT Nmap scan repor…