Scikit Learn 简明教程

Scikit Learn - Data Representation

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

Data as table

在 Scikit-learn 中表示数据的最佳方式是表格形式。表格表示一个 2-D 数据网格,其中行表示数据集的各个元素,而列表示与这些各个元素相关的数量。

Example

使用下面给出的示例,我们可以借助 python seaborn 库以 Pandas DataFrame 的形式下载 iris dataset

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

Output

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

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

另一方面,数据中的每一列表示描述每个样本的定量信息。通常,我们将矩阵的列称为特征。

Data as Feature Matrix

特征矩阵可以定义为可以将信息视为二维矩阵的表格布局。它存储在名为 ` X ` 的变量中,并且假定为具有形状 [n_samples, n_features] 的二维矩阵。通常,它包含在 NumPy 数组或 Pandas DataFrame 中。正如前面所说的,样本始终表示由数据集描述的各个对象,而特征表示以定量方式描述每个样本的不同观察结果。

Data as Target array

除了特征矩阵(用 X 表示)之外,我们还有目标数组。它也称为标签。它用 y 表示。标签或目标数组通常是一维的,长度为 n_samples。它通常包含在 NumPy ` array ` 或 Pandas ` Series ` 中。目标数组可以同时具有值,连续数值和离散值。

How target array differs from feature columns?

我们可以通过一点来区分两者,即目标数组通常是我们希望从数据中预测的数量,即在统计学中它是因变量。

Example

在下面的示例中,从鸢尾数据集我们根据其他测量结果预测花卉的物种。在这种情况下,Species 列将被视为特征。

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

Output

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

Output

(150,4)
(150,)