Логотип Зефирнет

Используйте линейный алгоритм обучения в Amazon Redshift ML для решения задач регрессии и классификации.

Дата:

Амазонка Redshift — это самое быстрое, наиболее широко используемое, полностью управляемое облачное хранилище данных объемом в петабайты. Десятки тысяч клиентов используют Amazon Redshift для ежедневной обработки эксабайтов данных, чтобы повысить эффективность своих аналитических рабочих нагрузок. Amazon Redshift ML, питаться от Создатель мудреца Амазонки, позволяет пользователям SQL, таким как аналитики данных, специалисты по данным и разработчики баз данных, создавать, обучать и развертывать модели машинного обучения (ML) с помощью знакомых команд SQL, а затем использовать эти модели для прогнозирования новых данных для таких случаев использования, как как прогнозирование оттока, прогнозирование ценности жизни клиента и рекомендации по продукту. Redshift ML делает модель доступной в виде функции SQL в хранилище данных Amazon Redshift, чтобы вы могли легко использовать ее в запросах и отчетах. Клиенты во всех вертикалях используют Redshift ML, чтобы лучше анализировать свои данные. Например, Jobcase использует Redshift ML для рекомендовать поиск работы в масштабе. Magellan RX Management использует Redshift ML для предсказывать условия терапевтического применения лекарств.

Amazon Redshift поддерживает контролируемое обучение, в том числе регресс, бинарная классификация, многоклассовая классификацияи неконтролируемое обучение с использованием K-средних. При желании вы можете указать XGBoost, MLP, а теперь и линейные типы моделей учащегося, которые представляют собой контролируемые алгоритмы обучения, используемые для решения задач классификации или регрессии и обеспечивающие значительное увеличение скорости по сравнению с традиционными методами оптимизации гиперпараметров. Amazon Redshift также поддерживает принеси свою собственную модель для вызова удаленных конечных точек SageMaker.

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

Обзор решения

Сначала мы решаем задачу линейной регрессии, а затем задачу классификации нескольких классов.

В следующей таблице показаны некоторые распространенные варианты использования и используемые алгоритмы.

Кейсы Алгоритм / Тип проблемы
Прогноз оттока клиентов классификация
Предсказать, закроется ли потенциал продаж классификация
Обнаружение мошенничества классификация
Прогноз цены и дохода Линейная регрессия
Прогнозирование пожизненной ценности клиента Линейная регрессия

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

Предпосылки

Для начала нам понадобится кластер Amazon Redshift или Amazon Redshift без сервера конечная точка и Управление идентификацией и доступом AWS (IAM) прикрепленная роль, которая обеспечивает доступ к SageMaker и разрешения для Простой сервис хранения Amazon (Amazon S3) ведро.

Введение в Redshift ML и инструкции по его настройке см. Создание, обучение и развертывание моделей машинного обучения в Amazon Redshift с помощью SQL с Amazon Redshift ML.

Чтобы создать простой кластер с ролью IAM по умолчанию, см. Используйте роль IAM по умолчанию в Amazon Redshift, чтобы упростить доступ к другим сервисам AWS..

Вариант использования 1: линейная регрессия

В этом случае мы анализируем Набор данных Abalone и определить взаимосвязь между физическими измерениями и использовать это для определения возраста морского ушка. Возраст морского ушка определяют, разрезая раковину через конус, окрашивая ее и подсчитывая количество колец под микроскопом, что является трудоемкой задачей. Мы хотим предсказать возраст, используя различные физические измерения, которые легче измерить. Возраст морского ушка составляет (количество колец + 1.5) года.

Подготовьте данные

Загрузите набор данных Abalone в Amazon Redshift, используя следующий SQL. Вы можете использовать Редактор запросов Amazon Redshift v2 или ваш предпочтительный инструмент SQL для запуска этих команд.

Для создания таблицы используйте следующие команды:

