Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
55 строки
1.6 KiB
Python
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")
|