如何在Python中將Scikit-learn的IRIS資料集轉換為只有兩個特徵的資料集?

WBOY
發布: 2023-08-30 21:49:06
轉載
998 人瀏覽過

如何在Python中將Scikit-learn的IRIS資料集轉換為只有兩個特徵的資料集?

Iris,一個多元花卉資料集,是最有用的 Pyhton scikit-learn 資料集之一。它分為 3 類,每類 50 個實例,包含三種鳶尾花(山鳶尾花、維吉尼亞鳶尾和雜色鳶尾)的萼片和花瓣部分的測量值。除此之外,Iris 資料集包含這三個物種中每個物種的 50 個實例,並由四個特徵組成,即 sepal_length (cm)、sepal_width (cm)、petal_length (cm)、petal_width (cm)。

我們可以使用主成分分析(PCA)將 IRIS 資料集轉換為具有 2 個特徵的新特徵空間。

步驟

我們可以按照下面給出的步驟,使用 Python 中的 PCA 將 IRIS 資料集轉換為 2 特徵資料集 -

第 1 步- 首先,從 scikit-learn 導入必要的套件。我們需要導入資料集和分解包。

步驟2- 載入 IRIS 資料集。

步驟3- 列印資料集的詳細資訊。

步驟4- 初始化主成分分析 (PCA) 並應用 fit() 函數來擬合資料。 p>

步驟5- 將資料集轉換為新維度,即 2 個特徵資料集。

範例

在下面的範例中,我們將使用上述步驟透過 PCA 將 scikit-learn IRIS 植物資料集轉換為 2 個特徵。

# Importing the necessary packages from sklearn import datasets from sklearn import decomposition # Load iris plant dataset iris = datasets.load_iris() # Print details about the dataset print('Features names : '+str(iris.feature_names)) print('\n') print('Features size : '+str(iris.data.shape)) print('\n') print('Target names : '+str(iris.target_names)) print('\n') X_iris, Y_iris = iris.data, iris.target # Initialize PCA and fit the data pca_2 = decomposition.PCA(n_components=2) pca_2.fit(X_iris) # Transforming iris data to new dimensions(with 2 features) X_iris_pca2 = pca_2.transform(X_iris) # Printing new dataset print('New Dataset size after transformations: ', X_iris_pca2.shape)
登入後複製

輸出

它將產生以下輸出 -

Features names : ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] Features size : (150, 4) Target names : ['setosa' 'versicolor' 'virginica'] New Dataset size after transformations: (150, 2)
登入後複製

如何將 Iris 資料集轉換為 3 特徵資料集?

我們可以使用稱為主成分分析(PCA)的統計方法將 Iris 資料集轉換為具有 3 個特徵的新特徵空間。 PCA透過分析原始資料集的特徵,基本上將資料線性投影到新的特徵空間。

PCA 背後的主要概念是選擇資料的「主要」特徵並基於它們建立特徵。它將為我們提供新的資料集,該資料集的大小較小,但具有與原始資料集相同的資訊。

範例

在下面的範例中,我們將使用 PCA 轉換 scikit-learn Iris 植物資料集(以 3 個元件初始化)。

# Importing the necessary packages from sklearn import datasets from sklearn import decomposition # Load iris plant dataset iris = datasets.load_iris() # Print details about the dataset print('Features names : '+str(iris.feature_names)) print('\n') print('Features size : '+str(iris.data.shape)) print('\n') print('Target names : '+str(iris.target_names)) print('\n') print('Target size : '+str(iris.target.shape)) X_iris, Y_iris = iris.data, iris.target # Initialize PCA and fit the data pca_3 = decomposition.PCA(n_components=3) pca_3.fit(X_iris) # Transforming iris data to new dimensions(with 2 features) X_iris_pca3 = pca_3.transform(X_iris) # Printing new dataset print('New Dataset size after transformations : ', X_iris_pca3.shape) print('\n') # Getting the direction of maximum variance in data print("Components : ", pca_3.components_) print('\n') # Getting the amount of variance explained by each component print("Explained Variance:",pca_3.explained_variance_) print('\n') # Getting the percentage of variance explained by each component print("Explained Variance Ratio:",pca_3.explained_variance_ratio_) print('\n') # Getting the singular values for each component print("Singular Values :",pca_3.singular_values_) print('\n') # Getting estimated noise covariance print("Noise Variance :",pca_3.noise_variance_)
登入後複製

輸出

它將產生以下輸出 -

Features names : ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] Features size : (150, 4) Target names : ['setosa' 'versicolor' 'virginica'] Target size : (150,) New Dataset size after transformations : (150, 3) Components : [[ 0.36138659 -0.08452251 0.85667061 0.3582892 ] [ 0.65658877 0.73016143 -0.17337266 -0.07548102] [-0.58202985 0.59791083 0.07623608 0.54583143]] Explained Variance: [4.22824171 0.24267075 0.0782095 ] Explained Variance Ratio: [0.92461872 0.05306648 0.01710261] Singular Values : [25.09996044 6.01314738 3.41368064] Noise Variance : 0.02383509297344944
登入後複製

以上是如何在Python中將Scikit-learn的IRIS資料集轉換為只有兩個特徵的資料集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!