Задача 1. Реализация собственных классов и функций
⚠️ Замечание. 1) Нельзя пользоваться готовыми реализациями sklearn; 2) чтобы избежать случая с вырожденной матрицей при оценке параметров добавьте незначительную регуляризацию по умолчанию или используйте lstsq из пакета numpy или др. способ; 3) используйте random_state=0
Реализуйте класс, предназначенный для оценки параметров линейной регрессии с регуляризацией совместимый с sklearn. Передаваемые параметры: 1) коэффициент регуляризации (alpha). Использовать метод наименьших квадратов с регуляризацией.
Реализуйте класс для стандартизации признаков в виде трансформации совместимый с sklearn. Передаваемые параметры: 1) has_bias (содержит ли матрица вектор единиц), 2) apply_mean (производить ли центровку)
Реализуйте функции для расчета MSE и R^2 при отложенной выборке (run_holdout) и кросс-валидации (run_cross_val). Для кросс-валидации используйте только класс KFold. Выходными значениями должны быть MSE и R^2 для обучающей и тестовой частей.
Используя класс Pipeline, выполнить обучение линейной регрессии с предварительной стандартизацией с коэффициентом регуляризации равным 0 и 0.01. Выведите значения параметров обученной модели. Выведите значения MSE и R^2, полученные посредством функций run_holdout и run_cross_val. Отобразите график предсказание () - действительное значение () для разных коэффициентов регуляризации для обучающего и текстового множества. Использовать следующие параметры:
train_size=0.75,
n_splits=4,
shuffle=True,
random_state=0
⚠️ Замечание. При формировании исходных данных использовался полином 16 степени одномерных данных.
Задача 2. Классификация и кросс-валидация
⚠️ Замечание:
Используйте класс логистической регрессии из sklearn со следующими параметрами:
penalty='l2'
fit_intercept=True
max_iter=100
C=1e5
solver='liblinear'
random_state=12345
Разбейте исходные данные на обучающее и тестовое подмножества в соотношении 70 на 30, random_state=0
Для выбора гиперпараметров используйте два подхода: 1) с отложенной выборкой, 2) с кросс-валидацией
Для кросс-валидации использовать функцию cross_validate из sklearn
Параметры разбиения для выбора гиперпараметров используйте те, что в п.4 задачи 1
Дано множество наблюдений (см. набор данных к заданию), классификатор - логистическая регрессия. Найти степень полинома с минимальной ошибкой на проверочном подмножестве. Для лучшего случая рассчитать ошибку на тестовом подмножестве. В качестве метрики использовать долю правильных классификаций. Сделать заключение о влиянии степени полинома на качество предсказания.
Построить:
диаграмму разброса исходных данных
зависимость доли правильных классификаций от степени полинома для обучающего и проверочного подмножеств (две кривые на одном графике)
результат классификации для наилучшего случая (степень полинома) для обучающего и тестового подмножеств с указанием границы принятия решения
Задача 3. Классификация текстовых документов
файл: data/reviews.tsv
Загрузите исходные данные
Разбейте исходные данные на обучающее (train, 80%) и тестовое подмножества (test, 20%)
Используя стратифицированную кросс-валидацию k-folds () для обучающего множество с метрикой Balanced-Accuracy, найдите лучшие гиперпараметры для следующих классификаторов:
K-ближайших соседей: количество соседей () из диапазона np.arange(1, 150, 20)
Наивный Байес: сглаживающий параметр модели Бернулли () из диапазона np.logspace(-4, 1, 8, base=10)
Наивный Байес: сглаживающий параметр полиномиальной модели () из диапазона np.logspace(-4, 1, 8, base=10)
Отобразите кривые (параметры модели)-(Balanced-Accuracy) при обучении и проверке для каждой классификатора (две кривые на одном графике для каждого классификатора)
Если необходимо, выбранные модели обучите на всём обучающем подмножестве (train) и протестируйте на тестовом (test) по Balanced-Accuracy, R, P, F1. Определите время обучения и предсказания.
Выполните пункты 3-5 для n-gram=1, n-gram=2 и n-gram=(1,2)
Выведите в виде таблицы итоговые данные по всем методам для лучших моделей (метод, n-gram, значение параметра модели, время обучения, время предсказания, метрики (Balanced-Accuracy, R, P, F1))
Сделайте выводы по полученным результатам (преимущества и недостатки методов)
⚠️ Замечание:
Для всех объектов/методов/моделей random_state = 123
Для выбора гиперпараметров можно использовать стандартные утилиты sklearn
!!!Всё выполнить в Jupiter Notebook, пример выполнения с другими задачами прикреплен!!!
Массовая драка произошла на одной из улиц Симферополя
Театр и Культура, Россия и Дети: 15 мая театр кукол Ульгэр представил спектакль «Мүнгэн мүшэдүүд» в стенах Художественного музея для первых классов гимназии №29 Улан-Удэ
Премию Фета получил поэт из Югры
Выставка славянских истоков «В бессмертье уходит всеведенье литер простых»