用python处理AI数据集

网友投稿 334 2022-08-24

用python处理AI数据集

机器学习的核心是处理数据。你的机器学习工具应该与数据的质量一样好。本文涉及清理数据的各个步骤。你的数据需要经过几个步骤才能用于预测。

数据预处理涉及的步骤:

导入所需的库导入数据集处理缺失的数据。编码分类数据。将数据集拆分为测试集和训练集。特征缩放。

那么让我们逐一学习这些步骤。

步骤1:导入所需的库

你先需要下载此数据集:​​Data.csv​​

每次我们制作新模型时,都会要求导入 Numpy 和 Pandas。 Numpy 是一个包含数学函数的库,用于科学计算,而 Pandas 用于导入和管理数据集。

import pandas as pdimport numpy as np复制代码

在这里我们导入 pandas 和 Numpy 库并分别命名名 “pd” 和 “np”。

第2步:导入数据集

数据集以 .csv 格式提供。 CSV 文件以纯文本格式存储表格数据。该文件的每一行都是一个数据记录。我们使用 pandas 库的 read_csv 方法将本地 CSV 文件读取为数据帧(dataframe)。

dataset = pd.read_csv('Data.csv')复制代码

在仔细检查数据集之后,我们将在数据集(X)中创建一个特征矩阵,并创建一个依赖向量(Y)及其各自的观察结果。我们用 pandas 的 iloc (用于修复索引以进行选择)读取列,它包含两个参数 — [行选择,列选择]。

X = dataset.iloc[:, :-1].valuesy = dataset.iloc[:, 3].values复制代码

步骤3:处理缺失的数据

我们得到的数据很少是同质的。有时数据可能会丢失,所以需要对其进行处理,以免降低机器学习模型的性能。

我们需要用整列的 Mean 或 Median 替换缺失的数据。为此,我们将使用 ​​sklearn.preprocessing​​​ 库,其中包含一个名为 ​​Imputer​​ 的类,它将帮助我们处理丢失的数据。

from sklearn.preprocessing import Imputerimputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0)复制代码

我们的对象名称是 imputer。 ​​Imputer​​ 类可以采用如下参数:

missing_values: 它是缺失值的占位符。所有出现的​​missing_values​​​ 都将被估算。我们可以给它一个整数或​​NaN​​ 来查找缺失值。strategy: 这是插补策略 —— 如果是"mean",则使用沿轴的平均值(列)替换缺失值。其他策略包括"median"(中位数)和"most_frequent"(最常见)。axis: 可以指定 0 或 1,0 沿列插入,1沿行插入。

现在将 ​​imputer​​ 对象与我们的数据相匹配。

imputer = imputer.fit(X[:, 1:3])复制代码

接着用 ​​transform​​ 方法将缺失值替换为列的平均值。

X[:, 1:3] = imputer.transform(X[:, 1:3])复制代码

步骤4:编码分类数据

任何非定量的变量都是分类的。例如头发颜色、性别、研究领域、大学就业、政治派别、疾病感染状况等。

但是为什么要编码?

我们不能在模型的数学方程中使用“男性”和“女性”等值,因此需要将这些变量编码为数字。

为此,我们从 ​​sklearn.preprocessing​​​ 库导入 ​​LabelEncoder​​​ 类,并创建 ​​LabelEncoder​​​ 类的对象​​labelencoder_X​​​。之后在分类特征上使用 ​​fit_transform​​ 方法。

在编码之后,有必要区分同一列中的变量,为此我们将使用 ​​sklearn.preprocessing​​​ 库中的 ​​OneHotEncoder​​ 类。

独热编码(One-Hot Encoding)

独热编码将分类特征转换为更适合分类和回归算法的格式。

from sklearn.preprocessing import LabelEncoder, OneHotEncoderlabelencoder_X = LabelEncoder()X[:, 0] = labelencoder_X.fit_transform(X[:, 0])onehotencoder = OneHotEncoder(categorical_features = [0])X = onehotencoder.fit_transform(X).toarray()labelencoder_y = LabelEncoder()y = labelencoder_y.fit_transform(y)复制代码

步骤5:将数据集拆分为训练集和测试集

现在我们将数据分成两组,一组用于训练模型,称为训练集,另一组用于测试模型的性能,称为测试集。它们的比例通常是 80/20。为此,我们导入 ​​sklearn.model_selection​​​ 库的 ​​train_test_split​​ 方法。

from sklearn.model_selection import train_test_split复制代码

现在建立训练集和测试集,我们将创建 4 套 ——

X_train(训练部分特征矩阵),X_test(测试特征矩阵的一部分),Y_train(训练与 X 集相关的因变量的一部分,因此也是相同的索引),Y_test(测试与 X 测试集相关的因变量的一部分,因此也测试相同的索引)。

我们将为它们分配 ​​test_train_split​​​,它接受参数 ​​arrays​​​(X和Y)​​test_size​​(指定分割数据集的比率)。

X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)复制代码

第6步:特征缩放

大多数机器学习算法在其计算中使用两个数据点之间的欧几里德距离。因此,高幅度特征在距离计算中的权重将比低幅度的特征更重。为了避免这种功能,使用标准化或 Z-score 标准化。这是通过使用 ​​StandardScaler​​​ 类 ​​sklearn.preprocessing​​ 来完成的。

from sklearn.preprocessing import StandardScalersc_X = StandardScaler()复制代码

此外,我们将转换 ​​X_test​​​ 集合,同时需要适应并转换 ​​X_train​​ 集合。

转换函数将所有数据转换为相同的标准化比例。

X_train = sc_X.fit_transform(X_train)X_test = sc_X.transform(X_test)复制代码

到此为止,你已经学习了数据预处理所涉及的基本步骤。

现在,你可以尝试在某些实际数据集上应用这些预处理技术。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:人工智能——数据增强
下一篇:为什么你的品牌做不好营销?(为什么要做品牌营销)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~