Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

55 строки
1.6 KiB
Python

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.manifold import TSNE
# ==============================
# ЗАГРУЗКА ДАННЫХ
# ==============================
iris = load_iris()
X = iris.data # признаки
y = iris.target # метки классов
classes = iris.target_names
print("Размерность исходных данных:", X.shape)
# ==============================
# PCA (Метод главных компонент)
# ==============================
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
print("Доля объяснённой дисперсии PCA:")
print(pca.explained_variance_ratio_)
# ГРАФИК PCA
plt.figure()
plt.scatter(X_pca[:, 0], X_pca[:, 1])
plt.title("Снижение размерности методом PCA")
plt.xlabel("Главная компонента 1")
plt.ylabel("Главная компонента 2")
plt.grid(True)
plt.savefig("pca_iris.png", dpi=300)
plt.show()
# ==============================
# t-SNE
# ==============================
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_tsne = tsne.fit_transform(X)
# ГРАФИК t-SNE
plt.figure()
plt.scatter(X_tsne[:, 0], X_tsne[:, 1])
plt.title("Снижение размерности методом t-SNE")
plt.xlabel("Компонента 1")
plt.ylabel("Компонента 2")
plt.grid(True)
plt.savefig("tsne_iris.png", dpi=300)
plt.show()
print("Графики сохранены:")
print("pca_iris.png")
print("tsne_iris.png")