乐于分享
好东西不私藏

AI笔记4-科学计算Numpy、Pytorch、数据预处理

AI笔记4-科学计算Numpy、Pytorch、数据预处理
大家好,我是AI小白,今天我们继续学习科学计算Numpy、Pytorch、数据预处理,下面是我的学习心得,欢迎大家一起讨论、学习。
大纲主题
  • 科学计算神器-Numpy的使用
  • 科学计算神器-Pytorch的使用
  • 基本统计量和数据预处理
  • 内容小结
一、科学计算神器-Numpy的使用
  • 矩阵的基本操作
  • 使用Numpy生成矩阵
    打印输出:
    三D图形如下:
  • 矩阵的堆叠和拼接

    numpy.concatenate:

    - concatenate是一个通用的函数,用于沿指定轴连接数组。

    - 可以在指定的轴(axis)上连接两个或多个数组。

    - 可以控制连接的方向,例如沿行(axis=0)或列(axis=1)进行连接。

    numpy.stack:

    - stack 是用于沿新轴(堆叠轴)堆叠数组的函数。

    - 创建一个新轴来堆叠数组,改变数组的维度。

    - 可以通过 axis 参数控制在哪个位置添加新轴。

    numpy.vstack:

    - np.vstack 是用于垂直(沿着行方向)堆叠数组的函数。

    - 将两个或多个数组按行堆叠在一起。

    numpy.hstack:

    - np.hstack 是用于水平(沿着列方向)堆叠数组的函数。

    - 将两个或多个数组按列堆叠在一起

    numpy.dstack:

    - np.dstack 是用于深度(沿着第三维)堆叠数组的函数。

    - 将两个或多个数组按深度方向堆叠在一起

    代码如下:

    三维图形展示:

    numpy.stack的使用:

    一维数组堆叠二维数组代码如下:

    图形展示:
  • 二维数组堆叠三位数组代码如下:
图形展示:
二、科学计算神器-Pytorch的使用

PyTorch也是一个常用的科学计算库,相比Numpy,Numpy只能运行在CPU,PyTorch可以运行在GPU上运行,加快计算。

  • Pytorch安装

    第一步:# 升级pip 

    python -m pip install --upgrade pip 

    # 更换 pypi 源加速库的安装 

    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

第二步:访问https://pytorch.org/ ,根据自己机器的环境选择对应的pytorch安装命令

复制命令执行,耐心等待下载安装:

pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu126

第三步:启动命令行,运行对应的安装命令

注意:如果使用的是jupyter,建议通过开始菜单启动anaconda prompt的方式运行命令行

# 如果操作系统=window、显卡有英伟达显卡、显存>4G,则可以运行如下命令:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# 如果操作系统=window、无英伟达显卡、显存不够只能使用CPU,则可以运行如下安装命令:pip3 install torch torchvision torchaudio
# 如果操作系统=Mac,则可以运行如下安装命令:pip3 install torch torchvision torchaudio
# 如果操作系统=Linux,则可以运行如下安装命令:pip3 install torch torchvision torchaudio
  • 矩阵的基本操作(使用torch)

  • 矩阵的生成(使用torch)

  • 矩阵的堆叠和拼接(使用torch)

通过以上对比可以发现

  1. numpy和torch的使用方法基本一致,numpy支持的计算方法torch也支持
  2. 两者都提供了类似的数组/(torch里叫张量)操作,如索引、切片、广播、数学运算等
  3. numpy也可以与torch进行互转,例如:
三、基本统计量和数据预处理
  • 基本统计量

均值-Mean

定义:均值是一组数据中所有数据值的总和除以数据值的个数。

作用:表示一组数据的平均值。

计算方法:均值 \mu = \frac{\sum_{i=1}^{n} x_i}{n},其中 x_i 是数据集中的每个数据值,n 是数据值的个数。

标准差-(Standard Deviation)

定义:标准差是方差的平方根,用于衡量数据值的离散程度。

作用:表示数据的离散程度。

计算方法:标准差 \sigma = \sqrt{\frac{\sum_{i=1}^{n} (x_i - \mu)^2}{n}},其中 x_i 是数据集中的每个数据值,\mu 是均值,n 是数据值的个数。

方差(Variance)

定义:方差是每个数据值与均值之差的平方的平均值。

作用:表示数据与均值之间的差异程度。(如果比较离散的话,方差越大;如果比较集中的话,方差越小)

计算方法:方差 \sigma^2 = \frac{\sum_{i=1}^{n} (x_i - \mu)^2}{n},其中 x_i 是数据集中的每个数据值,\mu 是均值,n 是数据值的个数。

代码如下:

  • 数据预处理

1.归一化(Normalization)-线性映射:

处理方式:将数据缩放到一个特定的范围,通常是[0, 1]或[-1, 1]。
使用场景:在使用基于距离的算法(如KNN、SVM)时,需要对特征进行归一化,以避免某些特征对距离计算的影响过大。例如,在人脸识别中,对图像特征进行归一化可以确保不同特征之间的权重相对平衡,提高识别准确性。

备注:这里的归一化容易与上篇课程皮尔逊系数:协方差的归一化搞混,仔细查看皮尔逊系数是将两列数据变化趋势归一化到[-1,1]之间;此处的归一化是将一组数据归一化到[-1,1]之间

代码如下:
2.去中心化(Mean Normalization)/ 去均值 / center data:
处理方式:计算数据集的均值,通过减去均值来实现,主要用于观察数据中哪些数据"做了贡献(正数)",哪些数据"拖后腿"(负数)。
使用场景:在处理时间序列数据时,去中心化可以消除数据的趋势和季节性变化,使模型更容易捕捉数据的周期性。例如,在股票市场分析中,去中心化可以帮助识别股票价格的短期波动。
代码如下:
3.规范化(Standardization)/ 规范化:
处理方式:将数据转换为均值为0,标准差为1的分布,主要用于一眼看出哪些数据是噪声(也叫离群点)
使用场景:在使用需要标准正态分布数据的模型(如线性回归、逻辑回归)时,可以使用规范化。例如,在文本分类中,对文本特征进行规范化可以提高分类器的准确性和稳定性。
代码如下:
4.信息蕴含在数据的相对大小
代码展示:
结果展示:

通过以上的对比可以看到,中心化Scores、归一化Scores、标准化Scores的数据虽然被修改了,与原始Scores不一样,但是数据中所表达的信息(曲线)仍然没有丢失,这即是信息蕴含在数据的相对大小

  • 数据预处理的应用

在机器学习当中,我们往往要对数据进行预处理,以提升数据质量,使得不同特征具有相似的尺度,有助于模型的收敛和性能提升。以下仍然使用鸢尾花的示例,来实际验证下数据预处理是否会对准确率有影响。

代码如下:

# 加载鸢尾花数据集:

# 减均值(中心化):

# 归一化:
# 规范化:

执行以上代码,可以看到原始数据、归一化数据、去中心化数据、规范化数据在训练之后,预测结果都为1.0

四、内容小结

1.在数据科学计算时,有两大工具可以使用:Numpy和Pytorch
2.Numpy使用的是CPU进行计算,更适合传统的数值计算任务;PyTorch 可以使用GPU计算,更适合深度学习任务。
3.信息蕴含在数据的相对大小中,即是对数据做了修改但没有改变相对大小,那么信息仍然存在。
4.在机器学习当中,我们往往要对数据进行预处理,以提升数据质量,使得不同特征具有相似的尺度,有助于模型的收敛和性能提升。
5.数据预处理的方式一般有归一化、去中心化、规范化。