from sklearn . datasets import load_iris
import numpy as np
import pandas as pd
import matplotlib . pyplot as plt
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
iris = load_iris()
X = iris.data
k_values = [2, 3, 4]
plt.figure(figsize=(15, 4))
for i, k in enumerate(k_values):
kmeans = KMeans(n_clusters=k, random_state=42, n_init=10)
labels = kmeans.fit_predict(X)
pca = PCA(n_components=2)
X_2d = pca.fit_transform(X)
plt.subplot(1, 3, i+1)
plt.scatter(X_2d[:, 0], X_2d[:, 1], c=labels, cmap='viridis')
plt.title(f"k = {k}")
plt.tight_layout()
plt.show()
inertias = []
K_range = range(1, 11)
for k in K_range:
kmeans = KMeans(n_clusters=k, random_state=42, n_init=10)
kmeans.fit(X)
inertias.append(kmeans.inertia_)
plt.figure(figsize=(6, 4))
plt.plot(K_range, inertias, 'o-')
plt.xlabel("Кол-во. кластеров (k)")
plt.ylabel("Инерция")
plt.title("Метод локтя")
plt.grid()
plt.show()