Maison >développement back-end >Tutoriel Python >Comment convertir l'ensemble de données IRIS de Scikit-learn en un ensemble de données avec seulement deux fonctionnalités en Python ?
Iris, un ensemble de données de fleurs multivariées, est l'un des ensembles de données Python scikit-learn les plus utiles. Il est divisé en 3 catégories de 50 instances chacune et contient des mesures des parties sépales et pétales de trois espèces d'iris (Iris mountaina, Iris virginia et Iris panaché). En dehors de cela, l'ensemble de données Iris contient 50 instances de chacune des trois espèces et se compose de quatre caractéristiques, à savoir sepal_length (cm), sepal_width (cm), petal_length (cm), petal_width (cm).
Nous pouvons utiliser l'analyse en composantes principales (ACP) pour transformer l'ensemble de données IRIS en un nouvel espace de fonctionnalités avec 2 fonctionnalités.
Nous pouvons convertir l'ensemble de données IRIS en un ensemble de données à 2 fonctionnalités à l'aide de PCA en Python en suivant les étapes ci-dessous -
Étape 1 - Tout d'abord, importez les packages nécessaires depuis scikit-learn. Nous devons importer l’ensemble de données et le package de décomposition.
Étape 2 - Chargez l'ensemble de données IRIS.
Étape 3 - Imprimez des informations détaillées sur l'ensemble de données.
Étape 4 - Initialisez l'analyse en composantes principales (ACP) et appliquez la fonction fit() pour ajuster les données. p>
Étape 5 - Convertir l'ensemble de données en de nouvelles dimensions, c'est-à-dire un ensemble de données à 2 fonctionnalités.
Dans l'exemple ci-dessous, nous transformerons l'ensemble de données de la plante scikit-learn IRIS en 2 fonctionnalités via PCA en suivant les étapes ci-dessus.
# 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)
Il produira le résultat suivant -
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)
Nous pouvons transformer l'ensemble de données Iris en un nouvel espace de fonctionnalités avec 3 fonctionnalités en utilisant une méthode statistique appelée Analyse en Composantes Principales (ACP). PCA projette essentiellement de manière linéaire les données dans un nouvel espace de fonctionnalités en analysant les fonctionnalités de l'ensemble de données d'origine.
Le concept principal derrière la PCA est de sélectionner les caractéristiques « principales » des données et de créer des fonctionnalités basées sur celles-ci. Cela nous donnera un nouvel ensemble de données de plus petite taille mais contenant les mêmes informations que l’ensemble de données d’origine.
Dans l'exemple ci-dessous, nous utiliserons PCA pour transformer l'ensemble de données de la plante scikit-learn Iris (initialisé avec 3 composants).
# 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_)
Il produira le résultat suivant -
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!