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")