赞
踩
数据挖掘的五大流程:
我们往往有着将不同规格的数据转换到同一规格,或不同分布的数据转换到某个特定分布的需求,这种需求统称为将数据“无量纲化”。
数据的无量纲化可以是线性的,也可以是非线性的。线性的无量纲化包括中心化(Zero-centered或者Meansubtraction)处理和缩放处理(Scale)。中心化的本质是让所有记录减去一个固定值,即让数据样本数据平移到某个位置。缩放的本质是通过除以一个固定值,将数据固定在某个范围之中.
线性数据和非线性数据:
https://blog.csdn.net/qq_40061206/article/details/127764690
当数据(x)按照最小值中心化后,再按极差(最大值 - 最小值)缩放,数据移动了最小值个单位,并且会被收敛到[0,1]之间,而这个过程,就叫做数据归一化(Normalization,又称Min-Max Scaling)。
注意,Normalization是归一化,不是正则化,真正的正则化是regularization,不是数据预处理的一种手段。归一化之后的数据服从正态分布
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
当数据(x)按均值(μ)中心化后,再按标准差(σ)缩放,数据就会服从为均值为0,方差为1的正态分布(即标准正态分布),而这个过程,就叫做数据标准化(Standardization,又称Z-score normalization)
z = (x - u) / s
参数
(1)missing_values
数据中的缺失值长什么样,默认空值np.nan
(2)strategy
填补缺失值的策略,默认均值。
输入“mean”使用均值填补(仅对数值型特征可用)
输入“median"用中值填补(仅对数值型特征可用)
输入"most_frequent”用众数填补(对数值型和字符型特征都可用)
输入“constant"表示请参考参数“fill_value"中的值(对数值型和字符型特征都可用)
(3)fill_value
当参数startegy为”constant"的时候可用,可输入字符串或数字表示要填充的值,常用0
(4)copy
默认为True,将创建特征矩阵的副本,反之则会将缺失值填补到原本的特征矩阵中去。
离散特征是指取值有限且具有明确定义的特征。这些特征通常表示为一组有限的类别或标签,且每个类别之间没有特定的顺序关系。离散特征可以是名义型或有序型。
类别之间没有特定的顺序关系,例如性别(男、女)、颜色(红、绿、蓝)等。
类别之间存在特定的顺序关系,例如教育程度(小学、初中、高中、大学)等。
离散特征的取值通常是离散的、分类的,并且可以用整数或字符串表示。
连续特征是指取值范围无限且可以在某个区间内连续变化的特征。这些特征可以是实数型或时间型等。
取值为任意实数,例如身高、体重、温度等。
表示时间或日期的特征,例如年龄、时间戳等。
连续特征的取值通常是连续的、可度量的,并且可以包含小数点后的精度。
在进行特征工程和机器学习模型的构建时,了解特征的类型(离散还是连续)是重要的,因为它可以影响数据预处理、特征选择和模型选择的决策。不同类型的特征可能需要不同的处理方法和算法适配,以获得最佳的模型性能和预测准确性。
比如说,学历的取值可以是[“小 学”,“初中”,“高中”,“大学”],付费方式可能包含[“支付宝”,“现金”,“微信”]等等。
名义变量
比如说,付费方式可能包含[“支付宝”,“现金”,“微信”](简称为S,C,Q)。彼此之间完全没有联系,表达的是是S≠C≠Q的概念。这是名义变量。
有序变量
学历的取值可以是[“小 学”,“初中”,“高中”,“大学”]。
三种取值不是完全独立的,我们可以明显看出,在性质上可以有高中>初中>小学这样的联系,学历有高低,但是学历取值之间却不是可以计算的,我们不能说小学 + 某个取值 = 初中。这是有序变量。
有距变量
体重(>45kg,>90kg,>135kg)。
各个取值之间有联系,且是可以互相计算的,比如120kg - 45kg = 90kg,分类之间可以通过数学计算互相转换。这是有距变量。
其中名义变量和有序变量统称为分类变量。类别OrdinalEncoder可以用来处理有序变量,但对于名义变量,我们只有使用哑变量的方式来处理,才能够尽量向算法传达最准确的信息
根据阈值将数据二值化(将特征值设置为0或1),用于处理连续型变量。大于阈值的值映射为1,而小于或等于阈值的值映射为0。默认阈值为0时,特征中所有的正值都映射到1。
这是将连续型变量划分为分类变量的类,能够将连续型变量排序后按顺序分箱后编码。
其中特征又分为数值变量和非数值变量:
数值变量分为1.连续变量:相邻俩个数之间可以无限分割,在一个区间之内可以取任意值,例如身高183,183.1。2.离散变量:
其值只能用自然数整数计数单位描述。职工个数(不能为1.2个)。
从文字,图像,声音等其他非结构化数据中提取新信息作为特征。比
如说,从淘宝宝贝的名称中提取出产品类别,产品颜色,是否是网红
产品等等。
把现有特征进行组合,或互相计算,得到新的特征。比如说,我们有一列特征是速度,一列特征是距离,我们就可以通过让两列相处,创造新的特征:通过距离所花的时间。
从所有的特征中,选择出有意义,对模型有帮助的特征,以避免必须
将所有特征都导入模型去训练的情况。
VarianceThreshold。这是通过特征本身的方差来筛选特征的类。无论接下来特征工程要做什么,都要优先消除方差为0的特征。
有三种常用的方法来评判特征与标签之间的相关性:卡方,F检验,互信息。
(1)卡方过滤
卡方过滤是专门针对离散型标签(即分类问题)的相关性过滤。卡方检验类feature_selection.chi2计算每个非负特征和标签之间的卡方统计量,并依照卡方统计量由高到低为特征排名。再结合feature_selection.SelectKBest
这个可以输入”评分标准“来选出前K个分数最高的特征的类,我们可以借此除去最可能独立于标签,与我们分类目的无关的特征。
(2)F检验
F检验,又称ANOVA,方差齐性检验,是用来捕捉每个特征与标签之间的线性关系的过滤方法。它即可以做回归也可以做分类,因此包含feature_selection.f_classif(F检验分类)和feature_selection.f_regression(F检验回归)两个类。其中F检验分类用于标签是离散型变量的数据,而F检验回归用于标签是连续型变量的数据。
(3)互信息法
互信息法是用来捕捉每个特征与标签之间的任意关系(包括线性和非线性关系)的过滤方法。互信息法比F检验更加强大,F检验只能够找出线性关系,而互信息法可以找出任意关系。
互信息法不返回p值或F值类似的统计量,它返回“每个特征与目标之间的互信息量的估计”,这个估计量在[0,1]之间取值,为0则表示两个变量独立,为1则表示两个变量完全相关。
使用算法进行特征选择
使用算法进行特征选择
过滤法更快速,但更粗糙。包装法和嵌入法更精确,比较适合具体到算
法去调整,但计算量比较大,运行时间长。当数据量很大的时候,优先使用方差过滤和互信息法调整,再上其他特征选择方法。使用逻辑回归时,优先使用嵌入法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。