• 在python中分别利用numpy,tensorflow,pytorch实现数据的增加维度(升维),减少维度(降维)


    在这里插入图片描述


    前言

    我们明确一下升维和降维的概念:

    升维(Dimensionality Augmentation):增加数据的维度,通常用于提供更多信息或从不同的角度看待数据。

    降维(Dimensionality Reduction):减少数据的维度,通常用于简化数据或去除无关紧要的特征。

    一、使用numpy实现升维度,降维度

    Numpy
    升维

    import numpy as np  
      
    # 创建一个二维数组  
    data = np.array([[1, 2, 3], [4, 5, 6]])  
      
    # 通过reshape方法增加维度  
    data_augmented = data.reshape((2, 3, 1))  
    print(data_augmented)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    import numpy as np  
      
    # 创建一个二维数组  
    data = np.array([[1, 2, 3], [4, 5, 6]])  
      
    # 通过repeat方法增加维度  
    data_augmented = np.repeat(data, 10, axis=0)  
    print(data_augmented)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    降维

    import numpy as np  
      
    # 创建一个二维数组  
    data = np.array([[1, 2, 3], [4, 5, 6]])  
      
    # 通过mean方法计算每列的平均值,实现降维  
    data_reduced = np.mean(data, axis=0)  
    print(data_reduced)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    二、使用TensorFlow实现升维度,降维度

    升维:(两种方法)

    import tensorflow as tf  
      
    # 创建一个二维张量  
    data = tf.constant([[1, 2, 3], [4, 5, 6]])  
      
    # 通过tile方法增加维度  
    data_augmented = tf.tile(data, [1, 1, 1])  
    print(data_augmented)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    import tensorflow as tf  
      
    # 创建一个一维张量  
    data = tf.constant([1, 2, 3])  
      
    # 通过tf.expand_dims方法增加维度  
    data_augmented = tf.expand_dims(data, axis=0)  
    print(data_augmented)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    降维

    在TensorFlow中,通常使用tf.reduce_mean来计算张量的平均值以实现降维。

    import tensorflow as tf  
      
    # 创建一个二维张量  
    data = tf.constant([[1, 2, 3], [4, 5, 6]])  
      
    # 通过tf.reduce_mean方法计算每列的平均值,实现降维  
    data_reduced = tf.reduce_mean(data, axis=0)  
    print(data_reduced)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    三、使用PyTorch实现升维度,降维度

    升维

    在PyTorch中,可以使用unsqueeze方法来增加维度。

    import torch  
      
    # 创建一个二维张量  
    data = torch.tensor([[1, 2, 3], [4, 5, 6]])  
      
    # 通过unsqueeze方法增加维度  
    data_augmented = data.unsqueeze(0) # 在第0个维度增加维度,可以选择其他维度。这里选择了第0个维度。  
    print(data_augmented)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    降维:在PyTorch中,可以使用mean函数来计算张量的平均值以实现降维。与numpy类似,这里不再重复。


    总结

    升高维度:增加特征有助于模型学习更复杂的模式。例如,在机器学习中,我们经常将多个一维数据组合成一个二维数据,以利用更多的特征信息。
    可以引入额外的信息,有助于改进模型的性能。例如,在某些情况下,我们可以将多个相关的特征合并为一个特征,或者将一个特征转换为多个更细粒度的特征,从而提供更多信息供模型学习。

    降低维度:减少特征可以帮助简化模型,提高运行效率。对于高维数据,模型可能需要更多的计算资源和时间来处理,因此降低维度可以加快模型的训练速度并减少过拟合的可能性。
    可以去除无关的特征和噪声,提高模型的准确性。通过删除与目标变量无关的特征,或者将多个相关的特征合并为一个特征,模型可以更加专注于学习重要的特征,从而提高预测的准确性。

  • 相关阅读:
    代理IP采集数据:挖掘洞察力的关键工具
    基于conda的OpenCV库安装
    2023年中国玉米淀粉糖市场现状及行业需求前景分析[图]
    MapUtil从map结构中获取深度的信息
    超聚变安装银河麒麟服务器系统ky10-server-x86
    Debezium系列之:将Debezium的info日志、warn日志、error日志拆分到不同文件中
    SpringBoot2入门必读(4):Spring boot集成Mybatis(二)
    如何从0到1搭建一个个人网站
    Mysql的定时备份与恢复
    ruby ftp封装实例详解
  • 原文地址:https://blog.csdn.net/qlkaicx/article/details/134505755