| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 机器学习之为什么要数据预处理?如何预处理数据? -> 正文阅读 |
|
[人工智能]机器学习之为什么要数据预处理?如何预处理数据? |
????????在现实生活问题中,我们得到的原始数据往往非常混乱、不全面,机器学习模型往往无法从中有效识别并提取信息。数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已,在采集完数据后,机器学习建模的首要步骤以及主要步骤便是数据预处理。 真实的训练数据总是存在各种各样的问题:
存在上述问题的数据有时也称为“脏数据”,这些"脏数据"会影响机器学习模型预测的有效性(有时会得到相反的结论)、可重复性和泛化能力,从而影响模型的质量。 例如: 数据预处理包含哪些处理?
数据预处理一般步骤:
1.特征缩放:数据标准化处理????????若原始数据中各维数据特征分布范围差异大,如果直接使用原始数据来建模,会突出数值尺度较大的特征在建模中的作用,而相对削弱或忽略数值尺度较小的特征的作用。因此,为了保证模型的有效性、可靠性,需要对原始数据的特征做特征缩放,使得各维特征对目标函数有相同权重的影响。 ????????通常为了能够消除数据不同特征的尺度差异大的影响,需要把各维特征都缩放到同一个标准时,这样才具有可比性,这个过程就是数据标准化处理。 数据标准化处理
1.1数据标准化处理包含哪些方法?1.1.1.归一化????????归一化主要有以下两种目标:
就是将数据各维特征映射到指定的范围之内(通常映射到[0, 1]或者[-1, 1]之间)或者。 归一化类型可分为
1)极大极小归一化公式如下所示 ??式中,为原始数据集,有m个样本,n项特征。、表示对原始数据集的各列特征分别取极值。 2)均值归一化公式如下所示 式中,?表示对原始数据集的各列特征分别取均值。 3)非线性归一化指对原数据取对数。 ????????非线性归一化没有把原数据各维特征缩放到某一范围内而是缩小各维特征的尺度(量纲)。平时在一些数据处理中,经常会把原始数据取对数后在做进一步处理。之所以这样做是基于对数函数在其定义域内是单调增函数,取对数之后不会改变数据的性质和相关关系,还可以压缩特征的尺度(量纲)。 归一化总结
1.1.2.z-score????????z-score对数据标准化处理就是将数据缩放到以0为中心,标准差为1的某种数据分布(注意:均值为0,标准差为1的数据分布不一定是正态分布,也有可能是t分布或者其他分布),此外,z-score保留原始数据信息,不会改变原数据分布类型。z-score的目的也是使原始数据的不同特征具有可比性。 z-score公式如下所示 ?式中,为原始数据集的各列特征的均值的向量,=,为原始数据集的各列特征的标准差的向量。z-score的一个应用是测量原始数据与数据总体均值相差多少个标准差,如下所示 1.1.3归一化和z-score区别和联系 联系:
区别:
?图片来自知乎:https://zhuanlan.zhihu.com/p/148394470?ivk_sa=1024320u 为什么归一化改变了数据分布类型,而z-score没有改变? ????????归一化和标准化,都是将样本点平移然后缩短距离,不同的是,由于缩短尺度不同,要从公式方面理解,二者的主要不同是分母的缩短尺度不同,一个是极值差,另一个平均差(标准差)。 ????????对于归一化方式处理的数据,它的每一项特征缩放程度都不同(因为每一项特征的极值可能都不同从而使每一项特征的缩放程度差异大),而z-score处理的数据,它的每一项特征的缩放程度大体相同,因为除的都是平均值,效果是"温和的"、平稳的。所以归一化会改变数据分布(样本点的相对距离关系会被改变),而z-socre不会使样本点之间的相对距离关系有根本变化。注意,这里样本点的关系用相对距离来表示。 ????????举个例子,在SVM模型中,设(0,0)处有一个负例,(1,1)和(2,0.5)处各有一个正例。容易验证,取(0,0)和(1,1)为支持向量时,间隔最大。现在归一化处理数据, 把水平方向缩小至原来的1/10,垂直方向缩小至原来的1/1(即两个维度的特征缩放程度差异大),两个正例变成了(0.1,1)和(0.2,0.5)。容易验证,现在要让margin最大,支持向量就得取(0,0)和(0.2,0.5)了。你看,是不是改变了样本点的相对距离关系,从而也就改变了分布。 何时使用归一化或z-score预处理数据?
1.2.中心化/零均值化????????中心化处理后的数据,数据均值为0向量,就是将原始数据平移到原点附近。中心化处理数据就一个一个平移的过程,不会改变数据分布类型。中心化预处理表达式如下 ?作用:
适用于PCA降维算法。见文章 1.3.正则化????????正则化处理数据将每个样本的某个范数(L1范数、L2范数)缩放为1,即对每个样本计算其p-范数,然后对该样本中的每个元素除以该范数,使得处理后数据的每个样本的p-范数等于1。公式如下所示 ?正则化处理数据主要应用于文本分类和聚类中,对需要计算样本间相似度有很大的作用,例如计算样本x1和样本x2的余弦相似度 ?正则化处理数据是否会改变数据分布类型?实践出真知,如下所示 ?貌似并不会改变数据分布类型,待严谨的数据证明...... 1.4.哪些模型对标准化处理比较敏感?
1.5.什么情况下需要对数据标准化处理?????????判断模型是否具有伸缩不变性以及模型算法是否使用了迭代优化算法? ????????一般概率模型具备伸缩不变性,因为对特征缩放处理不会对概率模型的结构造成影响,所以概率模型不必采用数据标准化处理,如决策树;但是,若概率模型计算目标函数过程中使用了迭代优化算法,为了能够加快算法收敛速度,可以对数据做归一化的标准化处理。 那些模型伸缩可变?即数据标准化处理前后得到的最优解不一致的模型?
伸缩可变的模型需要标准化处理。 1.6.训练集做了标准化处理后,然后训练出模型,那么测试集或者新样本是否如何处理?待补充 2.缺失值处理????????现实生活中的数据往往是不全面的,很多样本的属性值会有缺失,例如某个人填写的个人信息不完整或者对个人隐私的保护政策导致建模时可能无法得到所需要的特征,尤其是在数据量较大时,这种缺失值的产生会对模型的性能造成很大的影响 2.1.删除缺失值????????处理缺失值最简单也是最暴力的方法便是删除含有缺失值的样本或者特征。注:工业上数据非常重要,一般不推荐这样做。 2.2填充缺失值方法:使用用哪一种方法没有硬性的要求,具体问题具体分析
3.离群值/异常值处理3.1异常检测 3.1.1异常样本 3.1.2异常特征 3.2检测原则 3.3处理方法 4.多项式特征????????多项式特征是一种数据升维的方式,在线性回归中,当使用简单的x1,x2特征去拟合曲线,欠拟合,但是我们可以创建新的特征如去拟合数据,可能会得到一个较好的模型,所以我们有时候会对特征做一个多项式处理,即把特征变成。 5.数据转换????????机器学习模型很多分布都采用高斯分布(正态分布),如线性回归和逻辑回归机器学习模型要求数据特征是高斯分布的。如果数据特征不是高斯分布,有时需要找到一个数学变换来把特征按照高斯分布进行变换。 5.1数据转换方法?数据转换为高斯分布方法:
注意:再次提醒Z - score标准化处理后的数据的特征并不一定遵循高斯分布。 为了使我们的数据趋向高斯分布,我们首先需要使数据对称,这意味着消除偏度,为了消除偏度,我们要对数据进行转换 实操演示: 待补充 5.1.1为什么机器学习中很多分布都采用高斯分布?????????根据概率论中的中心极限定理,当样本容量无穷大时,许多分布的极限就是高斯分布(正态分布)现实中的很多随机变量是由大量相互独立的随机因素的综合影响所形成的,而其中每一个因素在总的影响中所起的作用都是微小的,这种随机变量往往近似服从高斯分布(中心极限定理的客观背景)。 熵:用来度量信息混乱程度 ????????从熵的角度来看,在已知数据的均值和方差的情况下(原数据分布类型未知),高斯分布的熵是所有其他分布中最大的。按照熵标准,“最大熵”约等价于“同约束下最接近均匀分布”,即更符合实际。可以这样理解,“熵最大”是为了使理想更接近实际,让特殊逼近一般,从而使模型更具一般性。注意高斯分布的熵其实是由方差决定的,“高斯变量最大熵”是在方差固定的背景下的结论。不同的方差显然会带来不同的高斯分布,而熵越大的高斯分布方差越大——在实轴上也越接近“均匀” 5.1.2是否一定要对数据转换分布待补充 5.2 数据数值类型转换????????针对非数值型数据,映射为数值。例如,现有一个汽车样本集,通过这个汽车样本集可以判断人们是否会购买该汽车。但是这个样本集的特征值是离散型的,为了确保计算机能正确读取该离散值的特征,需要给这些特征做编码处理,即创建一个映射表。如果特征值分类较少,可以选择自定义一个字典存放特征值与自定义值的关系。 5.2.1自定义数据类型编码 待补充 5.2.2独热编码 待补充 6.数据缩减大数据集存在以下问题:
解决这些问题最常用的方法之一是“降维”。此方法的目标是实现以下目标。
降维方法:
二、数据预处理实践待补充 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:49:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |