福州仓山区网站建设,东莞做网站企业,做网站一个月能挣多少钱,专门做家教的网站特征预处理采用的是特定的统计方法#xff08;数学方法#xff09;将数据转化为算法要求的数字
1. 数值型数据
归一化#xff0c;将原始数据变换到[0,1]之间
标准化#xff0c;数据转化到均值为0#xff0c;方差为1的范围内
缺失值#xff0c;缺失值处理成均值、中…特征预处理采用的是特定的统计方法数学方法将数据转化为算法要求的数字
1. 数值型数据
归一化将原始数据变换到[0,1]之间
标准化数据转化到均值为0方差为1的范围内
缺失值缺失值处理成均值、中位数等
2. 类别型数据
降维多指标转化为少数几个综合指标去掉关联性不大的指标
PCA降维的一种
3. 时间类别
时间的切分 1. 归一化
归一化是在特征(维度)非常多的时候可以防止某一维或某几维对数据影响过大也是为了把不同来源的数据统一到一个参考区间下这样比较起来才有意义。其次可以让程序更快地运行。
例如一个人的身高和体重两个特征假如体重50kg身高175cm由于两个单位不一样数值大小不一样。如果比较两个人的体型差距时那么身高的影响结果会比较大因此在做计算之前需要先进行归一化操作。
归一化的公式为 式中max 和 min 分别代表某列中的最大值和最小值x 为归一化之前的值x 为归一化后的结果mx 和 mi 为要归一化的区间默认是 [0,1]即mx1mi0 在 sklearn 中的实现导入方法 from sklearn.preprocessing import MinMaxScaler
归一化方法 scaler.fit_transform()
# 自定义数据
data [[180,75,25],[175,80,19],[159,50,40],[160,60,32]]
# 导入归一化方法
from sklearn.preprocessing import MinMaxScaler
# 接收该方法
# scaler MinMaxScaler(feature_range(0,2)) #指定归一化区间
scaler MinMaxScaler()
# 将数据传入归一化方法产生返回值列表类型
result scaler.fit_transform(data)可以在归一化方法 MinMaxScaler() 中加入参数 feature_range( , ) 来指定归一化范围默认[0,1]。 归一化的优缺点
归一化非常容易受到最大值和最小值的影响因此如果数据集中存在一些异常点结果将发生很大改变因此这种方法的鲁棒性(稳定性)很差。只适合数据量比较精确比较小的情况。 2. 标准化
为了防止某一特征对结果影响太大将每一个特征(每一列)都进行标准化处理常用的方法是 z-score 标准化处理后的数据均值为0标准差为1满足标准正态分布。标准正态分布图如下 标准化公式 其中 是样本均值 是样本标准差它们可以通过现有的样本进行估计在已有的样本足够多的情况下比较稳定不受样本最大值和最小值的影响适合嘈杂的数据场景。
标准差的求法是先求方差方差 std 的求法如下n为每个特征的样本数。 标准差为方差开根号 方差和标准差越趋近于0则表示数据越集中如果越大表示数据越离散。 在 sklearn 中实现导入方法 from sklearn.preprocessing import StandardScaler
标准化方法 scaler.fit_transform()
# 自定义数据
data [[180,75,25],[175,80,19],[159,50,40],[160,60,32]]
# 导入标准化
from sklearn.preprocessing import StandardScaler
# 接收标准化
scaler StandardScaler()
# 将数据传入标准化方法产生返回值是列表类型
result scaler.fit_transform(data)3. 缺失值处理
缺失值一般有两种处理方法第一种是直接进行删除第二种是进行替换。除非缺失值占总数据集的比例非常少才推荐使用删除的方式否则建议使用平均值、中位数的方式进行替换。
在sklearn中有专门的缺失值处理方式from sklearn.impute import SimpleImputer
处理方法 SimpleImputer() 参数设置
missing_values 数据中的哪些值视为缺失值。默认missing_valuesnan把数据中的nan当作缺失值
strategy 替换缺失值的策略默认strategymean使用平均值替换可选median中位数most_frequent众数constant常数项。
注意这里的均值众数等都是该缺失值所在特征列上的均值众数。
fill_value只有当指定 strategyconstant 时才使用用于指定一个常数默认fill_valueNone
# 处理缺失值
# 自定义数据
import numpy as np
data [[1,2],[np.nan,4],[9,1]]
# 导入缺失值处理方法
from sklearn.impute import SimpleImputer
# 接收方法
si SimpleImputer()
# 传入原始数据
result si.fit_transform(data)使用默认值修改缺失值用平均值替换nan