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 ?

Comment convertir l'ensemble de données IRIS de Scikit-learn en un ensemble de données avec seulement deux fonctionnalités en Python ?

WBOY
Libérer: 2023-08-30 21:49:06
avant
1149 Les gens l'ont consulté

Comment convertir lensemble 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.

Étapes

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.

Exemple

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)
Copier après la connexion

Sortie

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)
Copier après la connexion

Comment convertir l'ensemble de données Iris en un ensemble de données à 3 entités ?

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.

Exemple

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_)
Copier après la connexion

Sortie

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
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal