Примечание
Перейти в конец, чтобы скачать полный код примера или запустить этот пример в браузере через JupyterLite или Binder.
Сравнение двумерных проекций набора данных Iris с помощью LDA и PCA
Набор данных Iris включает 3 вида ирисов (сетоза, вирсиколор и виргиника), описанных 4 признаками: длина чашелистика, ширина чашелистика, длина лепестка и ширина лепестка.
Метод главных компонент (PCA), применённый к этим данным, определяет комбинации признаков (главные компоненты, или направления в пространстве признаков), которые объясняют наибольшую дисперсию данных. Здесь мы строим график различных образцов по двум первым главным компонентам.
Линейный дискриминантный анализ (LDA) пытается определить признаки, которые объясняют наибольшую дисперсию между классами. В частности, в отличие от PCA, LDA — это метод с учителем, использующий известные метки классов.
explained variance ratio (first two components): [0.92461872 0.05306648]
# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
iris = datasets.load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names
pca = PCA(n_components=2)
X_r = pca.fit(X).transform(X)
lda = LinearDiscriminantAnalysis(n_components=2)
X_r2 = lda.fit(X, y).transform(X)
# Percentage of variance explained for each components
print(
"explained variance ratio (first two components): %s"
% str(pca.explained_variance_ratio_)
)
plt.figure()
colors = ["navy", "turquoise", "darkorange"]
lw = 2
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
plt.scatter(
X_r[y == i, 0], X_r[y == i, 1], color=color, alpha=0.8, lw=lw, label=target_name
)
plt.legend(loc="best", shadow=False, scatterpoints=1)
plt.title("PCA of IRIS dataset")
plt.figure()
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
plt.scatter(
X_r2[y == i, 0], X_r2[y == i, 1], alpha=0.8, color=color, label=target_name
)
plt.legend(loc="best", shadow=False, scatterpoints=1)
plt.title("LDA of IRIS dataset")
plt.show()
Общее время выполнения скрипта: (0 минут 0.178 секунды)
Связанные примеры
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/auto_examples/decomposition/plot_pca_vs_lda.html

