tgoop.com/data_notes/162
Last Update:
Часть 3.
Каким-то образом я добыл 6 тысяч номеров актов, имея номер акта можно было скачать PDF файл, причем только один за раз, процедура требовала одну минуту времени и десяток кликов мышкой. Поскольку у меня не было 6000 свободных минут, я написал автокликер, что-то вроде современного Selenium, который за несколько суток (не считая нескольких часов отладки, разумеется) скачал все нужные PDF файлы.
Далее нужно было вытащить инфу из PDF в текст. Нашел питоновский тул PDFminer, который решил эту задачу, сложил содержимое всех 6000 пдфок в один текстовый файл. Теперь предстояло при помощи магии регулярок распарсить все это добро и разложить в CSV по колонкам. Задача осложнялась довольно хаотичным расположением полей, которые нужно было идентифицировать (по сути, все, что было указано в нашем списке фичей + итоговая цена ремонта). Расположение зависело от порядка заполнения документа, например, сначала внесли дефекты, а потом их причины. Но могло быть и наоборот. В итоге полтора десятка if-else + столько же регулярок на питоне заработали после недели отладки, и долгожданный CSV был собран. Эх, вот бы тогда иметь AI-агентов, которые есть сегодня!
Анализ распределения цен ремонтов показал три четких кластера с низкой, средней и высокой ценой, причем в последнем из них высока была доля отказов от ремонта. В детали feature engineering вдаваться не буду, но там ничего необычного не было - все, можно сказать, по учебнику. Упомяну лишь, что пришлось приводить цены в рублях в цены в евро, т.к. мы все прекрасно знаем, что случилось в 2014 года с курсом рубля. Все перечисленные фичи были добавлены в логистическую регрессию для 3 классов, которая показала приемлемое качество и особенно хорошо отделяла последний, самый “дорогой” класс, что нам и было нужно.
Диплом был успешно защищен, а вот внедрение проекта не состоялось. Во-первых потому, что еще перед защитой я после 8 лет работы инженером нашел стажировку на позицию data scientist. А во-вторых, это уже была гораздо более трудная для меня на тот момент задача, требующая значительных изменений в порядке работы сервисного отдела. Однако, рассказ об этом проекте очень хорошо продавался на собеседованиях еще очень много лет! И поскольку на “добычу” и предобработку данных у меня суммарно ушло до 80% всего времени (я здесь не учитываю затраты на оформление проекта в дипломную работу) и только 20% на само моделирование, то с самого первого проекта я очень хорошо знаю, что подготовка данных зачастую важнее непосредственно моделирования.
BY Data notes
Share with your friend now:
tgoop.com/data_notes/162