create table abalone_dataset
(
id INT IDENTITY(1,1),
Sex     CHAR(1),
Length float,
Diameter float,
Height float,
Whole  float,
Shucked  float,
Viscera  float,
Shell float,
Rings  integer
); 

Чтобы загрузить данные в Amazon Redshift, используйте следующую команду COPY:

COPY abalone_dataset
from 's3://redshift-ml-multiclass/abalone.csv'
REGION 'us-east-1'
IAM_ROLE default
CSV IGNOREHEADER 1
NULL AS 'NULL'; 

Для обучения модели используем abalone таблицу и 80 % данных для обучения модели, а затем проверьте точность этой модели, проверив, правильно ли она предсказывает возраст атрибута метки кольца на оставшихся 20 % данных. Выполните следующую команду, чтобы создать обучающие и проверочные таблицы:

create table abalone_training as
  select * from abalone_dataset where mod(id,10) < 8 ;

create table abalone_validation as
  select * from abalone_dataset where mod(id,10) >= 8; 

Создайте модель в Redshift ML

Чтобы создать модель в Amazon Redshift, используйте следующую команду:

CREATE MODEL model_abalone_ring_prediction
FROM (
 SELECT   Sex ,
Length ,
Diameter ,
Height ,
Whole  ,
Shucked  ,
Viscera  ,
Shell,
Rings  as target_label
FROM abalone_training
) TARGET target_label
FUNCTION f_abalone_ring_prediction
IAM_ROLE default
MODEL_TYPE LINEAR_LEARNER
PROBLEM_TYPE REGRESSION
OBJECTIVE 'MSE'
SETTINGS (
  S3_BUCKET '<your-s3-bucket>',
  MAX_RUNTIME 15000
  ); 

Мы определяем следующие параметры в операторе CREATE MODEL:

  • Тип проблемы - Мы используем линейный тип задачи обучения, который был недавно добавлен для расширения типичных линейных моделей путем параллельного обучения многих моделей эффективным с вычислительной точки зрения способом.
  • Цель – Мы указали MSE (среднеквадратическую ошибку) в качестве нашей цели, которая является общей метрикой для оценки проблем регрессии.
  • Максимальное время работы – Этот параметр указывает, как долго может продолжаться обучение модели. Указание большего значения может помочь создать лучшую настроенную модель. Значение по умолчанию для этого параметра — 5400 (90 минут). Для этого примера мы установили его на 15000.

Выполнение предыдущего оператора занимает несколько секунд. Он инициирует Amazon SageMaker Автопилот процесс в фоновом режиме для автоматического создания, обучения и настройки лучшей модели машинного обучения для входных данных. Затем он использует Amazon SageMaker Neo для локального развертывания этой модели в кластере Amazon Redshift или Amazon Redshift Serverless в качестве определяемой пользователем функции (UDF). Вы можете использовать ПОКАЗАТЬ МОДЕЛЬ в Amazon Redshift для отслеживания хода создания модели, которая должна находиться в состоянии READY в течение max_runtime параметр, который вы определили при создании модели.

Чтобы проверить состояние модели, используйте следующую команду:

show model model_abalone_ring_prediction;

Ниже приведен табличный результат для предыдущей команды после завершения обучения модели. Обучение модели заняло около 120 минут.

Основные Значение
Название модели model_abalone_ring_prediction
Имя схемы что такое варган?
Владелец awsuser
Время создания Вт, 10.05.2022 19:42:33
Состояние модели ГОТОВ
проверка: mse 4.082088
Ориентировочная стоимость 5.423719
. .
ДАННЫЕ ДЛЯ ОБУЧЕНИЯ: .
запрос ВЫБЕРИТЕ ПОЛ , ДЛИНУ , ДИАМЕТР , ВЫСОТУ , ЦЕЛЫЙ , ОТШЛУШЕННЫЙ , ВИСЦЕРА , ОБОЛОЧКУ, КОЛЬЦА КАК TARGET_LABEL
. ОТ ABALONE_TRAINING
Целевой столбец TARGET_LABEL
. .
ПАРАМЕТРЫ: .
Тип модели линейный_обучающийся
Тип проблемы Регрессия
Цель MSE
Имя задания AutoML красное смещениеml-20220510194233380173
Имя функции f_abalone_ring_prediction
Параметры функции пол длина диаметр высота целые очищенные внутренности скорлупа
Типы функциональных параметров bpchar float8 float8 float8 float8 float8 float8 float8
Роль IAM роль по умолчанию aws-iam
Ведро S3 POC-общий-БКТ
Максимальное время работы 15000

