首页 > 其他分享 >机器学习归一化特征编码

机器学习归一化特征编码

时间:2024-06-13 21:29:42浏览次数:11  
标签:编码 机器 特征 train 归一化 import data


特征缩放

因为对于大多数的机器学习算法和优化算法来说,将特征值缩放到相同区间可以使得获取性能更好的模型。就梯度下降算法而言,例如有两个不同的特征,第一个特征的取值范围为1——10,第二个特征的取值范围为1——10000。在梯度下降算法中,代价函数为最小平方误差函数,所以在使用梯度下降算法的时候,算法会明显的偏向于第二个特征,因为它的取值范围更大。在比如,k近邻算法,它使用的是欧式距离,也会导致其偏向于第二个特征。对于决策树和随机森林以及XGboost算法而言,特征缩放对于它们没有什么影响。

常用的特征缩放算法有两种,归一化(normalization)和标准化(standardization)。归一化算法是通过特征的最大最小值将特征缩放到[0,1]区间范围

归一化(Normalization)

归一化是利用特征的最大最小值,为了方便数据处理,将特征的值缩放到[0,1]区间,对于每一列的特征使用min-max函数进行缩放,可以使处理过程更加便捷、快速,计算。

特征归一化的优势

  • 提升收敛速度 :对于线性model来说,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。

造成图像的等高线为类似椭圆形状,最优解的寻优过程图像如下:

两个特征区别相差特别大。所形成的等高线比较尖锐。当时用梯度下降法时,很可能要垂直等高线走,需要很多次迭代才能收敛。

而数据归一化之后,损失函数的表达式可以表示为:

 

其中变量的前面系数几乎一样,则图像的等高线为类似圆形形状,最优解的寻优过程图像如下:

 

  • 对两个原始特征进行了归一化处理,其对应的等高线相对来说比较圆,在梯度下降时,可以较快的收敛。
     
  • 提升模型精度:如果我们选用的距离度量为欧式距离,如果数据预先没有经过归一化,那么那些绝对值大的features在欧式距离计算的时候起了决定性作用。 从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

特征归一化方法MinMaxScaler 

from sklearn.preprocessing import MinMaxScaler
x=[[10001,2],[16020,4],[12008,6],[13131,8]]
min_max_scaler = MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform(x)#归一化后的结果
X_train_minmax

# 它默认将每种特征的值都归一化到[0,1]之间
MinMaxScaler的实现
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min

这是向量化的表达方式,说明X是矩阵,其中

  • X_std:将X归一化到[0,1]之间
  • X.min(axis=0)表示列最小值
  • max,min表示MinMaxScaler的参数feature_range参数。即最终结果的大小范围
       以下例说明计算过程(max=1,min=0)

 

S11=(10001-10001)/(16020-10001)=0
S21=(16020-10001)/(16020-10001)=1
S31=(12008-10001)/(16020-10001)=0.333444
S41=(13131-10001)/(16020-10001)=0.52002
S12=(2-2)/(8-2)=0
S22=(4-2)/(8-2)=0.33
S32=(6-2)/(8-2)=0.6667
S42=(8-2)/(8-2)=1

 数据的标准化

和0-1标准化不同,Z-score标准化利用原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。同样是逐列进行操作,每一条数据都减去当前列的均值再除以当前列的标准差,在这种标准化操作下,如果原数据服从正态分布,处理之后的数据服从标准正态分布。Z-Score标准化计算公式如下:

我们也可通过如下方式对张量进行Z-Score标准化处理。 

from sklearn.preprocessing import StandardScaler
x=[[10001,2],[16020,4],[12008,6],[13131,8]]
ss = StandardScaler()
X_train = ss.fit_transform(x)
X_train

array([[-1.2817325 , -1.34164079],
       [ 1.48440157, -0.4472136 ],
       [-0.35938143,  0.4472136 ],
       [ 0.15671236,  1.34164079]])

 和0-1标准化不同,Z-Score标准化并不会将数据放缩在0-1之间,而是均匀地分布在0的两侧

特征编码

我们拿到的数据通常比较脏乱,特征变量除了数值外可能还会包括带有各种非数字特殊符号等特征值,比如中文。但一般的机器学习模型一般都是处理数值型的特征值,因此需要将一些非数值的特殊特征值转为为数值,因为只有数字类型才能进行计算。因此,对于各种特殊的特征值,我们都需要对其进行相应的编码,也是量化的过程,这就要用到特征编码。

编码方法

  • LabelEncoder :适合处理字符型数据或label类,一般先用此方法将字符型数据转换为数值型,然后再用以下两种方法编码;
  • get_dummies :pandas 方法,处理DataFrame 数据更便捷
  • OneHotEncoder :更普遍的编码方法

