Spec-Zone.ru › scikit-learn

Примечание

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

Сравнение двумерных проекций набора данных Iris с помощью LDA и PCA

Набор данных Iris включает 3 вида ирисов (сетоза, вирсиколор и виргиника), описанных 4 признаками: длина чашелистика, ширина чашелистика, длина лепестка и ширина лепестка.

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

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

  • 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.178 секунды)

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) для набора данных Iris

Уменьшение размерности с помощью анализа соседних компонент

Инкрементальный анализ главных компонент

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

© 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

Spec-Zone.ru

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