【python】数据预处理

一、均值移除

  • 均值移除是一种数据标准化的方法,它通过从每个数据点中减去该数据集的均值来使数据集中化。
    import numpy as np
    import sklearn.preprocessing as sp
    
    
    #使用scale()
    #均值移除 让每一列的平均为0,标准差为1
    raw_samples = np.array([
         [17.,100.,4000.],
         [20.,80.,5000.],
         [23.,75.,5500.]])
    std_samples = sp.scale(raw_samples)
    print(std_samples)
    print(std_samples.mean(axis=0))    #每一列均值
    print(std_samples.std(axis=0))     #每一列标准差
    
    #范围缩放,每列最大值为1,最小最为0,其他的等比例缩放。
    raw_samples = np.array([
         [17.,100.,4000.],
         [20.,80.,5000.],
         [23.,75.,5500.]])
    mms = sp.MinMaxScaler(feature_range=(0,1)) #缩放到(0,1)之间
    result = mms.fit_transform(raw_samples)
    print(result)
    
    
    

    二、二值化

  • 二值化是一种将特征或标签转换为二进制形式的过程。具体来说,就是将数值型数据转换为只有两个可能取值的形式,通常是0和1。这个过程可以帮助简化模型的计算复杂度,提高模型的训练速度和预测性能。
    import numpy as np
    import sklearn.preprocessing as sp
    raw_samples = np.array([
        [17.,100.,4000.],
        [20.,80.,5000.],
        [23.,75.,5500.]])
    #二值化
    bin = sp.Binarizer(threshold=80)  #大于80转化为1,小于等于转为0
    bin_sample = bin.transform(raw_samples)
    print(bin_sample)

    三、归一化

  • 归一化(Normalization)是将数据转换为统一的标准或范围的过程。
  • L1范数(L1 Norm):也称为曼哈顿距离(Manhattan Distance),它是向量中各个元素的绝对值之和。对于向量x = [x1, x2, ..., xn],其L1范数定义为:||x||1 = |x1| + |x2| + ... + |xn|。

  • L2范数(L2 Norm):也称为欧几里得范数(Euclidean Norm),它是向量中各个元素的平方和的平方根。对于向量x = [x1, x2, ..., xn],其L2范数定义为:||x||2 = sqrt(x1^2 + x2^2 + ... + xn^2)。

    import numpy as np
    import sklearn.preprocessing as sp
    
    data = np.array([[20,10,5],[4,2,1],[15,11,13]])
    r= sp.normalize(data,norm='l1') #l1范数
    print(r)
    print(np.abs(r).sum(axis=1))   
    
    r= sp.normalize(data,norm='l2') #l1范数
    print(r)
    print((np.abs(r)**2).sum(axis=1))   #平方和为1

    四、独热编码

  • 独热编码(One-Hot Encoding)是一种将分类变量转换为二进制向量的方法。
  • 假设有一个特征列,其中包含三个不同的类别:A、B和C。独热编码会为每个类别创建一个二进制向量,其中只有一个元素为1,其余元素为0。对于类别A,独热编码的结果可能是[1, 0, 0];对于类别B,结果可能是[0, 1, 0];对于类别C,结果可能是[0, 0, 1]。这样,原始的分类变量就被转换成了一个长度等于类别数量的向量。
    import numpy as np
    import sklearn.preprocessing as sp
    #独热编码
    #创建一个热编码器
    #sparse  是否使用紧缩格式(稀疏矩阵)
    #dtyle  数据类型
    data = np.array([[1,3,2],[7,5,4],[1,8,6],[7,3,9]])
    ohe = sp.OneHotEncoder()
    r = ohe.fit_transform(data) # 稀疏矩阵
    print(r.toarray())   #转为数组
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cityミ slaves

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值