Проверка модели

Из предыдущей таблицы видно, что MSE для обучающих данных составляет 4.08. Теперь давайте запустим прогнозный запрос и проверим точность модели в наборе данных для тестирования и проверки:

select
ROUND(AVG(POWER(( tgt_label - predicted ),2)),2) mse
, ROUND(SQRT(AVG(POWER(( tgt_label - predicted ),2))),2) rmse
from
(
SELECT   Sex ,
Length ,
Diameter ,
Height ,
Whole  ,
Shucked  ,
Viscera  ,
Shell,
Rings as tgt_label,
f_abalone_ring_prediction(Sex ,Length ,Diameter ,Height ,Whole  ,Shucked  ,Viscera  ,Shell) as predicted,
case when tgt_label = predicted then 1
      else 0 end as match,
  case when tgt_label  <> predicted then 1
    else 0 end as nonmatch
FROM abalone_validation
)t1 

Ниже приводится результат запроса:

MSE среднеквадратичное значение
5.08 2.25

Значение MSE из результатов предыдущего запроса указывает на то, что наша модель достаточно точна для фактических значений из нашего набора данных проверки.

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

select explain_model ('model_abalone_ring_prediction')

Ниже приводится результат, где вес каждого атрибута представляет его роль в принятии решений модели:

{"explanations":
    {"kernel_shap":
      {"label0":
        {"expected_value":10.06938362121582,
          "global_shap_values":
          {
            "diameter":0.6897614190439705,
            "height":0.38391156156643987,
            "length":0.29646334630067408,
            "sex":0.5516722137411109,
            "shell":1.5679368167990147,
            "shucked":2.222549468867254,
            "viscera":0.2879883139361144,
            "whole":0.8085603201751219
            }
        }
       }
      }
      ,"version":"1.0"
    }

Вариант использования 2: классификация по нескольким классам

Для этого варианта использования мы используем Набор данных типа обложки (авторские права Джока А. Блэкарда и Университета штата Колорадо), который содержит информацию, собранную Геологической службой США и Лесной службой США о дикой природе на севере Колорадо. Это было загружено в корзину S3, чтобы упростить создание модели. Вы можете загрузить описание набора данных. Этот набор данных содержит различные измерения, такие как высота над уровнем моря, расстояние до водоемов и дорог, а также обозначение дикой природы и тип почвы. Наша задача машинного обучения — создать модель для прогнозирования типа покрытия для данной области.

Подготовьте данные

Чтобы подготовить данные для этой модели, вам необходимо создать и заполнить таблицу public.covertype_data в Amazon Redshift с использованием набора данных Covertype. Вы можете использовать следующий SQL в Редактор запросов Amazon Redshift v2 или предпочитаемый инструмент SQL:

