Машинное обучение (семинары, ВМК МГУ)/2014-2015 год, осень/Лабораторная работа 1
Материал из MachineLearning.
(Различия между версиями)
(2 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
Лабораторная работа посвящена освоению работы с методом k ближайших соседей. | Лабораторная работа посвящена освоению работы с методом k ближайших соседей. | ||
- | Формат отчета: iPython Notebook (.ipynb файл) | + | '''Формат отчета''': iPython Notebook (.ipynb файл) |
- | Срок сдачи: 17 октября 2014, 8:45. | + | |
- | Штрафы: за каждый день просрочки из оценки вычитается 0.2 балла. | + | '''Срок сдачи''': 17 октября 2014, 8:45. |
+ | |||
+ | '''Штрафы''': за каждый день просрочки из оценки вычитается 0.2 балла. | ||
== Задание == | == Задание == | ||
Строка 13: | Строка 15: | ||
#: ''Полезные функции: sklearn.neighbors.KNeighborsClassifier'' | #: ''Полезные функции: sklearn.neighbors.KNeighborsClassifier'' | ||
# Визуализируйте разделяющую поверхность. Для этого постройте равномерную сетку точек на плоскости, примените классификатор к каждой точке, и раскрасьте точки в цвета, соответствующие полученным классам. | # Визуализируйте разделяющую поверхность. Для этого постройте равномерную сетку точек на плоскости, примените классификатор к каждой точке, и раскрасьте точки в цвета, соответствующие полученным классам. | ||
- | ''Полезные функции: numpy.meshgrid, matplotlib.pyplot.pcolormesh'' | + | #: ''Полезные функции: numpy.meshgrid, matplotlib.pyplot.pcolormesh'' |
# Проделайте предыдущий пункт для классификаторов 5, 10, 25, 50 ближайших соседей. Проинтерпретируйте результаты. | # Проделайте предыдущий пункт для классификаторов 5, 10, 25, 50 ближайших соседей. Проинтерпретируйте результаты. | ||
# Выберите наилучший параметр k (число ближайших соседей) с помощью 5-fold cross-validation. Нарисуйте график зависимости качества кросс-валидации от числа ближайших соседей. | # Выберите наилучший параметр k (число ближайших соседей) с помощью 5-fold cross-validation. Нарисуйте график зависимости качества кросс-валидации от числа ближайших соседей. | ||
- | ''Полезные функции: sklearn.grid_search.GridSearchCV'' | + | #: ''Полезные функции: sklearn.grid_search.GridSearchCV'' |
# Добавьте к предыдущему графику доверительные интервалы оценок кросс-валидации. Во время 5-fold cross-validation вычисляется 5 значений качества (т.к. делается 5 разбиений выборки на обучение и контроль) для каждого рассматриваемого значения параметра. Можно найти их среднее <tex>\mu</tex> (которое и является оценкой кросс-валидации) и стандартное отклонение <tex>\sigma</tex>. В качестве доверительного интервала возьмите <tex>(\mu - \sigma, \mu + \sigma)</tex>. | # Добавьте к предыдущему графику доверительные интервалы оценок кросс-валидации. Во время 5-fold cross-validation вычисляется 5 значений качества (т.к. делается 5 разбиений выборки на обучение и контроль) для каждого рассматриваемого значения параметра. Можно найти их среднее <tex>\mu</tex> (которое и является оценкой кросс-валидации) и стандартное отклонение <tex>\sigma</tex>. В качестве доверительного интервала возьмите <tex>(\mu - \sigma, \mu + \sigma)</tex>. | ||
- | ''Полезные функции: matplotlib.pyplot.fill_between'' | + | #: ''Полезные функции: matplotlib.pyplot.fill_between'' |
# Разделите выборку на обучение и контроль (80% в обучение, 20% в контроль). Вычислите качество на контроле метода 5NN. Под качеством понимается доля правильно классифицированных объектов. | # Разделите выборку на обучение и контроль (80% в обучение, 20% в контроль). Вычислите качество на контроле метода 5NN. Под качеством понимается доля правильно классифицированных объектов. | ||
- | Полезные функции: sklearn.cross_validation.train_test_split, sklearn.metrics.accuracy_score | + | #: ''Полезные функции: sklearn.cross_validation.train_test_split, sklearn.metrics.accuracy_score'' |
# Умножьте второй признак на 100. Вычислите качество метода 5NN на контроле. Изменилось ли оно? Чем вы можете это объяснить? | # Умножьте второй признак на 100. Вычислите качество метода 5NN на контроле. Изменилось ли оно? Чем вы можете это объяснить? |
Текущая версия
Лабораторная работа посвящена освоению работы с методом k ближайших соседей.
Формат отчета: iPython Notebook (.ipynb файл)
Срок сдачи: 17 октября 2014, 8:45.
Штрафы: за каждый день просрочки из оценки вычитается 0.2 балла.
Задание
- Сгенерируйте двумерную выборку. Координаты объектов первого класса возьмите из нормального распределения , второго класса - из . Сгенерируйте по 100 объектов каждого класса.
- Полезные функции: numpy.random.normal
- Визуализируйте выборку.
- Полезные функции: matplotlib.pyplot.scatter
- Обучите классификатор одного ближайшего соседа (1NN).
- Полезные функции: sklearn.neighbors.KNeighborsClassifier
- Визуализируйте разделяющую поверхность. Для этого постройте равномерную сетку точек на плоскости, примените классификатор к каждой точке, и раскрасьте точки в цвета, соответствующие полученным классам.
- Полезные функции: numpy.meshgrid, matplotlib.pyplot.pcolormesh
- Проделайте предыдущий пункт для классификаторов 5, 10, 25, 50 ближайших соседей. Проинтерпретируйте результаты.
- Выберите наилучший параметр k (число ближайших соседей) с помощью 5-fold cross-validation. Нарисуйте график зависимости качества кросс-валидации от числа ближайших соседей.
- Полезные функции: sklearn.grid_search.GridSearchCV
- Добавьте к предыдущему графику доверительные интервалы оценок кросс-валидации. Во время 5-fold cross-validation вычисляется 5 значений качества (т.к. делается 5 разбиений выборки на обучение и контроль) для каждого рассматриваемого значения параметра. Можно найти их среднее (которое и является оценкой кросс-валидации) и стандартное отклонение . В качестве доверительного интервала возьмите .
- Полезные функции: matplotlib.pyplot.fill_between
- Разделите выборку на обучение и контроль (80% в обучение, 20% в контроль). Вычислите качество на контроле метода 5NN. Под качеством понимается доля правильно классифицированных объектов.
- Полезные функции: sklearn.cross_validation.train_test_split, sklearn.metrics.accuracy_score
- Умножьте второй признак на 100. Вычислите качество метода 5NN на контроле. Изменилось ли оно? Чем вы можете это объяснить?