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

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

Ниже я проведу вас через пошаговое руководство по созданию прогностических моделей в Tellius. Сначала мы начнем с использования механизма Tellius AutoML, затем перейдем к настройке одной модели, которая нам понравилась из этого механизма, и, наконец, мы перенесем нашу модель в Tellius с помощью Python и обучим ее непосредственно в инструменте.

Набор данных

Мы будем использовать аккуратный набор данных цены на автомобили, доступные на Kaggle. В этом случае я использую набор данных Ford и создаю модель, которая будет возвращать цену автомобиля на основе следующих атрибутов:

  1. Модель
  2. Год
  3. Передача инфекции
  4. Пробег
  5. Тип топлива
  6. миль на галлон
  7. налог
  8. Двигатель

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

Чтобы загрузить данные в Tellius, вы можете напрямую загрузить их, подключиться к хранилищу BLOB-объектов, озеру данных, хранилищу данных или реляционной базе данных. Нет необходимости создавать собственный фреймворк данных или использовать numpy/pandas для подготовки данных. С этим набором данных типы данных были назначены автоматически, данные профилированы и готовы к использованию в качестве набора данных в Tellius:

Опубликуйте этот набор данных в памяти в движке Tellius ICE (построенном на Spark) в качестве бизнес-представления. Это сделает данные доступными для моделирования ML. Отсюда я исключаю переменную Tax, так как подозреваю, что она будет производной (а не предиктором) цены.

Теперь вы готовы начать строить модели!

Автомл

Такие инструменты, как Tellius, DataRobot, Dataiku и другие, помогают пользователям быстрее продвигаться по рабочему процессу машинного обучения. AutoML автоматизирует такие аспекты машинного обучения, как преобразование функций, выбор модели, объяснимость и управление.

Перейдите в меню Tellius Predict и выберите AutoML:

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

В AutoML упор делается на быстроту и простоту использования. После нажатия Predict Tellius обучит 5 лучших моделей, которые он определит для этой конкретной проблемы. Ниже вы увидите обученные модели и наиболее эффективную модель, выбранную на основе выбранной нами метрики оценки (r2): регрессор дерева решений.

Предоставляется информация о модели (включая любые автоматические масштабаторы или индексацию), а также важность и объяснимость функций с использованием LIME. Это включает в себя наше время работы победившей модели — невероятно быстрые 45 секунд.

Отсюда эту модель можно сохранить и применить к наборам данных или сделать доступной в виде API (подробнее об этом позже). Давайте погрузимся в нашу самую производительную модель и посмотрим, как мы можем настроить некоторые параметры по своему вкусу с помощью Tellius.

Tellius Point-n-Click ML

Tellius Point-n-Click ML дает вам возможность точно настраивать параметры каждой модели с помощью простого пользовательского интерфейса без необходимости уметь программировать. Мы возьмем нашу модель регрессии дерева решений и укажем максимальную глубину 12, максимальное количество ячеек 120 и включим настройку гиперпараметров.

Похоже, что даже при увеличении количества деревьев, которые моя модель просматривает вручную (за счет увеличения глубины и интервалов), эта модель по-прежнему уступает Tellius AutoML с более низким значением r2 и более высокой абсолютной ошибкой. Все это за 54 секунды.

Давайте посмотрим, смогу ли я добиться большего успеха, используя пользовательскую модель Python.

Написание собственной модели машинного обучения в Tellius

Деревья решений — это фантастические модели для подбора нелинейного набора данных. Я хотел бы сделать снимок с моделью типа линейной регрессии с этими данными, чтобы увидеть, не сможем ли мы получить лучший r2. Мы будем использовать модель гребневого регрессора, которая штрафует размер коэффициентов модели, вводя параметр, называемый альфа.

Я могу очень легко писать код в Tellius, используя встроенную среду разработки Python. Вот мой код для обучения модели гребневой регрессии на наборе данных в Tellius:

def fit(self, dataframe, label_col):		
	from sklearn import linear_model
	X = convert_to_pandas(dataframe)
	Y = dataframe[label_col].values.reshape(-1,1)
	reg = linear_model.Ridge(alpha=.5)
	return reg.fit(X,Y)

Установка нашей альфы на 0,5 в приведенной выше модели существенно уменьшает выбросы, которые будет предсказывать модель. Если бы мы увеличили альфу, это привело бы к более плотной модели. Если бы мы уменьшили альфу, это привело бы к модели с большим количеством выбросов (относительно).

Наш r2 с нашей пользовательской моделью с использованием кода Python по-прежнему уступает нашей модели, полученной из AutoML, с r2 0,77 и более высокой средней абсолютной ошибкой. Это произошло за счет времени: модель, на обучение которой ушло 415 секунд.

Давайте попробуем еще одну модель линейной регрессии с использованием кода — на этот раз Лассо. Этот тип модели обычно опирается на большее количество коэффициентов, что снижает нашу зависимость от любого одного коэффициента.

def fit(self, dataframe, label_col):		
	from sklearn import linear_model
	X = convert_to_pandas(dataframe)
	Y = dataframe[label_col].values.reshape(-1,1)
	reg = linear_model.Lasso(alpha=.2)
	return reg.fit(X,Y)

Наша модель Lasso имеет плохое значение r2 и значительно более высокую абсолютную ошибку при выполнении за 126 секунд:

Применить прогнозы

Tellius делает сохраненные модели машинного обучения доступными с помощью API для внешнего приложения, а также позволяет пользователю применять прогнозную модель к любому бизнес-представлению. Мы можем применить модель, которую мы обучили, ко всему набору данных, чтобы визуализировать прогноз по сравнению с фактической ценой для каждой отдельной точки данных:

Мы можем быстро взять этот прогноз и визуализировать его, чтобы понять, как работает наша модель с использованием слоя визуализации Tellius. В этом случае остаточная цена положительна, когда фактическая цена выше прогнозируемой. Похоже, наша модель занижает цену Мустангов и завышает цену B-MAX.

Вывод

Похоже, что компьютеры снова победили — модель AutoML превосходит все, что я ей предлагал. Вот итог нашего выступления:

Вы, безусловно, могли бы потратить больше времени, ввести больше функций и потенциально создать очень высокопроизводительную модель. Этот человек создал функцию возраст автомобиля и использовал регрессор случайного леса, чтобы получить r2 0,95 для набора данных Volkswagen! Я призываю вас сделать то же самое в Tellius — зайдите на www.tellius.com/free-trial и начните бесплатно уже сегодня.