数据预处理:sklearn-preprocessing

  1. from sklearn import preprocessing

    preprocessing.scale(x)
    去均值的中心化(均值变为0);方差的规模化(方差变为1)。 
  2. 复制代码
    # 这是相当好的一个功能。可以对训练数据,测试数据应用相同的转换,以后有新的数据进来也可以直接调用,不用再重新把数据放在一起再计算一次了。
    # 调用fit方法,根据已有的训练数据 x 创建一个标准化的转换器
    # 另外,StandardScaler()中可以传入两个参数:with_mean,with_std.这两个都是布尔型的参数,
    # 默认情况下都是true,但也可以自定义成false.即不要均值中心化或者不要方差规模化为1.

    scaler = preprocessing.StandardScaler().fit(x)

    # 好了,比如现在又来了一组新的样本,也想得到相同的转换
    new_x = [[-1., 1., 0.]]

    scaler.transform(new_x)
    复制代码
  3. x_normalized = preprocessing.normalize(x, norm='l2')
    函数normalize 提供了一个快速有简单的方式在一个单向量上来实现这正则化的功能。正则化有l1,l2等。
  4. x = np.array([[1., -1., 2.],
                  [2., 0., 0.],
                  [0., 1., -1.]])
    
    binarizer = preprocessing.Binarizer(threshold=1.5)
    binarizer.transform(x)
    将数值型的特征数据转换成0,1的值。
  5. enc = preprocessing.OneHotEncoder()
    enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])    # fit来学习编码
    enc.transform([[0, 1, 3]]).toarray()    # 进行编码
    OneHot Encoder
  6. 复制代码
    from sklearn.Imputer import SimpleImputer
    imp = SimpleImputer(missing_values=np.nan, strategy='mean')

    x_0 =
    [[1, 2], [np.nan, 3], [7, 6]]
    imp.fit(x_0)
    
    x = [[np.nan, 2], [6, np.nan], [7, 6]]
    imp.transform(x)  # 填补值为x_0各列的均值

    #
    imp.fit_transform(x) 相当于 fit() + transform()
    复制代码
    弥补缺失数据
  7. 复制代码
    sex = pd.Series(["male", "female", "female", "male"])
    
    le = preprocessing.LabelEncoder()    #获取一个LabelEncoder
    le = le.fit(["male", "female"])      #训练LabelEncoder, 把male编码为0,female编码为1
    sex = le.transform(sex)    #使用训练好的LabelEncoder对原数据进行编码
    print(sex)
    
    # [1 0 0 1]
    
    le.inverse_transform([1,0,0,1])
    
    # array(['male', 'female', 'female', 'male'], dtype='<U6')
    复制代码
    将n个类别编码为0~n-1之间的整数(包含0和n-1)。

 

 

参考链接:

https://blog.csdn.net/weixin_40807247/article/details/82793220

https://www.cnblogs.com/sench/p/10134094.html

posted @   三奠茶  阅读(218)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示