📜  Scikit学习-数据表示

📅  最后修改于: 2020-12-10 05:47:05             🧑  作者: Mango


众所周知,机器学习即将根据数据创建模型。为此,计算机必须首先了解数据。接下来,我们将讨论表示数据的各种方式,以便计算机可以理解-

数据如表

在Scikit学习中表示数据的最佳方法是表格。表格表示数据的二维网格,其中行表示数据集的各个元素,列表示与这些单个元素相关的数量。

通过下面给出的示例,我们可以借助Python seaborn库以Pandas DataFrame的形式下载虹膜数据集

import seaborn as sns
iris = sns.load_dataset('iris')
iris.head()

输出

sepal_length sepal_width petal_length petal_width  species
0        5.1      3.5         1.4             0.2   setosa
1        4.9      3.0         1.4             0.2   setosa
2        4.7      3.2         1.3             0.2   setosa
3        4.6      3.1         1.5             0.2   setosa
4        5.0      3.6         1.4             0.2   setosa

从上面的输出中,我们可以看到数据的每一行代表一个观察到的花朵,行数代表数据集中的花朵总数。通常,我们将矩阵的行称为样本。

另一方面,数据的每一列代表描述每个样品的定量信息。通常,我们将矩阵的列称为要素。

数据作为特征矩阵

特征矩阵可以定义为表格布局,其中信息可以被认为是二维矩阵。它存储在名为X的变量中,并假定是二维的,形状为[n_samples,n_features]。通常,它包含在NumPy数组或Pandas DataFrame中。如前所述,样本始终代表数据集描述的单个对象,而要素代表以定量方式描述每个样本的不同观察结果。

数据作为目标数组

除了用X表示的功能矩阵,我们还有目标数组。也称为标签。用y表示。标签或目标数组通常是一维,长度为n_samples。它通常包含在NumPy数组或Pandas系列中。目标数组可以同时具有值,连续数值和离散值。

目标数组与要素列有何不同?

我们可以通过一点来区分这两者,即目标数组通常是我们要从数据中预测的数量,即,从统计角度来说,它是因变量。

在下面的示例中,我们从虹膜数据集中基于其他测量值来预测花朵的种类。在这种情况下,“种类”列将被视为要素。

import seaborn as sns
iris = sns.load_dataset('iris')
%matplotlib inline
import seaborn as sns; sns.set()
sns.pairplot(iris, hue='species', height=3);

输出

目标阵列

X_iris = iris.drop('species', axis=1)
X_iris.shape
y_iris = iris['species']
y_iris.shape

输出

(150,4)
(150,)