您的位置:首页 > 新闻 > 热点要闻 > 【python】数据预处理

【python】数据预处理

2024/10/13 23:00:35 来源:https://blog.csdn.net/weixin_54799594/article/details/142266207  浏览:    关键词:【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 spdata = 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())   #转为数组
    

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com