CREATE TABLE public.covertype_data (
    elevation bigint ENCODE az64,
    aspect bigint ENCODE az64,
    slope bigint ENCODE az64,
    horizontal_distance_to_hydrology bigint ENCODE az64,
    vertical_distance_to_hydrology bigint ENCODE az64,
    horizontal_distance_to_roadways bigint ENCODE az64,
    hillshade_9am bigint ENCODE az64,
    hillshade_noon bigint ENCODE az64,
    hillshade_3pm bigint ENCODE az64,
    horizontal_distance_to_fire_points bigint ENCODE az64,
    wilderness_area1 bigint ENCODE az64,
    wilderness_area2 bigint ENCODE az64,
    wilderness_area3 bigint ENCODE az64,
    wilderness_area4 bigint ENCODE az64,
    soil_type1 bigint ENCODE az64,
    soil_type2 bigint ENCODE az64,
    soil_type3 bigint ENCODE az64,
    soil_type4 bigint ENCODE az64,
    soil_type5 bigint ENCODE az64,
    soil_type6 bigint ENCODE az64,
    soil_type7 bigint ENCODE az64,
    soil_type8 bigint ENCODE az64,
    soil_type9 bigint ENCODE az64,
    soil_type10 bigint ENCODE az64,
    soil_type11 bigint ENCODE az64,
    soil_type12 bigint ENCODE az64,
    soil_type13 bigint ENCODE az64,
    soil_type14 bigint ENCODE az64,
    soil_type15 bigint ENCODE az64,
    soil_type16 bigint ENCODE az64,
    soil_type17 bigint ENCODE az64,
    soil_type18 bigint ENCODE az64,
    soil_type19 bigint ENCODE az64,
    soil_type20 bigint ENCODE az64,
    soil_type21 bigint ENCODE az64,
    soil_type22 bigint ENCODE az64,
    soil_type23 bigint ENCODE az64,
    soil_type24 bigint ENCODE az64,
    soil_type25 bigint ENCODE az64,
    soil_type26 bigint ENCODE az64,
    soil_type27 bigint ENCODE az64,
    soil_type28 bigint ENCODE az64,
    soil_type29 bigint ENCODE az64,
    soil_type30 bigint ENCODE az64,
    soil_type31 bigint ENCODE az64,
    soil_type32 bigint ENCODE az64,
    soil_type33 bigint ENCODE az64,
    soil_type34 bigint ENCODE az64,
    soil_type35 bigint ENCODE az64,
    soil_type36 bigint ENCODE az64,
    soil_type37 bigint ENCODE az64,
    soil_type38 bigint ENCODE az64,
    soil_type39 bigint ENCODE az64,
    soil_type40 bigint ENCODE az64,
    cover_type bigint ENCODE az64
)
DISTSTYLE AUTO;


Copy public.covertype_data
From 's3://redshift-ml-multiclass/covtype.data.gz'
iam_role default
gzip
delimiter ','
region 'us-east-1';

Теперь, когда наш набор данных загружен, мы запускаем следующие операторы SQL, чтобы разделить данные на три набора для обучения (80%), проверки (10%) и прогнозирования (10%). Обратите внимание, что Redshift ML Autopilot автоматически разделяет данные на данные для обучения и проверки, но, разделив их здесь, вы сможете проверить точность своей модели.

Чтобы подготовить набор данных, назначьте случайные значения для разделения данных:

create table  public.covertype_data_prep  as
select a.*,
cast (random() * 80 as int) as data_group_id
from public.covertype_data a;

Используйте следующий код для обучающего набора:

Create table public.covertype_training as
Select * from public.covertype_data_prep
Where data_group_id < 80;

Используйте следующий код для набора проверки:

Create table public.covertype_validation as
Select * from public.covertype_data_prep
Where data_group_id between 80 and 89;

Используйте следующий код для тестового набора:

Create table public.covertype_test as
Select * from public.covertype_data_prep
Where data_group_id > 89; 

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

Создайте модель в Redshift ML с помощью линейного обучаемого

Запустите следующую команду SQL, чтобы создать свою модель — обратите внимание, что наша цель cover_type и мы используем все входные данные из нашего обучающего набора:

