Mars algoritmika: Курсы программирования и математики для детей от 6 до 17 лет
Дистанционное обучение
Дистанционное обучениеМуниципальное бюджетное общеобразовательное учреждение «Акташская средняя общеобразовательная школа им. Станислава Мохова»
649743 Республика Алтай, Улаганский район, п. Акташ, ул. Карла Маркса, д. 17
8(38846)23-2-17
Aktash82@bk.ru
Версия для слабовидящих
- Наша жизнь
- Дистанционное обучение
Уважаемые педагоги, учащиеся, родители (законные представители)!
Дистанционное обучение предусматривает взаимодействие учителя и учащихся между собой на расстоянии средствами Интернет-технологий или другими средствами, предусматривающими интерактивность.
На время отмены занятий в школе вводится обучение с применением электронного обучения и дистанционных образовательных технологий. Это занятия с изучением нового материала, проверочными работами, тестами на ресурсах, определенных учителем, только в домашней обстановке с обратной связью через электронную почту, чаты, видеоконференции, социальные сети и др.
Ответственные за организацию обучения с использованием дистанционных технологий
Зам. директора по УВР Брусенцева Л.В. (основная школа) – Aktash82@bk.ru
Зам. директора по УВР Медведева Е.Б. (начальная школа) — Aktash82@bk.ru
Текущий и итоговый контроль осуществляется через электронный журнал АИС «Электронная школа» https://sosh.mon-ra.ru/ (вход через Госуслуги либо восстановление пароля через классного руководителя)
Ответственная за контроль ведения электронного журнала — Зам. директора по ИКТ Носова М.В. — Aktash82@bk.ru
Горячая линия по вопросам организации обучения с использованием дистанционных технологий:
По всем вопросам дистанционного обучения Вы можете обращать к классному руководителю, воспитателю и в школу по электронной почте: Aktash82@bk.ru
Вопросы родителей и ответы — вопросы и ответы
Используемые образовательные платформы:
1. https://uchi.ru/ — Учи.ру
2. https://ege.sdamgia.ru/ — Сдам ГИА
3. https:/yaklass.ru/ — ЯКласс
4. https://mars.algoritmika.org — Алгоритмика
5. https://education.yandex.ru — Яндекс Учебник
Советы от психолога:
- Дистанционное обучение: как начать? — памятка
- Рекомендации по охране психического здоровья детей и подростков во время вспышки covid 19 — рекомендации
- Памятка для родителей и обучающихся — памятка
- Рекомендации для родителей — рекомендации
- Рекомендации для обучающихся и родителей -рекомендации
- Рекомендации для педагогов — рекомендации
- Предложения по психолого-педагогическому сопровождению образовательного процесса в условиях дистанционного режима обучения — памятка
- Предложение по управлению психологической службой образования в субъекте Российской Федерации в условиях дистанционного режима обучения — памятка
Локальные акты по школе:
- Положение об организации дистанционного обучения МБОУ «Акташская СОШ им.
Ст. Мохова» размещен на странице Документы в разделе «Сведения об образовательной организации».
Уважаемые родители! Проявите терпение и понимание. Дистанционное обучение — это пока единственная форма обучения в условиях самоизоляции. По всем вопросам поддерживайте связь с классным руководителем. С вашей стороны нужен контроль.
Рекомендуемые универсальные ресурсы для организации обучения с использованием дистанционных образовательных технологий
- Портал дистанционного обучения: http://do2.rcokoit.ru/ Интерактивные курсы по основным предметам школьной программы
- Российская электронная школа: https://resh.edu.ru/ Видеоуроки и тренажёры по всем учебным предметам
- Учи.ру http://uchi.ru/ Интерактивные курсы по основным предметам 1-4 классов, а также математике и английскому языку 5-9 классов
- Московская электронная школа http://uchebnik.mos.
ru/ Видеоуроки и сценарии уроков
- https://lecta.rosuchebnik.ru/ — доступ ко всем электронным учебникам, коллекция учебных и методических материалов для преподавателей и учащихся
- Ресурсы для детей дошкольного возраста, учащихся 1–11 классов по всем предметным и образовательным областям https://obr.nd.ru/
- Якласс https://www.yaklass.ru/. Видеоуроки и тренажеры.
- https://mars.algoritmika.org — Алгоритмика
- https://education.yandex.ru — Яндекс Учебник
- Классические технологии дистанционного обучения, предусматривающие выполнение заданий учителя, самостоятельную работу с материалами
- Индивидуальные онлайн (аудио, видео) консультации
- Бесплатный полнофункциональный доступ до конца 2019-2020 учебного года: коллекция ресурсов «Образовариум» — https://products.obr.nd.ru
- Цифровая школа «Образовариум» — https://ds.obr.nd.ru/
Школа также могут использовать другие методы, средства и формы дистанционного обучения. Это могут быть не только онлайн платформы, но и классические технологии дистанционного обучения, предусматривающие выполнение заданий, самостоятельную работу с материалами, реализацию исследовательских и творческих проектов и т.д.
Этот сайт использует сервис веб-аналитики Яндекс.Метрика, предоставляемый компанией ООО «ЯНДЕКС», 119021, Россия, Москва, ул. Л. Толстого, 16 (далее — Яндекс). Сервис Яндекс.Метрика использует технологию «cookie» — небольшие текстовые файлы, размещаемые на компьютере пользователей с целью анализа их пользовательской активности. Собранная при помощи cookie информация не может идентифицировать вас, однако может помочь нам улучшить работу нашего сайта. Информация об использовании вами данного сайта, собранная при помощи cookie, будет передаваться Яндексу и храниться на сервере Яндекса в ЕС и Российской Федерации. Яндекс будет обрабатывать эту информацию для оценки использования вами сайта, составления для нас отчетов о деятельности нашего сайта, и предоставления других услуг.
Я согласен
Mars.algoritmika.org – Анализ конкурентов – SpyMetrics
Mars.algoritmika.org – Анализ конкурентов – SpyMetricsmars.algoritmika.org/site/login
Вычисляется регулярно»/>
Визиты & Вовлечение
На ПК & мобильных, за последние 6 месяцев
Вовлечение
Октябрь, 2022
Всего визитов | 204.24K |
Время на сайте | 00:04:38 |
Страниц за визит | 1.96 |
Показатель отказов | 57.02% |
Другие метрики
Источники трафика
На ПК, за последние 3 месяца. Клик по столбцу для подробной статистики
География
На ПК, за последний месяц
Трафик по странам
Азербайджан |
48. |
Россия |
48.19% 19.64% |
Беларусь |
3.32% |
Рецензия
Имеет явно негативную динамику в привлечении трафика. В период c май’22 по октябрь’22 посещаемость данного сайта сократилась c 662 829 до 0 (-233.25%).
За октябрь 2022г. совершено 204 237 посещений. Посетитель в среднем за сеанс просматривает 1.96 страниц(ы) и проводит на сайте 4 минут(ы) 38 секунд(ы).
Наибольшей популярностью сайт пользуется в Азербайджане, привлекая из этой страны 48.49% трафика.
Структура источников трафика: наибольший трафик «Поиск» (50.71%), второй по значимости «Прямой/Закл.» (47.59%), затем следует «Рефералы» (1.70%), затем «Соц.сети» (0.00%), потом «Почта» (0.00%) и на последнем месте «Баннеры» с долей 0.00%.
Позиция в стране
Неизвестно
n / a
Рефералы
Сайты-доноры:
Сайты-реципиенты:
50.71%
Орган. ключ.слова:
Ключевое слово | доля/изм. |
---|---|
алгоритмика вход |
25. |
алгоритмика |
16.98% 69.03% |
mars.algoritmika.org |
12.44% -20.99% |
марс алгоритмика |
-50. |
mars algoritmika org | -41.35% |
Платн. ключ.слова:
Данные недоступны
Социальные сети
Баннерная реклама
ТОП-Рекламные сети
ТОП-площадки
Интересы аудитории
Также посещают
Категории
Похожие сайты
MARS: сплайны многомерной адаптивной регрессии — как улучшить линейную регрессию? | by Saul Dobilas
Визуальное объяснение алгоритма MARS с примерами Python и сравнением с линейной регрессией
Сравнение прогнозирования модели между MARS и линейной регрессией.Машинное обучение совершает огромный скачок вперед, увеличивая количество алгоритмов, позволяющих нам решать сложные реальные проблемы.
Эта статья является частью серии статей, посвященных механике алгоритмов машинного обучения. Помимо понимания того, как работают алгоритмы машинного обучения, он также предоставляет вам примеры Python для создания собственных моделей машинного обучения.
Прежде чем мы углубимся в особенности MARS, я предполагаю, что вы уже знакомы с линейной регрессией. Если вы хотите освежить в памяти тему, не стесняйтесь изучить мою историю о линейной регрессии:
Линейная регрессия стала проще. Как это работает и как использовать в Python?
Все, что вам нужно знать о построении модели машинного обучения с использованием алгоритма линейной регрессии.
в направлении datascience.com
- К какой категории алгоритмов относится MARS?
- Как работает алгоритм MARS и чем он отличается от линейной регрессии?
- Как я могу использовать MARS для построения модели прогнозирования в Python?
Глядя на полное название алгоритма — Многомерные адаптивные регрессионные сплайны — можно с полным основанием предположить, что MARS принадлежит к группе алгоритмов регрессии, используемых для прогнозирования непрерывных (числовых) целевых переменных.
Регрессия сама по себе является частью контролируемой категории машинного обучения, которая использует помеченные данные для моделирования взаимосвязи между входными данными (независимыми переменными) и выходными данными (зависимыми переменными).
Приведенный ниже график интерактивен, поэтому не забудьте нажать на разные категории, чтобы увеличить и показать больше 👇.
Классификация алгоритмов машинного обучения. Интерактивная диаграмма, созданная автором.Если вам нравится наука о данных и машинное обучение , подпишитесь на номер , чтобы получать электронные письма всякий раз, когда я публикую новую историю.
Вы можете использовать сплайны многомерной адаптивной регрессии для решения тех же задач, для которых вы бы использовали линейную регрессию, при условии, что они оба принадлежат к одной и той же группе алгоритмов. Вот несколько примеров таких проблем:
- Оценка стоимости актива на основе его характеристик
- Прогнозирование энергопотребления дома на основе времени суток и температуры наружного воздуха
- Оценка инфляции на основе процентных ставок, денежной массы и других макроэкономических показателей
Список можно продолжайте бесконечно, помните, что алгоритмы регрессии помогут вам, когда у вас есть числовая целевая переменная.
Основы
Красота линейной регрессии заключается в ее простоте, поскольку она предполагает линейную зависимость между входными и выходными данными (за исключением полиномиальной регрессии, частного случая множественной линейной регрессии, используемой для моделирования нелинейных отношений).
Однако взаимодействие между показателями в реальном мире часто бывает нелинейным, а это означает, что простая линейная регрессия не всегда может дать нам хорошее приближение выходных данных при заданных входных данных. И тут на помощь приходит MARS.
Самый простой способ представить себе MARS — это ансамбль линейных функций, соединенных вместе одной или несколькими шарнирными функциями.
Шарнирная функция:
h(x-c) = max(0, x-c) = {x-c, если x>0; и 0, если x≤c},
, где c — константа, также известная как узел.
Результат комбинирования функций линейного шарнира можно увидеть в приведенном ниже примере, где черные точки — это наблюдения, а красная линия — прогноз, данный моделью MARS:
Пример — использование MARS для прогнозирования значений y при заданных значениях x.Из этого примера видно, что простая линейная регрессия не даст нам осмысленного прогноза, поскольку мы не сможем провести одну прямую линию по всему набору наблюдений. В то же время полиномиальная регрессия также не справится с этой задачей из-за «острых углов», наблюдаемых на графике данных.
Однако алгоритм MARS работает очень хорошо, поскольку он может комбинировать несколько линейных функций с помощью «шарниров».
Уравнение для приведенного выше примера:
y= -14,3953 + 1,99032 * max(0, 4,33545 - x) + 2,00966 * max(0, x + 9,95293)
Процесс
Алгоритм состоит из двух стадий. передний этап и задний этап.
Он генерирует множество базисных функций-кандидатов на прямой стадии, которые всегда создаются парами, т. е. h(x-c) и h(c-x). Однако сгенерированная пара функций добавляется в модель только в том случае, если это уменьшает общую ошибку модели. Как правило, вы можете контролировать максимальное количество функций, создаваемых моделью, с помощью гиперпараметра.
Обратный этап, также известный как этап обрезки, выполняет функции по одной за раз и удаляет те, которые не добавляют существенной производительности модели. Это делается с помощью оценки обобщенной перекрестной проверки (GCV). Обратите внимание, что оценка GCV на самом деле не основана на перекрестной проверке, а является лишь приблизительным значением истинной оценки перекрестной проверки с целью снижения сложности модели.
В результате получается несколько линейных функций, которые можно записать в виде простого уравнения, как в приведенном выше примере.
Поскольку теперь у вас есть общее представление о том, как работает алгоритм, пришло время немного повеселиться и создать пару моделей прогнозирования на Python.
Мы будем использовать следующее:
- Данные о ценах на жилье от Kaggle
- Библиотека Scikit-learn для построения моделей линейной регрессии (чтобы мы могли сравнить ее прогнозы с MARS)
- Библиотека py-earth для построения моделей MARS
- Plotly библиотека для визуализации
- Pandas и Numpy
Setup
Обратите внимание, что пакет py-earth на момент написания совместим только с Python 3. 6 или более ранней версией. Если вы используете Python 3.7 или выше, я предлагаю вам создать виртуальную среду с Python v.3.6 для установки py-earth.
Начнем с импорта необходимых библиотек.
Затем мы загружаем и получаем данные, которые будем использовать для построения наших моделей MARS и линейной регрессии.
(источник: https://www.kaggle.com/quantbruce/real-estate-price-prediction?select=Real+estate.csv )
MARS по сравнению с простой линейной регрессией — 1 независимая переменная
Возьмем «X3 расстояния до ближайшей станции MRT» в качестве входной (независимой) переменной и «цену дома Y за единицу площади» в качестве выходной (зависимой, также известной как цель) переменная.
Прежде чем мы построим модели, мы создадим точечную диаграмму для визуализации данных.
Диаграмма рассеяния X и Y. Изображение автора. Глядя на график выше, мы можем ясно увидеть взаимосвязь между двумя переменными. Цена единицы площади дома уменьшается по мере удаления от ближайшей станции метро.
Теперь давайте построим сплайны многомерной адаптивной регрессии и простые модели линейной регрессии и сравним их прогнозы.
Сводная статистика для моделей MARS и линейной регрессии. Изображение автора.Как вы можете видеть, модель MARS добавила две шарнирные функции на переднем этапе, но затем вырезала h(x0–1146,33) из модели на заднем этапе. Следовательно, окончательные уравнения для двух моделей:
Простая модель линейной регрессии:
y = 45,85142705777498 - 0,00726205 * x MARS Модель:
Y = 31,4145 + 0,0184597 * H (1146,33 - x) - 0,00269698 * x =
= 31,4145 + 0,0184597 * максимум (1146,33 - x, 0) - 0,0026696 * 9000.66 * 9000 296696 * 9000.9008 * 9000 2969697 * 9000.9008 * 9000 * 9000 *. теперь нанесите их оба на один график, чтобы мы могли увидеть, чем они отличаются. Сравнение линейной регрессии и модели MARS.Изображение автора.
Обратите внимание на излом x=1146,33. Здесь функция шарнира h(c-x) становится равной нулю, а линия меняет свой наклон. График позволяет очень интуитивно понять, как MARS может лучше соответствовать данным с помощью шарнирных функций.
MARS против множественной линейной регрессии — 2 независимые переменные
Теперь давайте перейдем к измерениям, построим и сравним модели с использованием 2 независимых переменных.
Начнем с создания трехмерной диаграммы рассеяния с нашими данными. Обратите внимание, мы используем те же данные, что и раньше, но добавляем еще одну независимую переменную — «возраст дома X2».
Наблюдения, визуализированные с помощью диаграммы рассеяния Plotly 3D. Изображение автора.Мы видим, что, хотя и несколько слабее, существует связь между X2 и Y, так как цена увеличивается при уменьшении возраста дома.
Теперь давайте подгоним сплайны многомерной адаптивной регрессии и модели линейной регрессии.
Сводная статистика для моделей MARS и линейной регрессии.Изображение автора.
Поскольку мы увеличили количество измерений, теперь у нас есть два параметра наклона в модели линейной регрессии (по одному для каждого x). У нас также есть 4 шарнирные функции, которые были добавлены в модель MARS с использованием обеих независимых переменных.
Давайте построим два графика для визуализации результатов: один для множественной линейной регрессии, а другой для сплайнов многомерной адаптивной регрессии. Но перед этим нам нужно сгенерировать сетку с диапазоном входных значений и предсказать выходные значения. Это даст нам данные для наших двух графиков.
Теперь, когда у нас есть готовые данные, давайте нарисуем графики.
Множественная линейная регрессия с 2 независимыми переменными. Изображение автора. Многомерные сплайны адаптивной регрессии с 2 независимыми переменными. Изображение автора.Легко увидеть разницу между двумя моделями. Множественная линейная регрессия создает плоскость предсказания, которая выглядит как плоский лист бумаги.
Тем временем MARS берет этот лист бумаги и сгибает его в нескольких местах, используя шарнирные функции, что обеспечивает лучшее соответствие данным.
Если вам интересно, что представляло это изображение функции в начале истории, теперь вы должны увидеть, что оно накладывает прогнозы моделей линейной регрессии и MARS, чтобы помочь вам увидеть, как результаты прогнозирования различаются с использованием каждой модели.
Алгоритм сплайнов многомерной адаптивной регрессии лучше всего охарактеризовать как улучшенную версию линейной регрессии, которая может моделировать нелинейные отношения между переменными. Пока я демонстрировал примеры с использованием 1 и 2 независимых переменных, помните, что вы можете добавить столько переменных, сколько захотите.
Я надеюсь, что эта история оказалась для вас полезной и вы примените полученные знания на практике, создав и улучшив свои собственные регрессионные модели.
Не стесняйтесь обращаться к нам, если у вас есть какие-либо отзывы или вопросы.
Ура! 👏
Саул ДобиласЕсли вы уже потратили свой бюджет на обучение в этом месяце, пожалуйста, вспомните меня в следующий раз. Моя персональная ссылка для присоединения к Medium:
Присоединяйтесь к Medium по моей реферальной ссылке - Saul Dobilas
Как участник Medium, часть вашего членского взноса идет авторам, которых вы читаете, и вы получаете полный доступ к каждой истории…
solclover.com
Истории по теме, которые могут вам понравиться:
Регрессия LOWESS в Python: Как обнаружить четкие закономерности в ваших данных?
Подробное руководство по использованию алгоритма локально взвешенного сглаживания диаграммы рассеяния (LOWESS) в Python
в направлении datascience.com
Регрессия опорных векторов (SVR) — один из самых гибких, но надежных алгоритмов прогнозирования
Визуальное объяснение SVR с примерами реализации Python
Последнее обновление: 27 апреля 2021 г.
Сплайны многомерной адаптивной регрессии или MARS — это алгоритм для сложных задач нелинейной регрессии.
Алгоритм включает в себя поиск набора простых линейных функций, которые в совокупности дают наилучшие прогнозные характеристики. Таким образом, MARS представляет собой тип ансамбля простых линейных функций и может обеспечить хорошую производительность при решении сложных задач регрессии со многими входными переменными и сложными нелинейными отношениями.
В этом руководстве вы узнаете, как разрабатывать модели сплайнов многомерной адаптивной регрессии в Python.
После прохождения этого урока вы будете знать:
- Алгоритм MARS для многомерных задач прогнозного моделирования нелинейной регрессии.
- Как использовать API-интерфейс py-earth для разработки моделей MARS, совместимых с scikit-learn.
- Как оценивать и делать прогнозы с помощью моделей MARS для задач регрессионного прогнозного моделирования.
Начните свой проект с моей новой книги Ensemble Learning Algorithms With Python, включающей пошаговых руководств и файлов исходного кода Python для всех примеров.
Начнем.
Сплайны многомерной адаптивной регрессии (MARS) в Python
Фото Sei F, некоторые права защищены.
Обзор учебника
Это руководство разделено на три части; они:
- Многомерные адаптивные регрессионные сплайны
- МАРС Python API
- Рабочий пример MARS для регрессии
Сплайны многомерной адаптивной регрессии
Многомерные адаптивные регрессионные сплайны, или сокращенно MARS, — это алгоритм, разработанный для задач многомерной нелинейной регрессии.
Проблемы регрессии — это задачи, в которых модель должна предсказать числовое значение. Многомерный означает, что существует более одной (часто десятков) входных переменных, а нелинейный означает, что связь между входными переменными и целевой переменной нелинейна, то есть не может быть описана с помощью прямой линии (например, она изогнута или изогнута). .
MARS — это адаптивная процедура регрессии, хорошо подходящая для многомерных задач (т. е. большого количества входных данных). Его можно рассматривать как обобщение пошаговой линейной регрессии …
- Страница 321, Элементы статистического обучения, 2016.
Алгоритм MARS включает обнаружение набора простых кусочно-линейных функций, характеризующих данные, и их совокупное использование для прогнозирования. В некотором смысле модель представляет собой ансамбль линейных функций.
Кусочно-линейная функция — это функция, состоящая из меньших функций. В данном случае это функция, которая либо выводит 0, либо непосредственно входное значение.
« правильная функция » одной входной переменной включает в себя выбор определенного значения для переменной и вывод 0 для всех значений ниже значения и вывод значения как есть для всех значений выше выбранного значения.
- f(x) = x, если x > значение, иначе 0
Или наоборот, « левая функция ” может использоваться, когда значения меньше выбранного значения выводятся напрямую, а значения больше выбранного значения выводят ноль.
- f(x) = x, если x < значение, иначе 0
Это называется шарнирной функцией , где выбранное значение или точка разделения представляет собой « узел » функции. В нейронных сетях ее также называют выпрямленной линейной функцией.
Функции также называются « сплайнов », отсюда и название алгоритма.
Каждая функция кусочно-линейна с узлом на значении t. В терминологии […] это линейные сплайны.
- Страница 322, Элементы статистического обучения, 2016.
Алгоритм MARS генерирует многие из этих функций, называемых базисными функциями для одной или нескольких входных переменных.
Модель линейной регрессии затем изучается на основе выходных данных каждой из этих базовых функций с целевой переменной. Это означает, что результат каждой базисной функции взвешивается коэффициентом. Прогноз делается путем суммирования взвешенных выходных данных всех базисных функций в модели.
Ключом к алгоритму MARS является то, как выбираются базисные функции. Это включает в себя два этапа: фазу роста или генерации, называемую передовой стадией, и стадию обрезки или очистки, называемую обратной стадией.
- Передовой этап : Генерация базовых функций-кандидатов для модели.
- Обратный этап : Удалить базовые функции из модели.
Предварительный этап включает создание базовых функций и добавление к модели. Подобно дереву решений, каждое значение каждой входной переменной в обучающем наборе данных рассматривается как кандидат на базовую функцию.
Как была определена точка отсечки? Каждая точка данных для каждого предиктора оценивается как точка отсечения кандидата путем создания модели линейной регрессии с функциями-кандидатами, и вычисляется соответствующая ошибка модели.
— стр. 146, Прикладное прогнозное моделирование, 2013.
Функции всегда добавляются парами, для левой и правой версии кусочно-линейной функции одной и той же точки разделения. Сгенерированная пара функций добавляется в модель только в том случае, если она уменьшает ошибку, создаваемую общей моделью.
Обратный этап включает в себя выбор функций для удаления из модели по одной за раз. Функция удаляется из модели только в том случае, если она не влияет на производительность (нейтрально) или повышает эффективность прогнозирования.
После создания полного набора признаков алгоритм последовательно удаляет отдельные признаки, которые не вносят существенного вклада в уравнение модели. Эта процедура «отсечения» оценивает каждую предикторную переменную и оценивает, насколько уменьшилась частота ошибок при включении ее в модель.
— стр. 148, Прикладное прогнозное моделирование, 2013.
Изменение производительности модели на обратном этапе оценивается с помощью перекрестной проверки набора обучающих данных, называемой обобщенной перекрестной проверкой или сокращенно GCV. Таким образом, можно оценить влияние каждой кусочно-линейной модели на ее производительность.
Количество функций, используемых моделью, определяется автоматически, так как процесс сокращения будет остановлен, когда дальнейшие улучшения невозможны.
Единственными двумя ключевыми гиперпараметрами, которые следует учитывать, являются общее количество функций-кандидатов для создания, часто задаваемое очень большим числом, и степень функций для создания.
… есть два параметра настройки, связанные с моделью MARS: степень добавления функций в модель и количество сохраненных терминов. Последний параметр может быть автоматически определен с помощью процедуры обрезки по умолчанию (с использованием GCV), установлен пользователем или определен с помощью внешней техники повторной выборки.
— стр. 149, Прикладное прогнозное моделирование, 2013.
Степень — это количество входных переменных, учитываемых каждой кусочно-линейной функцией. По умолчанию установлено значение 1, но можно установить и большее значение, чтобы модель могла фиксировать сложные взаимодействия между входными переменными. Степень часто остается небольшой, чтобы ограничить вычислительную сложность модели (память и время выполнения).
Преимущество алгоритма MARS заключается в том, что он использует только входные переменные, повышающие производительность модели. Подобно алгоритмам бэггинга и ансамбля случайных лесов, MARS обеспечивает автоматический выбор признаков.
… модель автоматически проводит отбор признаков; уравнение модели не зависит от переменных-предикторов, которые не связаны ни с одним из конечных признаков модели. Этот момент нельзя недооценивать.
— стр. 149, Прикладное прогнозное моделирование, 2013.
Теперь, когда мы знакомы с алгоритмом MARS, давайте посмотрим, как мы можем разрабатывать модели MARS в Python.
Хотите начать обучение ансамблю?
Пройдите мой бесплатный 7-дневный экспресс-курс по электронной почте прямо сейчас (с примером кода).
Нажмите, чтобы зарегистрироваться, а также получить бесплатную электронную версию курса в формате PDF.
МАРС Python API
Алгоритм MARS отсутствует в библиотеке scikit-learn; вместо этого необходимо использовать стороннюю библиотеку.
MARS предоставляется библиотекой py-earth Python.
« Earth » — это игра на « Mars » (планета), а также название пакета в R, который предоставляет алгоритм MARS.
Пакет py-earth Python представляет собой реализацию MARS на Python, названную в честь версии R, и обеспечивает полную сопоставимость с библиотекой машинного обучения scikit-learn.
Первый шаг — установить библиотеку py-earth. Я рекомендую использовать диспетчер пакетов pip, используя следующую команду из командной строки:
sudo pip установить sklearn-contrib-py-earth
sudo pip установить sklearn-contrib-py-earth |
После установки мы можем загрузить библиотеку и распечатать версию в скрипте Python, чтобы убедиться, что она установлена правильно.
# проверить первую версию импортный год # отображаемая версия печать (год.__версия__)
# проверить годовую версию импортировать годовую версию # показать версию print(pyearth.__version__) |
Запуск скрипта загрузит библиотеку py-earth и напечатает номер версии библиотеки.
Номер вашей версии должен быть таким же или выше.
Модель MARS можно создать с гиперпараметрами модели по умолчанию, создав экземпляр класса Earth.
... # определить модель модель = Земля()
... # определение модели model = Earth() |
После создания модель может быть напрямую адаптирована к обучающим данным.
... # подгонять модель к обучающему набору данных модель.фит(Х, у)
... # подобрать модель в обучающем наборе данных model. |
По умолчанию вам, вероятно, не нужно устанавливать какие-либо гиперпараметры алгоритма.
Алгоритм автоматически определяет количество и тип используемых базовых функций.
Максимальное количество базовых функций настраивается аргументом « max_terms » и устанавливается равным большому числу, пропорциональному количеству входных переменных, и ограничивается максимальным значением 400.
Степень кусочно-линейных функций, т. е. количество входных переменных, учитываемых в каждой базовой функции, управляется аргументом « max_степень » и по умолчанию равна 1.
После подгонки модель можно использовать для прогнозирования новых данных.
... Xновое = ... # сделать прогноз yhat = model.predict(Xnew)
... Xnew = ... # сделать прогноз yhat = model.predict(Xnew) |
Сводку по подходящей модели можно создать, вызвав функцию summary() .
... # вывести сводную информацию о подходящей модели печать (модель.резюме())
... # вывести сводку подходящей модели print(model.summary()) |
Сводка возвращает список базовых функций, используемых в модели, и предполагаемую производительность модели, оцененную с помощью обобщенной перекрестной проверки (GCV) в наборе обучающих данных.
Ниже приведен пример итогового вывода, из которого видно, что модель имеет 19 базисных функций и оценочное среднеквадратичное отклонение около 25.
Модель Земли -------------------------------------- Базовая функция Сокращенный коэффициент -------------------------------------- (Перехват) № 313.89 ч(х4-1,88408) Нет 98,0124 ч(1,88408-x4) Нет -99,2544 ч(х17-1,82851) Нет 99,7349 ч(1,82851-x17) Нет -99,9265 х14 № 96,7872 х15 № 85.4874 ч(х6-1,10441) Нет 76,4345 ч(1,10441-x6) Нет -76,5954 х9 № 76.5097 ч(х3+2,41424) Нет 73,9003 ч(-2. 41424-х3) №-73.2001 x0 Нет 71.7429 х2 Нет 71,297 х19 № 67.6034 ч(х11-0,575217) Нет 66,0381 ч(0,575217-x11) Нет -65,9314 х18 № 62.1124 х12 № 38.8801 -------------------------------------- СКО: 25,5896, GCV: 25,8266, RSQ: 0,9997, GRSQ: 0,9997
1 2 3 4 5 6 7 8 10 110005 12 13 14 2009111000 9000 900014 000 9000 9000 9000 9000 9000 9000 9000 9000 9000 9000 9000 21000 9000 9000 15 9000 9000 9000 9000 210009 900018 19 20 21 22 23 24 25 | Модель Земли ---------------------------------------------------- Базовая функция Сокращенный Коэффициент -- ------------------------------------ (Перехват) Нет 313,89 h(x4-1,88408 ) No 98. h(1.88408-x4) No -99.2544 h(x17-1.82851) No 99.7349 h(1.82851-x17) No -99.9265 x14 No 96.7872 x15 No 85.4874 h(x6 -1,10441) Нет 76,4345 H (1,10441-x6) NO -76.5954 x9 № 76,5097 H (x3+2,41424) NO 73,9003 H (-2,41424-x3) NO -73.2001 x0292929797979297929797929797979797979797979792979292929779797979792929н. x19 № 67,6034 H (x11-0,575217) № 66,0381 H (0,575217-x11) № -65,9314 x18 no 62.1124 x12 no 38,8801 9000 2 x180005 -------------------------------------- MSE: 25.5896, GCV: 25.8266, RSQ: 0,9997, GRSQ: 0,9997 |
Теперь, когда мы знакомы с разработкой моделей MARS с помощью API py-earth, давайте рассмотрим рабочий пример.
Рабочий пример MARS для регрессии
В этом разделе мы рассмотрим рабочий пример оценки и использования модели MARS для задачи моделирования регрессионного прогнозирования.
Во-первых, мы должны определить набор данных регрессии.
Мы будем использовать функцию make_regression() для создания задачи синтетической регрессии с 20 функциями (столбцы) и 10 000 примеров (строки). В приведенном ниже примере создается и обобщается форма синтетического набора данных.
# определить набор данных синтетической регрессии из sklearn.datasets импортировать make_regression # определить набор данных X, y = make_regression (n_samples = 10000, n_features = 20, n_informative = 15, шум = 0,5, random_state = 7) # обобщить набор данных печать (X.форма, у.форма)
1 2 3 4 5 6 | # определение набора данных синтетической регрессии из sklearn.datasets import make_regression # определение набора данных X, y = make_regression(n_samples=10000, n_features=20, n_informative=15, NoiseState=0,5), random_5 # суммировать набор данных print(X. |
При выполнении примера создается набор данных и суммируется количество строк и столбцов, что соответствует нашим ожиданиям.
(10000, 20) (10000,)
(10000, 20) (10000,) |
Далее мы можем оценить модель MARS в наборе данных.
Мы определим модель, используя гиперпараметры по умолчанию.
... # определить модель модель = Земля()
... # определение модели model = Earth() |
Мы будем оценивать модель, используя повторную k-кратную перекрестную проверку, что является хорошей практикой при оценке регрессионных моделей в целом.
В этом случае мы будем использовать три повторения и 10 сгибов.
... # определить процедуру оценки cv = RepeatedKFold (n_splits = 10, n_repeats = 3, random_state = 1)
. # определение процедуры оценки cv = RepeatedKFold(n_splits=10, n_repeats=3, random_state=1) |
Мы будем оценивать производительность модели, используя среднюю абсолютную ошибку, или сокращенно MAE.
API scikit-learn сделает оценку MAE отрицательной, чтобы ее можно было максимизировать, то есть оценки будут варьироваться от отрицательной бесконечности (худший) до 0 (лучший).
... # оцениваем модель и собираем результаты n_scores = cross_val_score(model, X, y, scoring='neg_mean_absolute_error', cv=cv, n_jobs=-1)
... # оценка модели и сбор результатов |
Наконец, мы сообщим о производительности модели в виде среднего балла MAE по всем повторам и перекрестным проверкам.
... # сообщать о производительности print('MAE: %.3f (%.3f)' % (mean(n_scores), std(n_scores)))
... # производительность отчета print('MAE: %. |
Ниже приводится полный пример оценки модели MARS на наборе регрессионных данных.
# оцениваем сплайны многомерной адаптивной регрессии для регрессии из numpy означает импорт из стандартного импорта numpy из sklearn.datasets импортировать make_regression из sklearn.model_selection импортировать cross_val_score из sklearn.model_selection импортировать RepeatedKFold от первого импорта Земли # определить набор данных X, y = make_regression (n_samples = 10000, n_features = 20, n_informative = 15, шум = 0,5, random_state = 7) # определить модель модель = Земля() # определить процедуру оценки cv = RepeatedKFold (n_splits = 10, n_repeats = 3, random_state = 1) # оцениваем модель и собираем результаты n_scores = cross_val_score (модель, X, y, оценка = 'neg_mean_absolute_error', cv = cv, n_jobs = -1) # сообщать о производительности print('MAE: %.3f (%.3f)' % (mean(n_scores), std(n_scores)))
1 2 3 4 5 6 7 8 10 110005 12 13 14 9000 151000 9000 9000 9000 9000 9000 210005 9000 9000 9000 9000 9000 9000 9000 9000 9000 21000 9000 9000 9000 9000 9000 210009 9000 | # оценка многомерных сплайнов адаптивной регрессии для регрессии0005 из sklearn. из sklearn.model_selection import RepeatedKFold из pyearth import Earth # определить набор данных X, y = make_regression(n_samples=n_samples=natures,2_fe , random_state=7) # определение модели model = Earth() # определение процедуры оценки cv = RepeatedKFold(n_splits=10, n_repeats=3, random_state=1) # оценка модели и собирать результаты n_scores = cross_val_score(model, X, y, scoring='neg_mean_absolute_error', cv=cv, n_jobs=-1) # производительность отчета print('MAE: %.3f (%.3f)' % ( среднее (n_scores), стандартное (n_scores))) |
При выполнении примера оценивается производительность модели MARS и выводится среднее значение и стандартное отклонение оценки MAE.
Примечание : Ваши результаты могут отличаться из-за стохастического характера алгоритма или процедуры оценки, а также из-за различий в численной точности. Попробуйте запустить пример несколько раз и сравните средний результат.
В этом случае мы видим, что алгоритм MARS достиг среднего MAE около 4,0 (без учета знака) в наборе данных синтетической регрессии.
МАЭ: -4,041 (0,085)
МАЭ: -4,041 (0,085) |
Возможно, мы захотим использовать MARS в качестве нашей окончательной модели и использовать ее для прогнозирования новых данных.
Для этого требуется сначала определить и подогнать модель по всем доступным данным.
... # определить модель модель = Земля() # подгонять модель ко всему набору данных модель.фит(Х, у)
... # определить модель model = Earth() # подобрать модель для всего набора данных model.fit(X, y) |
Затем мы можем вызвать функцию Predict() и передать новые входные данные, чтобы делать прогнозы.
... # сделать прогноз для одной строки данных yhat = model.predict([строка])
... # сделать прогноз для одной строки данных yhat = model.predict([row]) |
Ниже приведен полный пример подбора окончательной модели MARS и прогнозирования одной строки новых данных.
# сделать прогноз с помощью многомерных адаптивных регрессионных сплайнов для регрессии из sklearn.datasets импортировать make_regression от первого импорта Земли # определить набор данных X, y = make_regression (n_samples = 10000, n_features = 20, n_informative = 15, шум = 0,5, random_state = 7) # определить модель модель = Земля() # подгонять модель ко всему набору данных модель.подходит(Х, у) # определяем одну строку данных строка = [-0,6305395, -0.1381388, -1.23954844, 0.32992515, -0.36612979, 0.74962718, 0.21532504, 0.
424, -0.60309177, -1.46455027, -0.06788126, -0.30329357, -0.60350541, 0.1 2 3 4 5 6 7 8 9 10 11 12 13 5 0 5 0 9 0 9 0 0 0 0 0 9 0 9 0 | # сделать прогноз с помощью многомерных сплайнов адаптивной регрессии для регрессии 15, шум=0,5, случайное_состояние=7) # определить модель model = Earth() # подобрать модель для всего набора данных model.fit(X, y) # определить одну строку данных row = [-0.6305395, -0.1381388, -1.23954844, 0.32992515, -0.36612979, 0.74962718, 0.21532504, 0. 424, -0.60309177, -1.46455027, -0.06788126, -0.30329357, -0.60350541, 0.7369983, 0.21774321, -1.2365456, 0.69159078, -0.16074843, -1.39313206, 1.# сделать прогноз для одной строки данных yhat = model.predict([row]) # суммировать прогноз print('Предсказание: %d' % yhat[0]) |
Выполнение примера подгоняет модель MARS по всем доступным данным, а затем делает один регрессионный прогноз.
Прогноз: -393
Прогноз: -393 |
Дополнительное чтение
В этом разделе содержится больше ресурсов по теме, если вы хотите углубиться.
Бумаги
- Сплайны многомерной адаптивной регрессии, 1991.
- Введение в сплайны многомерной адаптивной регрессии, 1995.
Книги
- Раздел 9.4 MARS: Многомерные адаптивные регрессионные сплайны, Элементы статистического обучения, 2016.
- Раздел 7.2 Сплайны многомерной адаптивной регрессии, Прикладное прогнозное моделирование, 2013.
API
- Проект py-earth, GitHub.
- Py-земляная документация.
- sklearn.datasets.make_regression API.
Артикул
- Сплайн многомерной адаптивной регрессии, Википедия.
- Покусочно, Википедия.
Сводка
В этом руководстве вы узнали, как разрабатывать модели сплайнов многомерной адаптивной регрессии в Python.
В частности, вы узнали:
- Алгоритм MARS для многомерных задач прогнозного моделирования нелинейной регрессии.
- Как использовать API-интерфейс py-earth для разработки моделей MARS, совместимых с scikit-learn.
- Как оценивать и делать прогнозы с помощью моделей MARS для задач регрессионного прогнозного моделирования.
Есть вопросы?
Задавайте свои вопросы в комментариях ниже, и я сделаю все возможное, чтобы ответить.
Познакомьтесь с современным ансамблевым обучением!
Улучшите свои прогнозы за считанные минуты
...с помощью всего нескольких строк кода Python
Discover how in my new Ebook:
Ensemble Learning Algorithms With Python
It provides self-study tutorials with full working code on:
Stacking , Voting , Boosting , Bagging , Смешивание , Супер Ученик , и многое другое.