Срок выполнения этого задания (HW-04) – 29 марта 2017 24:00.

После этого срока работы не будут приниматься.

Работу надо выслать на e-mail преподавателям Н.Ю.Золотых, Д.В.Грибанову (ставим каждого в копию)

  • Практические задания, в которых надо что-то посчитать или доказать, пишем на бумаге, фотографируем и присылаем. Можете, конечно, набрать в вашем любимом редакторе.

  • Практические задания, где надо писать код, оформляем как ipython Notebook. Пишем комментарии (используем Markdown).

Вы можете использовать другой язык программирования и другие библиотеки. В этом случае заранее свяжитесь со мной.

Задание № 4-1

Вы продолжаете работать с вашими данными. Задание выполняете в том же NoteBook'е: дополняйете его!. Необходимо явно указать (например, сделав соответствующий заголовок), какой кусок NoteBook'а относится к 4-му заданию.

Необходимо найти главные компоненты для ваших данных и в плоскости первых двух главных компонент изобразить точки вашей выборки. Объекты разных классов должны быть изображены разным цветом. Примеры см. ниже и здесь файлы 18-01 – 18-04.

Сделать выводы.

Напоминаю, что ваш ipython Notebook должен содержать комментарии (оформленные в Markdown). Текста и кода должно быть примерно поровну.

In [1]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
In [2]:
from sklearn.datasets import make_blobs
N = 200
X, y = make_blobs(n_samples = N, cluster_std = [1.5, .7, 1], 
                  centers = [[-.3, 0], [2, 2], [3.25, 5]], 
                  shuffle = True, random_state = 42)
In [3]:
X_mean = np.mean(X, axis = 0)
In [4]:
colors = ['b' if yy == 0 else 'r' if yy == 1 else 'g' for yy in y]
plt.scatter(X[:, 0], X[:, 1], color = colors, alpha = 0.65)
plt.axis('equal')
pass
In [5]:
from sklearn.decomposition import PCA
pca_model = PCA(n_components = 2)
pca_model.fit(X)
print("Главные компоненты (по строкам):")
print(pca_model.components_)
print("Дисперсии по главным компонентам:")
print(pca_model.explained_variance_)
Главные компоненты (по строкам):
[[-0.60671554 -0.79491903]
 [-0.79491903  0.60671554]]
Дисперсии по главным компонентам:
[ 7.92219427  1.17832201]
In [6]:
print("Среднеквадратические отклонения:")
print(np.sqrt(pca_model.explained_variance_))
Среднеквадратические отклонения:
[ 2.81463928  1.08550542]
In [7]:
plt.scatter(X[:, 0], X[:, 1], color = 'b', alpha = 0.65)
v0 = pca_model.components_[0]
v1 = pca_model.components_[1]
#v0 = np.sqrt(pca_model.explained_variance_[0])*pca_model.components_[0]
#v1 = np.sqrt(pca_model.explained_variance_[1])*pca_model.components_[1]
plt.arrow(X_mean[0], X_mean[1], v0[0], v0[1], color = 'r', width = .005, head_width = .5)
plt.arrow(X_mean[0], X_mean[1], v1[0], v1[1], color = 'r', width = .005, head_width = .5)
plt.axis('equal');

Задание № 4-2

Выполнить упражнения 2.8, 2.9 из моих презентаций.