CREATE  MODEL forest_cover_type_model
FROM (select Elevation,
   Aspect,
   Slope,
   Horizontal_distance_to_hydrology,
   Vertical_distance_to_hydrology,
   Horizontal_distance_to_roadways,
   HIllshade_9am,
   Hillshade_noon,
   Hillshade_3pm ,
   Horizontal_Distance_To_Fire_Points,
   Wilderness_Area1,
   Wilderness_Area2,
   Wilderness_Area3,
   Wilderness_Area4,
   soil_type1,
   Soil_Type2,
   Soil_Type3,
   Soil_Type4,
   Soil_Type5,
   Soil_Type6,
   Soil_Type7,
   Soil_Type8,
   Soil_Type9,
   Soil_Type10 ,
   Soil_Type11,
   Soil_Type12 ,
   Soil_Type13 ,
   Soil_Type14,
   Soil_Type15,
   Soil_Type16,
   Soil_Type17,
   Soil_Type18,
   Soil_Type19,
   Soil_Type20,
   Soil_Type21,
   Soil_Type22,
   Soil_Type23,
   Soil_Type24,
   Soil_Type25,
   Soil_Type26,
   Soil_Type27,
   Soil_Type28,
   Soil_Type29,
   Soil_Type30,
   Soil_Type31,
   Soil_Type32,
   Soil_Type33,
   Soil_Type34,
   Soil_Type36,
   Soil_Type37,
   Soil_Type38,
   Soil_Type39,
   Soil_Type40,
  Cover_type from public.covertype_training)
TARGET cover_type
FUNCTION predict_cover_type
IAM_ROLE default
MODEL_TYPE LINEAR_LEARNER
PROBLEM_TYPE MULTICLASS_CLASSIFICATION
 OBJECTIVE 'Accuracy'
SETTINGS (
  S3_BUCKET '<<your-amazon-s3-bucket-name>>’
,
  S3_GARBAGE_COLLECT OFF,
  MAX_RUNTIME 9600
) ;

Вы можете использовать команду SHOW MODEL для просмотра состояния модели.

Вы можете видеть, что модель имеет показатель точности 730279 и находится в состоянии ГОТОВО. Теперь давайте запустим запрос, чтобы выполнить некоторую собственную проверку.

Проверка модели

Запустите следующий SQL-запрос к таблице проверки, используя функцию, созданную нашей моделью:

select
 cast(sum(t1.match)as decimal(7,2)) as predicted_matches
,cast(sum(t1.nonmatch) as decimal(7,2)) as predicted_non_matches
,cast(sum(t1.match + t1.nonmatch) as decimal(7,2))  as total_predictions
,predicted_matches / total_predictions as pct_accuracy
from
(select
Elevation,
   Aspect,
   Slope,
   Horizontal_distance_to_hydrology,
   Vertical_distance_to_hydrology,
   Horizontal_distance_to_roadways,
   HIllshade_9am,
   Hillshade_noon,
   Hillshade_3pm ,
   Horizontal_Distance_To_Fire_Points,
   Wilderness_Area1,
   Wilderness_Area2,
   Wilderness_Area3,
   Wilderness_Area4,
   soil_type1,
   Soil_Type2,
   Soil_Type3,
   Soil_Type4,
   Soil_Type5,
   Soil_Type6,
   Soil_Type7,
   Soil_Type8,
   Soil_Type9,
   Soil_Type10 ,
   Soil_Type11,
   Soil_Type12 ,
   Soil_Type13 ,
   Soil_Type14,
   Soil_Type15,
   Soil_Type16,
   Soil_Type17,
   Soil_Type18,
   Soil_Type19,
   Soil_Type20,
   Soil_Type21,
   Soil_Type22,
   Soil_Type23,
   Soil_Type24,
   Soil_Type25,
   Soil_Type26,
   Soil_Type27,
   Soil_Type28,
   Soil_Type29,
   Soil_Type30,
   Soil_Type31,
   Soil_Type32,
   Soil_Type33,
   Soil_Type34,
   Soil_Type36,
   Soil_Type37,
   Soil_Type38,
   Soil_Type39,
   Soil_Type40,
   Cover_type as actual_cover_type,
   predict_cover_type( Elevation,
   Aspect,
   Slope,
   Horizontal_distance_to_hydrology,
   Vertical_distance_to_hydrology,
   Horizontal_distance_to_roadways,
   HIllshade_9am,
   Hillshade_noon,
   Hillshade_3pm ,
   Horizontal_Distance_To_Fire_Points,
   Wilderness_Area1,
   Wilderness_Area2,
   Wilderness_Area3,
   Wilderness_Area4,
   soil_type1,
   Soil_Type2,
   Soil_Type3,
   Soil_Type4,
   Soil_Type5,
   Soil_Type6,
   Soil_Type7,
   Soil_Type8,
   Soil_Type9,
   Soil_Type10 ,
   Soil_Type11,
   Soil_Type12 ,
   Soil_Type13 ,
   Soil_Type14,
   Soil_Type15,
   Soil_Type16,
   Soil_Type17,
   Soil_Type18,
   Soil_Type19,
   Soil_Type20,
   Soil_Type21,
   Soil_Type22,
   Soil_Type23,
   Soil_Type24,
   Soil_Type25,
   Soil_Type26,
   Soil_Type27,
   Soil_Type28,
   Soil_Type29,
   Soil_Type30,
   Soil_Type31,
   Soil_Type32,
   Soil_Type33,
   Soil_Type34,
   Soil_Type36,
   Soil_Type37,
   Soil_Type38,
   Soil_Type39,
   Soil_Type40) as predicted_cover_type,
case when actual_cover_type = predicted_cover_type then 1
      else 0 end as match,
  case when actual_cover_type <>  predicted_cover_type then 1
    else 0 end as nonmatch

from public.covertype_validation
) t1;

