Файл: Средства разработки клиентских программ (разработка клиентской программы).pdf
Добавлен: 19.06.2023
Просмотров: 76
Скачиваний: 3
Согласно проведенному анализу наиболее целесообразными для использования являются внутренние, вторичные и качественные данные. В особенности перспективно использовать внутренние и качественные данные, поскольку современные инструменты и методы обработки данных позволяют удешевить и ускорить обработку этих данных. Например, интеграция с открытыми источниками и получение данных в удобном для анализа формате может быть реализована на различных языках программирования с использованием готовых библиотек. Сравнительный анализ инструментов и методов сбора и анализа будет произведен позднее.
Согласно условиям поставленной задачи, интернет-магазин имеет данные о продажах за 5 лет, что позволяет использовать модели временных рядов для прогнозирования будущих продаж. Из моделей прогнозирования необходимо выбрать максимально простую в использовании модель, которая не требует специальных навыков в эконометрике.
Существует достаточное количество пакетов для статистического анализа данных и прогнозирования. Например, в IBM SPSS Statistics мастер построения моделей самостоятельно определяет, какую математическую модель эффективнее использовать для поданных входных данных [7], но не все пакеты находятся в общем доступе.
В таблице 2 приведен сравнительный анализ инструментов в соответствии со следующими критериями:
- простота использования – присутствие интуитивно-понятного интерфейса приветствуется, желательно обойтись без программирования;
- стоимость использования – приложение должно быть бесплатным для использования;
- автоматизация – опция, которая позволит задавать последовательность действий и исполнять их по определенным правилам, что позволит пользователю сэкономить время;
- интероперабельность по данным включает в себя разнообразие источников данных, которые могут быть использованы;
- информация – наличие обучающих материалов для использования приложения.
Таблица 2 – Сравнительный анализ инструментов статистического анализа данных
Простота |
Стоимость |
Автома-тизация |
Интеропера-бельность |
Информация |
|
SAS University edition |
Высокая (специальный модуль для прогнозирования) |
Бесплатно для неком-мерческого использования |
Да |
Более 60 источников данных, а также: Teradata, SAP HANA, Hadoop, Oracle Exadata |
Видеоуроки youtube, официальный сайт, руководство пользователя |
Gretl |
Средняя (GUI+консоль) |
Бесплатно |
Да, с помощью пакетов функций |
R, xls, xml, sav (spss), csv |
Видеоуроки youtube, официальный сайт, руководство пользователя |
IBM SPSS Statistics |
Высокая (специальный модуль для прогнозирования) |
Бесплатно на 14 дней для неком-мерческого использования |
Да |
ODBC, xls, csv, SAS, stata |
Видеоуроки youtube, официальный сайт, руководство пользователя |
SOFA Statictics |
Высокая |
Бесплатно |
Нет |
xls, open office, google docx, csv, sql |
Видеоуроки youtube, официальный сайт, руководство пользователя (без прогнозирования) |
Data melt |
Низкая (обязательно программирование на java python и пр.) |
Бесплатно с ограниченными возмож-ностями |
Да |
- |
Официальный сайт |
Develve |
Высокая |
Бесплатно для неком-мерческого использования |
Нет |
xls, csv |
Видеоуроки youtube, официальный сайт (без прогнозирования) |
Среди проанализированных инструментов ярко выделяются продукты от широкоизвестных производителей IBM и SAS, поскольку они имеют огромное количество обучающих материалов высокого качества и удобный интерфейс, но при этом для коммерческого использования невозможно использовать бесплатную версию, а IBM вообще предоставляет бесплатный доступ всего на 14 дней. Тем не менее, необходимо взять один из этих проприетарных продуктов, чтобы оценить разницу в удобстве использования по сравнению с open source. Для этих целей выбран IBM SPSS, поскольку Базовая кафедра является Центром компетенции по технологии IBM BIG DATA, и студентам доступен бесплатно пакет IBM SPSS, который будет использован в данной ВКР. Если бы у Базовой кафедры не было возможности предоставить IBM SPSS для свободного использования, то в качестве проприетарного продукта был бы выбран SAS University edition, поскольку он не ограничивает время бесплатного использования и обладает схожими с IBM SPSS характеристиками.
Среди open source инструментов, SOFA Statictics и Develve имеют высокую простоту, но по обеспеченности учебными материалами они проигрывают gretl, у которого к тому же хорошая интероперабельность и возможность автоматизации.
Таким образом, для проведения маркетингового анализа были выбраны 2 инструмента: gretl и IBM SPSS Statictics.
Результатом завершения этапа анализа и прогнозирования является структурированная информация о том, какие рынки сбыта существуют, каковы их характеристики и потребности. После этого можно будет приступить к продвижению товара.
1.2Анализ внутренних данных
В результате анализа необходимо получить данные в табличной форме, по которым будет проведен анализ.
Пример исходных данных по заказу, оформленному в интернет-магазине, представлен в Приложении 1. Реальные данные содержат 3336 заказов, в которых 15930 позиций, но структура xml данных аналогична Приложению 1.
Ввод данных клиентом на сайте реализован максимально просто, что приводит к низкому качеству данных.
Негативные особенности исходных данных:
- в поле customer_name указано в разных форматах: имя, имя+фамилия, имя+фамилия+отчество, некоторые клиенты вместо имени вводят набор символов;
- customer_addr также указан совершенно в разных форматах, зачастую отсутствует индекс для заказов, которые отправляются по почте, и агрегировать такие данные очень сложно;
- в поле customer_email нет проверки на достоверность email адреса, например, наличия @ и реально существующего почтового домена.
Все это затрудняет получение качественной информации о состоянии клиентской базы.
Для того, чтобы добиться необходимого csv формата необходим парсер. Для решения поставленной задачи выбран язык Python и библиотеки ElementTree и csv. Парсер написан специально под формат данных поставленной задачи и доступен в Приложении 2.
Результат преобразования в транспонированном виде (для удобства представления в тексте работы) выглядит в соответствии с таблицей 3.
Таблица 3 – Результат преобразования данных с помощью парсера
order_id |
1923 |
add_date |
08.06.2012, 20:47, Пятница |
deliv_date |
04.01.2018, 18:31, Четверг |
deliv_type |
Курьер по Москве |
amount |
800.00 |
customer_name |
пробный заказа |
customer_email |
1@1.ruu |
customer_tel |
123456 |
customer_addr |
1111 gh |
item_id |
488 |
item_name |
Моделирующая маска для упругости бюста |
item_price |
800.00 |
cnt |
10 |
art |
32501 |
Данные в таком представлении уже доступны для анализа, но для большей эффективности необходимы дополнительные преобразования:
- Разделение столбцов ‘add_date’, ‘deliv_date’ на 3: ‘deliv_date’, ‘deliv_time’, ‘delive_day’. В качестве разделителя будет использована ‘,’.
- Создание нового столбца ‘sex’ с полом клиента, который будет определен по имени, указанному в заказе.
- Определение категории товара по названию или id.
Для решения поставленных задач необходимо использовать библиотеки Python pandas, csv, numpy.
Задача 1 решается максимально просто, поскольку исходный столбец просто необходимо разделить на 3.
Задача 2 требует сценарной проработки.
- В наличии имена клиентов в разных форматах, из которых необходимо получить пол: мужчина или женщина. Для этого в интернете найдены списки мужских и женских имен, которые подгружены в качестве справочников.
- Созданы 2 столбца: ‘isMan’ – принимает значение True, если имя в поле ‘customer_name’ содержится имя из списка мужских имен и ‘isWoman’ - принимает значение True, если имя в поле ‘customer_name’ содержится в списке женских имен.
- Поскольку некоторые женщины указали свое отчество в поле ‘customer_name’, такие строки будут иметь значение ‘isMan’=True и ‘isWoman’=True. В таком случае необходима дополнительная обработка значений.
- Создан столбец ‘sex’, который заполняется на основе столбцов ‘isMan’ и isWoman’ в соответствии с таблицей 4.
Таблица 4 – Определение пола клиента
isWoman |
isMan |
Sex |
Комментарии |
True |
False |
W |
Женщина |
False |
True |
M |
Мужчина |
True |
True |
W |
Женщина |
False |
False |
0 |
Значение не определено (опечатка, имя не указано) |
Результат второго этапа преобразования в транспонированном виде (для удобства представления в тексте работы) выглядит в соответствии с таблицей 5.
Таблица 5 – Результат второго этапа преобразования данных
order_id |
1923 |
add_date |
08.06.2012 |
deliv_date |
04.01.2018 |
deliv_type |
Курьер по Москве |
amount |
800.00 |
customer_name |
Пробный заказа |
customer_email |
1@1.ruu |
customer_tel |
123456 |
customer_addr |
1111 gh |
item_id |
488 |
item_name |
Моделирующая маска для упругости бюста |
item_price |
800.00 |
cnt |
10 |
art |
32501 |
add_time |
20:47 |
add_day |
Пятница |
deliv_time |
18:31 |
deliv_day |
Четверг |
isWoman |
True |
isMan |
False |
sex |
0 |
Задача 3 осложняется тем, что адрес полностью не структурирован и вся информация указана в одном поле. Это не позволяет сделать мэппинг по ключу со справочником, содержащим регионы. Например, адрес указан в формате: «Сочи,п.Лазаревское,354200 ул.Лазарева 3А кв.2», а также «Ракетный бульвар, д.16. офисное здание. Звонок снизу;487». Разбор таких адресов требует мощного алгоритма, который на данный момент не может быть разработан из-за ограниченности в ресурсах.
Также для разбора адресов были рассмотрены публичные сервисы, которые предлагают нормализацию адресов за деньги. Например, сервис dadata.ru нормализует адреса за умеренную плату, но возвращает нормализованный адрес в разбивке по полям. А для решения поставленной задачи необходимо, чтобы по адресу был возвращен только регион.
Возможно эта опция доступна при работе через API, но работа с АРI стоит дороже и интеграция с этим функционалом сложнее.
В связи с этим задача анализа продаж по регионам откладывается.
Для того, чтобы избежать лишних затрат в будущем, необходимо модифицировать форму ввода данных при оформлении заказа и разбить адрес по полям (город, улица, индекс и другие). Это даст минимальный объем данных, который можно будет проанализировать без дополнительных затрат и преобразований.
Задача 4 требует использования справочника категорий для каждого товара в интернет-магазине, поскольку категория не содержится в исходном файле с заказами.
Для тщательного анализа необходима «Категория» - первый уровень агрегации и «Подкатегория» - более детализированное описание товара. Разбивка по категориям, указанная в таблице 6, была взята с сайта интернет-магазина. В приложении 3 приведен код предобразования на Python.
Таблица 6 – Категоризация товаров интернет-магазина
Категория |
Подкатегория |
Товар |
Для тела |
Для ног |
1 |
Аксессуары |
Аксессуары для волос |
2 |
Аксессуары |
Бижутерия |
3 |
Аксессуары |
Аксессуары |
4 |
БАДы |
БАДы |
5 |
Гигиена |
Для зубов |
6 |
Гигиена |
Средства личной гигиены |
7 |
Декоративная косметика |
Для ресниц |
8 |
Декоративная косметика |
Тон |
9 |
Декоративная косметика |
Для губ |
10 |
Декоративная косметика |
Парфюм |
11 |
Декоративная косметика |
Тени |
12 |
Декоративная косметика |
Для ногтей |
13 |
Для волос |
Бальзамы и маски |
14 |
Для волос |
Шампуни |
15 |
Для лица |
Очищение лица |
16 |
Для лица |
Маски для лица |
17 |
Для лица |
Крем для лица |
18 |
Для тела |
Для рук |
19 |
Для тела |
Крем для лица |
20 |
Для тела |
Очищение тела |
21 |
Для тела |
Дезодорант |
22 |
Для тела |
Для ног |
23 |
Для тела |
Антицеллюллитная серия |
24 |
Для тела |
Увлажнение тела |
25 |
Для тела |
Патчи |
26 |