Машинное обучение 1/Группа 145 РС — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница: «== Семинары == Материалы для повторения см. на [http://wiki.cs.hse.ru/Машинное_обучение_1 главной стр…»)
 
(Общая информация)
 
(не показано 13 промежуточных версии этого же участника)
Строка 1: Строка 1:
 +
== Общая информация ==
 +
 +
Время для консультаций (по предварительной договоренности):
 +
* Среда 11:00 - 12:00, 13:30 - 14:30
 +
* Пятница 11:00 - 12:00, 13:40 - 15:00
 +
аудитория 623
 +
 +
Почта: alexeyum@gmail.com
 +
 
== Семинары ==
 
== Семинары ==
  
 
Материалы для повторения см. на [http://wiki.cs.hse.ru/Машинное_обучение_1 главной странице курса]
 
Материалы для повторения см. на [http://wiki.cs.hse.ru/Машинное_обучение_1 главной странице курса]
  
=== Семинар 1 (09.09). Вводные понятия. Пакет SciPy. ===
+
=== Семинар 1 (09.09). Вводные понятия. Инструменты numpy, pandas, matplotlib. ===
 +
 
 +
Упражнения на дом:
 +
* Сгенерируйте матрицу 5x5 со случайными числами от 0 до 1. Найдите индексы ячеек со значениями меньше 0.2.
 +
* Создайте матрицу 5x5 с числами, такими, что в ячейке (i, j) стоит число i+j. В задаче нельзя использовать циклы.
 +
* Постройте график функции exp(|2*x + 3|).
 +
* Пусть x, y - два вектора. Найдите проекцию вектора x на вектор y.
 +
 
 +
=== Семинар 2 (16.09). Векторное дифференцирование. Знакомство с sklearn. ===
 +
 
 +
Дополнительные упражнения на темы прошлого семинара: [https://www.dropbox.com/s/6t9djpoapkspgkb/%D0%94%D0%BE%D0%BF.%20%D1%83%D0%BF%D1%80%D0%B0%D0%B6%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B4%D0%BB%D1%8F%20numpy%2C%20matplotlib%2C%20pandas.pdf?dl=0 упражнения], [https://www.dropbox.com/s/2ghqfsnn20fe2uk/titanic.csv?dl=0 titanic.csv]
 +
 
 +
=== Семинар 3 (23.09). Предобработка: категории, пропуски, нормализация. Минимизация функции потерь. ===
 +
 
 +
=== Семинары 4 и 5 (07.10 и 08.10). Линейная классификация. Метрики качества, ROC, PR, AUC. Валидация. SVM. ===
 +
 
 +
Упражнения на дом (в случае затруднений см. тетрадку семинара 4 на главной курса).
 +
* Скачайте датасет для классификации спама: https://archive.ics.uci.edu/ml/machine-learning-databases/spambase/
 +
* Разделите выборку на обучение и тест (sklearn.cross_validation.train_test_split)
 +
* Обучите на нем логистическую регрессию (sklearn.linear_model.LogisticRegression), посчитайте различные метрики для вашего классификатора: правильность, точность, полноту (sklearn.metrics).
 +
* Постройте ROC-кривую и PR-кривую для этого классификатора, посчитайте для них AUC-значения.
 +
* Проделайте кросс-валидацию метода (sklearn.cross_validation.KFold)
 +
 
 +
=== Семинар 6 (14.10). Работа с текстом, TF-IDF, разреженные матрицы. ===
 +
 
 +
Упражнения на дом (в случае затруднений см. тетрадку семинара 6 на главной курса):
 +
* Даны разреженные матрицы A и B в одном из трех форматов: COO, CSR, CSC. Какое время потребуется для их перемножения в зависимости от форматов? Какая пара форматов самая оптимальная?
 +
* Дана разреженная матрица A и вектор z. Покажите, что если A представлена в формате CSR или CSC, то выражение Az можно вычислить эффективно.
 +
* Загрузите [https://www.dropbox.com/s/18i7lqac9rr4pnx/banki_responses.json.bz2?dl=0 датасет] отзывов о работе банков. Обозначьте отзывы с оценками 4-5 как положительные и 1-3 как отрицательные. Приведите тексты к нижнему регистру, уберите все символы, кроме кириллицы, превратите тексты в признаки с помощью TF-IDF. Обучите линейную регрессию на этих данных.
 +
* В предыдущем задании изучите, какие слова в наибольшей степени влияют на ответ.
 +
* * Проведите стемминг текстов с помощью nltk.stem.snowball.RussianStemmer() и еще раз проведите классификацию. Сравните результаты.
 +
 
 +
=== Семинар 7 (21.10). Решающие деревья. Калибровка вероятности ===
 +
 
 +
Упражнения на дом (в случае затруднений см. тетрадку семинара 7 на главной курса):
 +
* Покажите, что оценка качества разбиения с помощью максимального правдоподобия порождает энтропийный критерий для решающих деревьев.
 +
(Вывод частично был на лекции, нужно провести все преобразования).
 +
* Сгенерируйте набор точек на плоскости. Создайте из них датасет, где координаты точки являются ее признаками, а
 +
модуль суммы координат - ответом.
 +
* Обучите на них решающее дерево и изобразите его значения на точках плоскости.
 +
* Исследуйте, как меняется дерево в зависимости от глубины.
 +
* Исследуйте, как меняется дерево при изменении 10% выборки (5%, 1%).
 +
* Загрузите стандартный датасет с ценами в Бостоне (sklearn.datasets.load_boston).
 +
* Подберите с помощью кросс-валидации наилучшие параметры решающего дерева для него.

Текущая версия на 22:33, 1 ноября 2016

Общая информация

Время для консультаций (по предварительной договоренности):

  • Среда 11:00 - 12:00, 13:30 - 14:30
  • Пятница 11:00 - 12:00, 13:40 - 15:00

аудитория 623

Почта: alexeyum@gmail.com

Семинары

Материалы для повторения см. на главной странице курса

Семинар 1 (09.09). Вводные понятия. Инструменты numpy, pandas, matplotlib.

Упражнения на дом:

  • Сгенерируйте матрицу 5x5 со случайными числами от 0 до 1. Найдите индексы ячеек со значениями меньше 0.2.
  • Создайте матрицу 5x5 с числами, такими, что в ячейке (i, j) стоит число i+j. В задаче нельзя использовать циклы.
  • Постройте график функции exp(|2*x + 3|).
  • Пусть x, y - два вектора. Найдите проекцию вектора x на вектор y.

Семинар 2 (16.09). Векторное дифференцирование. Знакомство с sklearn.

Дополнительные упражнения на темы прошлого семинара: упражнения, titanic.csv

Семинар 3 (23.09). Предобработка: категории, пропуски, нормализация. Минимизация функции потерь.

Семинары 4 и 5 (07.10 и 08.10). Линейная классификация. Метрики качества, ROC, PR, AUC. Валидация. SVM.

Упражнения на дом (в случае затруднений см. тетрадку семинара 4 на главной курса).

  • Скачайте датасет для классификации спама: https://archive.ics.uci.edu/ml/machine-learning-databases/spambase/
  • Разделите выборку на обучение и тест (sklearn.cross_validation.train_test_split)
  • Обучите на нем логистическую регрессию (sklearn.linear_model.LogisticRegression), посчитайте различные метрики для вашего классификатора: правильность, точность, полноту (sklearn.metrics).
  • Постройте ROC-кривую и PR-кривую для этого классификатора, посчитайте для них AUC-значения.
  • Проделайте кросс-валидацию метода (sklearn.cross_validation.KFold)

Семинар 6 (14.10). Работа с текстом, TF-IDF, разреженные матрицы.

Упражнения на дом (в случае затруднений см. тетрадку семинара 6 на главной курса):

  • Даны разреженные матрицы A и B в одном из трех форматов: COO, CSR, CSC. Какое время потребуется для их перемножения в зависимости от форматов? Какая пара форматов самая оптимальная?
  • Дана разреженная матрица A и вектор z. Покажите, что если A представлена в формате CSR или CSC, то выражение Az можно вычислить эффективно.
  • Загрузите датасет отзывов о работе банков. Обозначьте отзывы с оценками 4-5 как положительные и 1-3 как отрицательные. Приведите тексты к нижнему регистру, уберите все символы, кроме кириллицы, превратите тексты в признаки с помощью TF-IDF. Обучите линейную регрессию на этих данных.
  • В предыдущем задании изучите, какие слова в наибольшей степени влияют на ответ.
  • * Проведите стемминг текстов с помощью nltk.stem.snowball.RussianStemmer() и еще раз проведите классификацию. Сравните результаты.

Семинар 7 (21.10). Решающие деревья. Калибровка вероятности

Упражнения на дом (в случае затруднений см. тетрадку семинара 7 на главной курса):

  • Покажите, что оценка качества разбиения с помощью максимального правдоподобия порождает энтропийный критерий для решающих деревьев.

(Вывод частично был на лекции, нужно провести все преобразования).

  • Сгенерируйте набор точек на плоскости. Создайте из них датасет, где координаты точки являются ее признаками, а

модуль суммы координат - ответом.

  • Обучите на них решающее дерево и изобразите его значения на точках плоскости.
  • Исследуйте, как меняется дерево в зависимости от глубины.
  • Исследуйте, как меняется дерево при изменении 10% выборки (5%, 1%).
  • Загрузите стандартный датасет с ценами в Бостоне (sklearn.datasets.load_boston).
  • Подберите с помощью кросс-валидации наилучшие параметры решающего дерева для него.