Вы можете видеть, что наша точность очень близка к нашей оценке из выходных данных SHOW MODEL.

Запустить прогнозный запрос

Давайте запустим прогнозный запрос в Amazon Redshift ML, используя нашу функцию для нашего тестового набора данных, чтобы увидеть наиболее распространенный класс типа укрытия для дикой природы Неота. Мы можем обозначить это, проверив wildnerness_area2 на значение 1.

Набор данных включает в себя следующие области дикой природы:

  1. Район дикой природы Рава
  2. Район дикой природы Неота
  3. Зона дикой природы пика команчей
  4. Заповедник Каш-ла-Пудр

Типы покрытия делятся на семь различных классов:

  1. Ель/Пихта
  2. Lodgepole Pine
  3. Сосна желтая
  4. Коттонвуд/Ива
  5. Aspen
  6. Douglas Fir
  7. Круммхольц

Существует также 40 различных определений типа почвы, которые вы можете увидеть в описании набора данных, со значением 0 или 1, чтобы отметить, применимо ли оно к конкретной строке. Вот несколько примеров типов почвы:

  1. Соборная семья – комплекс выходов горных пород, чрезвычайно каменистый
  2. Семьи Ванет-Ратакэ – Скальный комплекс обнажения, очень каменистый
  3. Семья гаплоборолисов – Скальный комплекс обнажений, щебень
  4. Семья Ратакэ – Скальный комплекс обнажений, щебень
  5. Семья Ванет – Скальный комплекс обнажений, щебень
  6. Семьи Ванет-Ветмор – Скальный комплекс обнажения, каменистый
