Skip to content

Latest commit

 

History

History

lab2

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Lab 2

Total grades and issues:

Task: 1 2 3 4
Grade: 0.5 1 0.5 1

Задача 1: [pearsonr(*data_sampler(1000, i))[0] for i in range(100)]
Задача 3: Там accuracy под 90% на тесте ожидается. Явно что-то не так
дополнение по 3 задаче: я там подаю все токены одним объектом ([train_data]) вместо упаковки train_data в список

Алгоритм получения задания

  1. Запустите скрипт get_lab.py.
  2. Введите адрес своей электронной почты.
  3. Программа вернет номера заданий, которые требуется выполнить.

Формат решения

  • Каждое задание выполняется в отдельном .ipynb файле в том числе теоретические задания.
  • Каждый ноутбук должен начинаться с номера задания и формулировки решаемой задачи.

Основные критерии оценки за задание

  • аккуратность оформления работы;
  • наличие выводов;
  • обоснованность выбора статистических критериев, учет поправки на множественность гипотез
  • в случае работы с синтетическими данными: учет неточностей, связанных со случайным порождением данных
  • в случае работы с реальными данными также учитывается предобработка

Задание 1

Задача 1.1

Задана выборка пар изображений: каждая пара состоит из оригинального (original_id.bmp) изображения и искаженного (modified_id_phrase.bmp). Также задана пара контрольных изображений original_test, modified_test.

В 99% случаев искажение заключается в добавлении белого шума. В 1% случаев искажение заключается в добавлении к изображению скрытого сообщения. Алгоритм заключается в следующем:

  1. У исходной фразы берутся порядковые номера всех символов в порядке английского алфавита (abcz -> 0,1,2,25).
  2. Полученный вектор домножается на неизвестный коэффициент alpha и складывается с вектором картинки (image = image.flatten() + alpha*v + шум).
  3. Если фраза слишком короткая, искажение продолжается периодически.

Требуется раскодировать фразу из контрольной пары.

NB: предполагается, что вы найдете искаженные изображения без шума с применением статистических моделей, а не перебором.

Ссылки

Задача 1.2

Выборка: новости Lenta.ru

  1. Взять случайную подвыборку новостей lenta.ru за 2019 год (не менее 3000)
  2. На основе подвыборки построить граф связей упоминания личностей, организаций и стран из списка.
  3. В новостях выбрать сущность, зависящую от наибольшего количества других сущностей (далее будем называть ее центральной)
  4. посчитать ACE уопминания центральной сущности при упоминании (и отсутствии упоминания) сущностей, от которых она зависит
  5. сравнить результаты пункта 4 с оценками вероятностей упоминания центральной сущности при условии упоминания (и при отсутствии упоминания) сущностей, от которых она зависит

Рекомендации: (в случае использования пакета causality):

  1. в качестве теста для проверки условной независимости использовать MutualInformationTest
  2. результаты будут сильно отличаться в зависимости от полученной случаной подвыборки. Фиксируйте seed.
  3. для учета разного написания сущности (число, род, падеж) используйте методы стеминга (nltk.stem или mystem): https://www.kaggle.com/alxmamaev/how-to-easy-preprocess-russian-text
  4. causality не умеет работать с циклами (но сам их производит). Циклы можно удалять (в этой лабе, в реальности нельзя).

Задача 1.3

Проанализировать консервативность z-критерия для корреляции Пирсона в зависимости от:

  • Мощности выборки
  • Проверяемого значения коэффициента корреляции

Напоминание (об этом говорилось на лекции): Z-тест позволяет проверять не только соответствие корреляции нулю, но и производить сопоставление с произвольным значением корреляции.

Задание 2

Все переходы должны быть полностью описаны. Все выкладки и преобразования должны быть явно посчитаны.

Задача 2.1

Выборка:

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

Требуется проверить, что вакцина помогает (вероятность заразиться меньше у человека с вакциной чем у человека без вакцины).

Эксперимент ставится следующим образом: каждый день есть два идентичных по здоровью человека. Один из людей принимает вакцину, а второй нет, после чего обоих ставят в одну среду с вирусом. В конце для проверяют кто заразился. (В таблице: s --- sick; h --- healthy)

