一、前言
在機器學習領域中,常見的操作之一是數據集的預處理。datasets.load_iris()是機器學習領域中提供的一種常用數據集,它是一個有關鳶尾花的數據集。本文將從多個方面對datasets.load_iris()進行詳細的闡述,希望能夠幫助讀者更好地理解該數據集。
二、數據集概述
數據集是指一組數據實例的集合。在機器學習領域中,數據集通常用於訓練和測試模型。datasets.load_iris()數據集是一個包含150個數據實例的數據集,每個數據實例包含該鳶尾花的4個屬性,以及該鳶尾花所屬的品種。該數據集共有3中不同的品種,每個品種有50個數據實例。
from sklearn.datasets import load_iris
iris = load_iris()
print(iris.keys())
#dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])
首先我們需要導入load_iris()模塊,然後我們可以通過打印iris.keys()來確定該數據集中包含的所有信息。運行代碼後,可以看到該數據集中包含以下6個鍵值:
- ‘data’:一個150×4的numpy數組,包含150個數據實例的屬性值;
- ‘target’:一個長度為150的numpy數組,包含每個數據實例所屬的品種;
- ‘target_names’:一個長度為3的numpy數組,包含每個品種的名稱;
- ‘DESCR’:一個字符串,包含該數據集的說明文檔;
- ‘feature_names’:一個長度為4的numpy數組,包含每個屬性的名稱;
- ‘filename’:一個字符串,包含該數據集存儲的文件名。
三、數據集屬性
在使用datasets.load_iris()數據集時,我們需要了解該數據集的每個屬性的含義。以下是每個屬性的詳細介紹:
1. ‘data’
‘data’屬性是一個包含150個數據實例的150×4 numpy數組。每個數據實例包含以下4個屬性:
- 萼片長度(cm)
- 萼片寬度(cm)
- 花瓣長度(cm)
- 花瓣寬度(cm)
print(iris['data'])
#[[5.1 3.5 1.4 0.2]
# [4.9 3. 1.4 0.2]
# [4.7 3.2 1.3 0.2]
# ...
# [6.5 3. 5.2 2. ]
# [6.2 3.4 5.4 2.3]
# [5.9 3. 5.1 1.8]]
2. ‘target’
‘target’屬性是一個包含150個數據實例的長度為150的numpy數組。每個數據實例所屬的品種標籤是從0到2的一個整數,分別表示以下品種:
- 0:山鳶尾花(Iris setosa)
- 1:變色鳶尾花(Iris versicolor)
- 2:維吉尼亞鳶尾花(Iris virginica)
print(iris['target'])
#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
# 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2
# 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]
3. ‘target_names’
‘target_names’屬性是一個包含3個目標類標籤的numpy數組,分別表示以下品種:
- 0:山鳶尾花(Iris setosa)
- 1:變色鳶尾花(Iris versicolor)
- 2:維吉尼亞鳶尾花(Iris virginica)
print(iris['target_names'])
#['setosa' 'versicolor' 'virginica']
4. ‘DESCR’
‘DESCR’屬性是一個字符串,包含該數據集的詳細描述信息。
print(iris['DESCR'])
#Iris Plants Database
#====================
#
#Notes
#-----
#Data Set Characteristics:
# :Number of Instances: 150 (50 in each of three classes)
# :Number of Attributes: 4 numeric, predictive attributes and the class
# :Attribute Information:
# - sepal length in cm
# - sepal width in cm
# - petal length in cm
# - petal width in cm
# - class:
# - Iris Setosa
# - Iris Versicolour
# - Iris Virginica
# :Summary Statistics:
# ...
5. ‘feature_names’
‘feature_names’屬性是一個包含4個屬性名稱的numpy數組,分別是:(‘sepal length (cm)’, ‘sepal width (cm)’, ‘petal length (cm)’, ‘petal width (cm)’)
print(iris['feature_names'])
#['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
四、數據集應用
數據集是機器學習領域中不可或缺的部分之一。使用datasets.load_iris()數據集可以對分類問題進行訓練和測試。以下是一個數據集的使用示例,使用了train_test_split將數據集分成了訓練集和測試集:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
上述代碼中,我們首先導入load_iris()模塊。然後,我們將整個數據集的數據部分(’data’)賦給X,將整個數據集的目標變量部分(’target’)賦給y。接下來,我們使用train_test_split將數據集分為訓練集和測試集。在這個例子中,數據集被分為80%的訓練集和20%的測試集。
五、結語
本文對datasets.load_iris()數據集進行了深入的介紹,包括數據集概述、數據集屬性和數據集應用。此外,我們也提供了一個使用數據集的示例。希望本文能夠對讀者在機器學習領域有所幫助。
原創文章,作者:HJBC,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/135441.html
微信掃一掃
支付寶掃一掃