Develop a program to implement Principal Component Analysis (PCA) for
reducing the dimensionality of the Iris dataset from 4 features to 2.
import numpy as np
import pandas as pd
import [Link] as plt
import seaborn as sns
from [Link] import PCA
from [Link] import load_iris
from [Link] import StandardScaler
# Load the Iris dataset
data = load_iris()
df = [Link]([Link], columns=data.feature_names)
df['Species'] = [Link] # Add target labels
species_names = dict(enumerate(data.target_names)) # Map target
values to species names
df['Species'] = df['Species'].map(species_names)
# Standardize the features
scaler = StandardScaler()
df_features = [Link](columns=['Species']) # Exclude target column
scaled_features = scaler.fit_transform(df_features)
# Apply PCA to reduce dimensions from 4 to 2
pca = PCA(n_components=2)
principal_components = pca.fit_transform(scaled_features)
# Create a DataFrame with the principal components
pca_df = [Link](principal_components, columns=['PC1',
'PC2'])
pca_df['Species'] = df['Species']
pca_df
# Plot the PCA results
[Link](figsize=(8, 6))
[Link](x='PC1', y='PC2', hue='Species', data=pca_df,
palette='viridis', s=100, edgecolor='black')
[Link]('PCA of Iris Dataset (2 Components)')
[Link]('Principal Component 1')
[Link]('Principal Component 2')
[Link](title='Species')
[Link](True)
[Link]()
# Explained variance ratio
explained_variance = pca.explained_variance_ratio_
print("Explained variance by each principal component:",
explained_variance)