Весь мир ждет вакцину от данного вируса, поэтому к руководству института постоянно приходят запросы о сроках завершения тестирования образца. Руководство поручило Вам оценить среднее время, которое понадобится на тестирования данной вакцины. А также провести анализ полученных данных на уровне значимости \alpha=0.05 и при ошибке второго рода beta=0.2.

Требуется:

  1. Записать задачу формально;
  2. Выполнить оценку среднего количества дней для принятия решения (учесть что истинная вероятность заразиться с вакциной и без равны p_1 = 0.2, p_2 = 0.5 соответственно);
  3. Выполнить анализ данных и выяснить работает ли вакцина или нет.

Все выкладки должны быть сделаны аналитически, без использования компьютера.

Задача 2.2

Выборка:

Требуется построить авторегрессионную модель (autoregressive moving-average model, ARMA) для данных предложенных в приложении.

  1. Записать задачу формально;
  2. Выписать все формулы аналитически;
  3. Провести вычисления всех параметров модели аналитически.

UPD: параметры p и q для ARMA можно оценить при помощи компьютера.

Все выкладки должны быть сделаны аналитически, без использования компьютера. Дополнительно к слайдам про ARMA можно почитать здесь.

Задание 3

Задача 3.1

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

Требуется:

  1. Рассмотреть последовательность частей речи как марковскую модель. Определить оптимальный порядок марковской модели.
  2. Обучить скрытую марковскую модель по выборке. Оценить точность предсказания частей речи, посчитать энтропию на выборке.

Важно: в целях ускорения эксперимента рекомендуется взять первые 10 МБ текста из выборки.

Задача 3.2

Выборка: набор предложений на русском языке с указанием именованных сущностей (они же NE, named entity).

Требуется:

  1. Рассмотреть последовательность именованных и неименованных сущностей как марковскую модель. Определить оптимальный порядок марковской модели.
  2. Обучить скрытую марковскую модель по выборке. Оценить точность предсказания, является ли слово именованной сущностью или нет, посчитать энтропию на выборке.

Важно: в целях ускорения эксперимента рекомендуется взять первые 10 МБ текста из выборки.

Задание 4

Задача 4.1

На основе представленной ниже языковой модели требуется:

  1. Выбрать наиболее вероятную последовательность слов, которая начинается со слова <start> и заканчивается словом <end>.
  2. Выбрать последовательность токенов, которая начинается со слова <start> и заканчивается словом <end> и имеет максимальный score = \frac{1}{l}\sum_{i=1}^{l} \log p(w_i|w_{i-1}), где l задает длину полученной последовательности.
p(обучение|<start>)=0.14
p(<end>|машинный)=0.5
p(<end>|обучение)=0.5
p(не|обучение)=0.5
p(без|возможно)=0.5
p(без|<start>)=0.14
p(не|<start>)=0.14
p(<end>|без)=0.5
p(<end>|не)=0.5
p(обучение|машинный)=0.5
p(<end>|статистика)=1.0
p(возможно|не)=0.5
p(возможно|<start>)=0.14
p(машинный|<start>)=0.29
p(статистика|<start>)=0.14
p(статистика|без)=0.5
p(<end>|возможно)=0.5

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

Задача 4.2

Получить аналитическую формулу для оценки правдоподобия последовательности слов из словаря мощности d на основе языковой модели, если известно:

  1. Все слова независимы и распределенны равномерно.
  2. Известно распределение p(w_i|w_{i-1}) = Dir(mu(w_{i-1})) где Dir является распределением Дирихле с вектором параметров mu(w_i, w_{i-1}) размерности d. Причем компоненты вектора mu(w_{i-1}) задаются выражением: mu_i = exp(-|i-j|), где j это номер слова w_{i-1} в словаре.

Все выкладки должны быть сделаны аналитически, без использования компьютера.

P.S. Подсказка по п.2. Для поиска распределения последовательности удобно использовать не правдоподобие, а логарифм правдоподобия.