Оценка сделки. Часть 1. Предварительная обработка данных в MySQL

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

При заключении сделок продавец с большим количеством потенциальных клиентов должен решить, на чем сосредоточить свое время, чтобы закрыть конкретную сделку. Часто продавцы принимают решения, основываясь на своей интуиции и неполной информации. Используя ИИ, специалисты по данным собирают историческую информацию о клиенте, компании, публикациях в социальных сетях и истории взаимодействия продавца с клиентами (например, отправленные электронные письма, сделанные звонки, отправленные текстовые сообщения и т. д.); и ранжируйте возможности или потенциальных клиентов в соответствии с их шансами (вероятностью) успешного закрытия. Одним из инструментов, построенных на основе этой методологии, является Dealcode GmbH.

Полученные данные были в нескольких файлах CSV; Я использовал MySQL для проверки и предварительной обработки данных.

-- Creating NEW Table
DROP TABLE IF EXISTS crm_activity;

CREATE TABLE crm_activity (
    id INT PRIMARY KEY,
    crmId INT,
    crmUserId INT,
    crmDealId INT,
    crmLeadId INT,
    crmDuration TIME NULL,
    crmType VARCHAR(255),
    crmDueTime TIME NULL,
    crmAddTime VARCHAR(255),
    crmUpdateTime VARCHAR(255),
    crmDueDate DATE,
    crmSubject VARCHAR(255),
    crmDone INT,
    isDeleted INT,
    createDate VARCHAR(255),
    companyId INT
);

LOAD DATA LOCAL INFILE 'path/crm_activity.csv' IGNORE 
INTO TABLE crm_activity
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n';

SELECT * FROM crm_activity
LIMIT 100;

Тип данных в таком поле, как createDate, представлен как символьные данные, которые варьируются (VARCHAR). Преобразуйте тип данных в timestamp, используя str_to_dateИ вставьте преобразованную строку с датой в новый столбец. Строковый столбец даты и времени затем можно удалить с помощью DROP.

ALTER TABLE crm_activity ADD (
    crmAddTime_ts TIMESTAMP,
    crmUpdateTime_ts TIMESTAMP,
    createDate_ts TIMESTAMP
);
UPDATE crm_activity SET  crmAddTime_ts = str_to_date( crmAddTime, '"%Y-%m-%d %H:%i:%s"');
UPDATE crm_activity SET crmUpdateTime_ts = str_to_date( crmUpdateTime, '"%Y-%m-%d %H:%i:%s"');
UPDATE crm_activity SET  createDate_ts = str_to_date(  createDate, '"%Y-%m-%d %H:%i:%s"');
DELETE FROM crm_activity WHERE id=0;
COMMIT;

MySQL автоматически генерирует представление схемы базы данных из созданной (ныне существующей) базы данных (From the interface --> Database --> Reverse Engineer --> Follow the instructions).

Схема базы данных создана

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

Обработка данных

Для получения данных из MySQL в Anaconda (Python) требуется пакет mysql.connector, установленный pip install mysql-connector-python

mydb = mysql.connector.connect(
  host="localhost",
  user="myuser",
  password="yourpassword",
  database="name_of_the_database"
)
# Loading and visualizing in Anaconda
crm_deal = mydb.cursor()
crm_deal.execute("SELECT * FROM crm_deal ")
crm_deal_results = crm_deal.fetchall()
for leads in crm_deal_results:
  print(leads[:10])

Продолжить чтение — Оценка сделок — Часть 2: Обработка данных с помощью Python.