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

Эта неделя была посвящена классификации и регрессии. Первый день был посвящен очистке данных от выбросов и использованию scikit-learn для построения линейной регрессии. Для выполнения задания мы просмотрели набор данных сайта renthop, который используется для поиска квартир в Нью-Йорке. Нас попросили спрогнозировать цену квартиры в Трибеке, учитывая количество ванных комнат.

Вот что у меня получилось:

Получить график было не так просто, как snip, crtl-c и crtl-v. Был процесс.

На следующий день мы снова сосредоточились на регрессии, но на этот раз мы смотрели на множественную регрессию вместо линейной регрессии (день 1).

Мы снова посмотрели на renthop.com, но вместо того, чтобы сосредоточиться на Tribeca, мы посмотрели на квартиры в Нью-Йорке. В данных были указаны спальни, ванные комнаты, долгота, широта, все удобства и, конечно же, цена.

Наша работа? Сделайте несколько функций, чтобы построить регрессионную модель по цене. Наряду с заданием у нас также была задача получить наилучшую MAE (средняя абсолютная ошибка).

«Что у вас лучше всего?», - спросите вы.

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

Мы потренировались делать это с набором данных Департамента финансов Нью-Йорка, который ведет учет каждой продажи недвижимости. Мы изучили продажи домов в определенном диапазоне, а также продажи «домов для одной семьи». При просмотре определенных значений данных размер набора данных становится более управляемым.

Для задания я сделал визуализации, чтобы увидеть, какие функции имеют интересную взаимосвязь. После этого я взглянул на категориальные переменные и нашел одну функцию, у которой было только 2 уникальных значения, поэтому я изменил ее на двоичную (0/1). Если вам интересно, я использовал так называемое One Hot Encoding, чтобы изменить строку на int.

После большого количества магии кодирования я дошел до того, что смог запускать регрессионные модели, и это лучшее, что я получил для MAE:

Неплохо. Верно?

P.S. Я сомневаюсь, что вы это заметите тем, кто прокомментировал сообщение о моем проекте. Однако, если вы это сделаете, я хочу исправить себя. Оглядываясь назад на набор данных, я понял, что неверно интерпретировал столбец итогов как полные разрешения. Это неправда. В столбце «Итого» указано общее количество проверок биографических данных. Прошу прощения, и я отредактирую это, когда найду момент.