Python机器学习算法基础--数据特征预处理

一.特征预处理–归一化
方法:
数值型数据:标准缩放:
1.归一化2.标准化3.缺失值
类别型数据:one-hot编码
时间类型:时间的切分

归一化
sklearn特征处理API
sklearn.preprocessing
sklearn归一化API:sklearn.preprocessing.MinMaxScaler
MinMaxScaler语法
MinMaxScaler(feature_range=(0,1)…)
每个特征缩放到给定范围(默认[0,1])
MinMaxScalar.fit_transform(X)
X:numpy array 格式的数据[n_samples,n_features]
返回值:转换后的形状相同的array
总结:注意在特定场景下最大值最小值是变化的,另外,最大值与最小值非常容易手异常点影响,所以这种方法鲁棒性交叉,值社和传统精确小数据常见。
小数据场景较少,日常使用中较少

def mm():
    '''归一化处理
    ::return:None'''
    mm = MinMaxScaler(feature_range=(2,3))
    data = mm.fit_transform([[90, 2, 10, 40], [60, 4, 15, 45], [75, 3, 13, 46]])
    print(data)
    return None
if __name__=='__main__':
    mm()

[[3. 2. 2. 2. ]
[2. 3. 3. 2.83333333]
[2.5 2.5 2.6 3. ]]

标准化
特点:通过对原始数据进行变化把数据变换到均值为0,方差为1范围内
归一化:如果出现异常点,影响了最大值和最小值,结果显然会发生变化
标准化:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。
sklearn特征化API:scikit-learn.preprocessing.StandardScaler
StandardScaler()
处理之后每列来说所有数据都聚集在均值0附近标准差差为1
StandardScaler.fit_transform(X)
X:numpy array 格式的数据[n_samples,n_features]
返回值:转换后的形状相同的array
StandardScaler.mean_
原始数据中每列特征的平均值
StandardScaler.std_
原始数据每列特征的方差

def stand():
    '''标准化缩放:return'''
    std=StandardScaler()
    data=std.fit_transform([[1.,-1,3.],[2,4,2],[4,6,-1]])
    print(data)

    return None
if __name__=='__main__':
    stand()

[[-1.06904497 -1.35873244 0.98058068]
[-0.26726124 0.33968311 0.39223227]
[ 1.33630621 1.01904933 -1.37281295]]
标准化在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景
缺失值
删除
填补:通过缺失值每行或每列的平均值、中位数进行填补,一般按列
scikit-learn.preprocessing.Imputer
Imputer(missing_values’NaN’,strategy=‘mean’,axis=0)
完成缺失值差不
Imputer.fit_transform(X)
X:numpy array 格式的数据[n_sanples,n_featrures]
返回值:转换后的形状相同的array
pandas:dropna 删除
filna 填补
数据格式:np.nan
replace(‘?’,np.nan)
关于np.nan(np.NaN)
1.numpy的数组中科院使用np.nan/np.NaN来代替缺失值,属于float类型
2.如果是文件中的一些缺失值,科院替换成nan,通过np.array转化成float型的数组即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值