Spec-Zone.ru › scikit-learn

Примечание

Перейти к концу, чтобы загрузить полный пример кода. Или запустить этот пример в вашем браузере через JupyterLite или Binder

Сравнение LDA и PCA 2D проекции набора данных Ирис

Набор данных Ирис представляет 3 вида ирисов (Сетоза, Версиколор и Вирджиника) с 4 атрибутами: длина чашелистика, ширина чашелистика, длина лепестка и ширина лепестка.

Анализ главных компонент (PCA), примененный к этим данным, определяет комбинацию атрибутов (главные компоненты или направления в пространстве признаков), которые объясняют наибольшую дисперсию данных. Здесь мы строим различные образцы на первых двух главных компонентах.

Линейный дискриминантный анализ (LDA) пытается определить атрибуты, которые объясняют наибольшую дисперсию между классами. В частности, LDA, в отличие от PCA, является контролируемым методом, использующим известные метки классов.

  • PCA of IRIS dataset
  • LDA of IRIS dataset
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,199 секунды)

Launch binder
Launch JupyterLite

Download Jupyter notebook: plot_pca_vs_lda.ipynb

Download Python source code: plot_pca_vs_lda.py

Download zipped: plot_pca_vs_lda.zip

Связанные примеры

Анализ главных компонент (PCA) набора данных Ирис

Снижение размерности с помощью анализа ближайших компонентов

Инкрементальный PCA

Построение поверхности принятия решений для деревьев решений, обученных на парах признаков набора данных Ирис

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/auto_examples/decomposition/plot_pca_vs_lda.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API