Задание 4: Машинное обучение (определить тип ml-задачи)
Условие:
Есть данные о квартирах: площадь, район,
этаж, количество комнат, цена.
Задача:
Построить модель, которая будет
предсказывать цену квартиры.
Что
нужно сделать:
Определить,
это задача классификации или регрессии.
Что
нужно объяснить:
Что
является
признаками (X)?
Что
является
целевой переменной (y)?
Почему
предсказание
цены относится к регрессии,
а
не к классификации?
Выполнение:
Признаки:
площадь, район, этаж, количество комнат
Целевая
переменная: Цена
Предсказание
цены относится к регрессии потому что
целевая переменная это числовое значение,
а не класс, который определяется при
классификации. Модель предсказывает
цену квартиры — непрерывную величину.
В
отличие от классификации, где
предсказывается метка класса (например,
"дешёвая"/"дорогая"), регрессия
позволяет получить точное числовое
значение, что соответствует условию
задачи
Задание
5: Асинхронное программирование
(блокировка event loop)
Условие:
В асинхронном приложении написан код:
python
import
time
@app.get("/wait")
async
def wait():
time.sleep(3)
return
{"status": "done"}
Что
нужно сделать:
Найти
проблему и предложить исправление.
Что
нужно объяснить:
Почему
time.sleep()
блокирует
выполнение программы?
Почему
в
async
def
лучше
использовать
await
asyncio.sleep(3)?
Что
такое
await
и
как event loop переключается между задачами?
Выполнение:
@app.get("/wait")
async
def wait():
await
asyncio.sleep(3)
return
{"status": "done"}
1)
time.sleep() останавлевает Event Loop следовотельно
сервер «зависнет» и асинхронность
перестанет работать
2)
await asyncio.sleep(3) в этот момент: корутина
останавливается → управление передаётся
Event Loop → Event Loop запускает другие задачи
→ после завершения ожидания → корутина
возобновляется
3)
await — это оператор, который приостанавливает
выполнение корутины и передаёт управление
Event Loop (переключение описано во 2 ответе)