### Задание 1.
Формирование Bootstrap-выборок
Дан набор данных:
```python
import
numpy as np
data =
np.array([5, 10, 15, 20, 25, 30])
```
Необходимо:
1. Создать три
бутстреп-выборки размером шесть наблюдений.
2. Использовать
выбор с возвращением.
3. Установить
`random_state` или фиксированный генератор случайных чисел для
воспроизводимости.
4. Вывести
полученные выборки.
5. Определить,
какие исходные наблюдения не вошли в каждую выборку.
6. Объяснить
назначение бутстреп-выборок в бэггинге.
### Задание 2.
Агрегирование прогнозов ансамбля
Пять деревьев
решений выдали следующие прогнозы для трёх объектов:
```python
import
numpy as np
predictions
= np.array([
[1, 0, 1],
[1, 1, 0],
[0, 0, 1],
[1, 0, 1],
[0, 1, 1]
])
```
Каждая строка
соответствует одному дереву, каждый столбец — одному объекту.
Необходимо:
1. Определить
итоговый класс каждого объекта большинством голосов.
2. Реализовать
голосование на Python.
3. Вывести
итоговые прогнозы.
4. Объяснить,
почему ансамбль агрегирует ответы нескольких деревьев.
### Задание 3.
Случайный лес и OOB-оценка
Используя `make_classification` и `RandomForestClassifier`, необходимо:
1. Создать набор
данных из 300 наблюдений с 6 признаками.
2. Разделить
данные на обучающую и тестовую выборки.
3. Обучить
случайный лес из 50 деревьев.
4. Включить `bootstrap=True` и `oob_score=True`.
5. Получить
OOB-оценку и точность на тестовой выборке.
6. Вывести
важность признаков.
7. Повторить
эксперимент со 100 деревьями.
8. Объяснить,
почему OOB-оценка не заменяет независимый финальный тест.