select t1. predicted_cover_type, count(*)
from
(
select
   Elevation,
   Aspect,
   Slope,
   Horizontal_distance_to_hydrology,
   Vertical_distance_to_hydrology,
   Horizontal_distance_to_roadways,
   HIllshade_9am,
   Hillshade_noon,
   Hillshade_3pm ,
   Horizontal_Distance_To_Fire_Points,
   Wilderness_Area1,
   Wilderness_Area2,
   Wilderness_Area3,
   Wilderness_Area4,
   soil_type1,
   Soil_Type2,
   Soil_Type3,
   Soil_Type4,
   Soil_Type5,
   Soil_Type6,
   Soil_Type7,
   Soil_Type8,
   Soil_Type9,
   Soil_Type10 ,
   Soil_Type11,
   Soil_Type12 ,
   Soil_Type13 ,
   Soil_Type14,
   Soil_Type15,
   Soil_Type16,
   Soil_Type17,
   Soil_Type18,
   Soil_Type19,
   Soil_Type20,
   Soil_Type21,
   Soil_Type22,
   Soil_Type23,
   Soil_Type24,
   Soil_Type25,
   Soil_Type26,
   Soil_Type27,
   Soil_Type28,
   Soil_Type29,
   Soil_Type30,
   Soil_Type31,
   Soil_Type32,
   Soil_Type33,
   Soil_Type34,
   Soil_Type36,
   Soil_Type37,
   Soil_Type38,
   Soil_Type39,
   Soil_Type40,
   predict_cover_type( Elevation,
   Aspect,
   Slope,
   Horizontal_distance_to_hydrology,
   Vertical_distance_to_hydrology,
   Horizontal_distance_to_roadways,
   HIllshade_9am,
   Hillshade_noon,
   Hillshade_3pm ,
   Horizontal_Distance_To_Fire_Points,
   Wilderness_Area1,
   Wilderness_Area2,
   Wilderness_Area3,
   Wilderness_Area4,
   soil_type1,
   Soil_Type2,
   Soil_Type3,
   Soil_Type4,
   Soil_Type5,
   Soil_Type6,
   Soil_Type7,
   Soil_Type8,
   Soil_Type9,
   Soil_Type10,
   Soil_Type11,
   Soil_Type12,
   Soil_Type13,
   Soil_Type14,
   Soil_Type15,
   Soil_Type16,
   Soil_Type17,
   Soil_Type18,
   Soil_Type19,
   Soil_Type20,
   Soil_Type21,
   Soil_Type22,
   Soil_Type23,
   Soil_Type24,
   Soil_Type25,
   Soil_Type26,
   Soil_Type27,
   Soil_Type28,
   Soil_Type29,
   Soil_Type30,
   Soil_Type31,
   Soil_Type32,
   Soil_Type33,
   Soil_Type34,
   Soil_Type36,
   Soil_Type37,
   Soil_Type38,
   Soil_Type39,
   Soil_Type40) as predicted_cover_type

from public.covertype_test
where wilderness_area2 = 1)
t1
group by 1;

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

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

Заключение

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

Чтобы узнать больше о RedShift ML, посетите Amazon Redshift ML.


Об авторах

Фил Бейтс является старшим специалистом по аналитике и архитектором решений в AWS с более чем 25-летним опытом работы с хранилищами данных.

Сохаиб Катаривала является специалистом по аналитике, архитектором решений в AWS. Он имеет более чем 12-летний опыт оказания помощи организациям в извлечении информации из их данных.

Тахир Азиз является архитектором аналитических решений в AWS. Он работал над созданием хранилищ данных и решений для больших данных более 13 лет. Ему нравится помогать клиентам разрабатывать комплексные аналитические решения на AWS. Помимо работы любит путешествовать и готовить.

Цзяюань Чен является старшим инженером по разработке программного обеспечения в AWS. Он увлечен проектированием и созданием приложений, интенсивно использующих данные, и работал в областях озера данных, механизма запросов, приема и аналитики. Он идет в ногу с новейшими технологиями и изобретает вещи, которые вызывают радость.

Дебу Панда является старшим менеджером по управлению продуктами в AWS, является лидером отрасли в области аналитики, платформ приложений и технологий баз данных и имеет более чем 25-летний опыт работы в мире ИТ. Дебу опубликовал множество статей по аналитике, корпоративной Java и базам данных и выступал на нескольких конференциях, таких как re:Invent, Oracle Open World и Java One. Он является ведущим автором EJB 3 в действии (Manning Publications 2007, 2014) и Middleware Management (Packt).

Spot_img

Последняя разведка

Spot_img

Чат с нами

Всем привет! Могу я чем-нибудь помочь?