Scikit Learn - 資料表示



眾所周知,機器學習是關於從資料中建立模型的。為此,計算機必須首先理解資料。接下來,我們將討論各種表示資料的方法,以便計算機能夠理解它們 -

資料作為表格

在 Scikit-learn 中表示資料的最佳方法是表格形式。表格表示一個二維資料網格,其中行表示資料集的各個元素,列表示與這些各個元素相關的數量。

示例

透過以下示例,我們可以使用 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 的 序列 中。目標陣列可以同時具有連續數值和離散值。

目標陣列與特徵列有何不同?

我們可以透過一點來區分兩者,即目標陣列通常是我們想要從資料中預測的數量,即在統計學上它是因變數。

示例

在下面的示例中,從鳶尾花資料集中,我們根據其他測量結果預測花的種類。在這種情況下,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);

輸出

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

輸出

(150,4)
(150,)
廣告