In [29]:
from sklearn import datasets
iris = datasets.load_iris()
print("Набор данных для обучения (2D NumPy Array): \n", iris.data[:15], '\n')
print("Заголовки столбцов: \n", iris.feature_names, '\n')
print("Набор целей для данных (1D NumPy Array): \n", iris.target)
In [4]:
print("Форма массива данных для обучения: \n", iris.data.shape)
print("Форма массива целей: \n", iris.target.shape)
Возьмем один из методов прошлой лекции для задачи классификации. Например, метод кластеризации $k$-средних.
In [5]:
from sklearn.cluster import KMeans
Зададим предполагаемое количество кластеров равным количеству классу.
In [30]:
cls = KMeans(n_clusters=3, random_state=42)
Запустим процесс кластеризации.
In [31]:
cls.fit(iris.data)
Out[31]:
Продемонстрируем результат кластеризации.
In [32]:
%matplotlib inline
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 12))
for i in range(4):
for j in range(4):
if i != j:
plt.subplot(4, 4, (i+1) + j * 4)
plt.scatter(iris.data[:, i], iris.data[:, j], c=cls.labels_ / max(cls.labels_), cmap='rainbow')
plt.xlabel(iris.feature_names[i])
plt.ylabel(iris.feature_names[j])
plt.tight_layout()
Классы исходных данных образуют явно различимые на большинстве систем координат кластеры.