LabelEncoder

标签:编码,机器,特征,train,归一化,import,data
From: https://blog.csdn.net/qq_64685283/article/details/139648023

相关文章

  • 隐语课程学习笔记5-隐私保护机器学习算法概要
    隐语课程第5课,简单介绍了隐语的算法能力,包括预处理、隐私求交、决策树模型、线性回归模型、神经网络模型,并且支持数据水平切分(横向联邦)、垂直切分(纵向联邦)、混合切分(横纵向联邦)。隐语提供了包括对DataFrame的封装,以及提供联邦ndarray的封装,和python的使用基本一致,上手较快,比......
  • 主流3D视频编码技术
    3D视频通过模拟人眼的立体视觉,使我们能够感受到深度和距离,提供了一种更加真实而富有沉浸感的视觉体验。长期以来,大量3D视频内容并没有使用专用的视频编码标准,而是使用通用的视频编码标准进行编码。主要的做法是将3D视频以SBS(sidebyside)的形式,把左右两个视点合并到一帧画面......
  • 机器学习项目--库存需求预测3--LSTM模型
    一、导入库和数据集代码环境:主要的包版本如下python==3.10scikit-learn==1.0.2tensorflow==2.15.0导入库importpandasaspdimportnumpyasnpfromkeras.modelsimportSequentialfromkeras.layersimportDense,LSTM,Dropoutfromkeras.regularizersimport......
  • 短视频压缩与编码技术在短剧APP小程序开发中的应用:重要性分析
    在短剧APP小程序开发中,短视频的压缩与编码技术扮演着至关重要的角色。随着移动互联网的快速发展,用户对短视频内容的加载速度和播放质量提出了更高要求。本文将分析短视频压缩与编码技术对于短剧APP的重要性,并探讨其在实际开发中的应用。短视频压缩与编码技术的重要性提高加......
  • 短视频压缩与编码技术在短剧APP小程序开发中的应用:技术选择与工具推荐
    在短剧APP小程序开发中,选择合适的短视频压缩与编码技术及工具对于实现高效的视频处理至关重要。本文将探讨如何选择合适的技术和工具,以及推荐一些在实际开发中常用的解决方案。技术选择的原则平衡压缩率与视频质量:在选择压缩技术时,需要平衡压缩率与视频质量之间的关系。过......
  • 第二届算法、图像处理与机器视觉国际学术会议(AIPMV2024)
    第二届算法、图像处理与机器视觉国际学术会议(AIPMV2024)20242ndInternationalConferenceonAlgorithm,ImageProcessingandMachineVision(AIPMV2024)2024年7月12日-14日江苏镇江大会官网:https://ais.cn/u/jyUbAz【更多内容】主办单位:江苏大学、中国图象图形学会承办单......
  • 机器学习策略篇:详解清除标注错误的数据(Cleaning up Incorrectly labeled data)
    清除标注错误的数据监督学习问题的数据由输入\(x\)和输出标签\(y\)构成,如果观察一下的数据,并发现有些输出标签\(y\)是错的。的数据有些标签是错的,是否值得花时间去修正这些标签呢?看看在猫分类问题中,图片是猫,\(y=1\);不是猫,\(y=0\)。所以假设看了一些数据样本,发现这(倒数第二......
  • 2024 年最新 Python 使用 gewe 框架搭建微信机器人实现语音智能回复(详细教程)
    Gewe个微框架GeWe(个微框架)是一个创新性的软件开发框架,专注于IPAD协议,为个人微信号以及企业信息安全提供了强大的功能和保障。GeWe的设计旨在简化开发过程,使开发者能够高效、灵活地构建和定制通信协议,以满足不同应用场景的需求。灵活可扩展:GeWe框架采用灵活可扩展的设计理......
  • 计算机组成原理历年考研真题对应知识点(数制与编码)
    目录2.1数制与编码2.1.1进位计数制及其相互转换【命题追踪——采用二进制编码的原因(2018)】【命题追踪——十进制小数转换为二进制小数(2021、2022)】2.1.2定点数的编码表示【命题追踪——补码的表示范围(2010、2013、2014、2022)】【命题追踪——补码和真值的相互转......
  • 关于加密,解密,摘要,编码的理解和应用
    故事的开始那是一个夏天,在杭州,和两位好友吃完饭聊着。他们都是刚刚入行的程序员,讨论着密码在系统中存储的方式MD5.当时的我还是个门外汉,听着他们的讨论,非常有兴趣。那时候我认为MD5是加密放方式(当然现在看来不是)。那时候我认为处理密码的方式是,用户注册后,密码通过MD5加盐方式存入......