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
WBOYavant
2023-08-30 21:49:061111parcourir

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)

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)

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_)

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer