Если изучить полный список, то можно заметить, что там есть издательства Listening Library и ряд других, которые очевидно выпускают аудиокниги. Прихожу к выводу, что книги с количеством страниц 10 – это аудиокниги. Удалю их.



Добавлю два дополнительных признака в таблицу:

1) десятилетие, в котором вышла книга,

2) квартал, в котором вышла книга.

Это называется конструированием признаков, исходя из целей исследования. Специальных целей передо мной не ставили, я ищу их для себя сам. Меня будет интересовать, как распределяются книги по десятилетиям и в какой квартал их чаще выпускают. Почему именно эти признаки? Потому что десятилетия отражают развитие рынка книготорговли, изменение форматов и т. п. Кварталы же зависят от праздников, сезонности, что также может оказывать влияние на оценку книги.

Конструирование признаков возможно двумя путями:

1) самостоятельно определить новый признак,

2) признак создается автоматически, например простым возведением каждого числового признака в квадрат или перемножением каждой пары таких признаков.

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



Теперь посмотрю на признак authors. Вижу, что здесь есть случаи, когда указано несколько имен через /. Сколько таких случаев?


*Заметка к коду*

Чтобы получить значение десятилетия, я использовал код 10 * (db. loc [:, «publication_date»].dt. year // 10). Почему? В этом коде я сначала делю год на 10, причем оставляю только целую часть. Например, если год 2001, то получаю 200. А затем уже умножаю на 10 это «целое» число, что и дает декаду.



Из примеров видно, что, как правило, через слеш указаны переводчики. Однако возможны и другие ситуации. Это могут быть соавторы или вариант написания имени. Без дополнительного исследования внешних источников это определить нельзя. В этой ситуации можно сделать следующее. Заменю слеш на запятую. Создам колонку tra_co (переводчик или соавтор) и присвою 1 тем случаям, где есть запятая, и 0 остальным.



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



Как правило, книги с количеством страниц больше 1000 – это многотомные издания. Очевидно, что просто убрать такие книги, как я сделал с книгами, у которых было 0 страниц, нельзя. Что же тогда? Я должен найти все такие книги и пометить их. Для этого надо определить маркеры, которые позволят найти многотомные издания. Уже представленный выше список дает идеи:

1) книги с наличием знака #,

2) книги со словами Boxed Set.

Кроме того, под подозрением все книги со словами «books», «vol.», «volume», «series».

См. хорошее руководство по регулярным выражениям https://developers.google.com/edu/python/regular-expressions.




Минимальная оценка это 0. Но на сайте нельзя поставить такую оценку. Поэтому 0 означает отсутствие оценки, то есть это категориальный признак, который «пробрался» в числовой. Посмотрю количество и удалю, так как такое смешение недопустимо. Однако, если оценка 0, но количество оценок не 0, то это просто ошибка. Проверю это.




Удалю редкие категории. Для этого можно применить следующий код к каждой категориальной переменной.



Здесь не привожу вывод по каждой категории. Однако общий вывод такой: редкие категории встречаются в **decade**, поэтому объединю все года, у которых менее 20 значений в год 1940.

Почему необходимо укрупнений категорий? Потому что маленькие категории несут мало информации, в то же время увеличение размерности данных ведет к тому, что известно как «проклятие размерности».