Линейная регрессия на Python: объясняем на пальцах |
||||||||||||||||||||||||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-04-25 22:00 Линейная регрессия применяется для анализа данных и в машинном обучении. Постройте свою модель на Python и получите первые результаты! Регрессия ищет отношения между переменными. Для примера можно взять сотрудников какой-нибудь компании и понять, как значение зарплаты зависит от других данных, таких как опыт работы, уровень образования, роль, город, в котором они работают, и так далее. Регрессия решает проблему единого представления данных анализа для каждого работника. Причём опыт, образование, роль и город – это независимые переменные при зависимой от них зарплате. Таким же способом можно установить математическую зависимость между ценами домов в определённой области, количеством комнат, расстоянием от центра и т. д. Регрессия рассматривает некоторое явление и ряд наблюдений. Каждое наблюдение имеет две и более переменных. Предполагая, что одна переменная зависит от других, вы пытаетесь построить отношения между ними. Другими словами, вам нужно найти функцию, которая отображает зависимость одних переменных или данных от других. Зависимые данные называются зависимыми переменными, выходами или ответами. Независимые данные называются независимыми переменными, входами или предсказателями. Обычно в регрессии присутствует одна непрерывная и неограниченная зависимая переменная. Входные переменные могут быть неограниченными, дискретными или категорическими данными, такими как пол, национальность, бренд, etc. Общей практикой является обозначение данных на выходе – ?, входных данных – ?. В случае с двумя или более независимыми переменными, их можно представить в виде вектора ? = (??, …, ??), где ? – количество входных переменных. Регрессия полезна для прогнозирования ответа на новые условия. Можно угадать потребление электроэнергии в жилом доме из данных температуры, времени суток и количества жильцов. Где она вообще нужна? Регрессия используется во многих отраслях: экономика, компьютерные и социальные науки, прочее. Её важность растёт с доступностью больших данных. Линейная регрессия – одна из важнейших и широко используемых техник регрессии. Эта самый простой метод регрессии. Одним из его достоинств является лёгкость интерпретации результатов. Постановка проблемы Линейная регрессия некоторой зависимой переменной ? на набор независимых переменных ? = (??, …, ??), где ? – это число предсказателей, предполагает, что линейное отношение между ? и ?: ? = ?? + ???? + ? + ???? + ?. Это уравнение регрессии. ??, ??, …, ?? – коэффициенты регрессии, и ? – случайная ошибка. Линейная регрессия вычисляет оценочные функции коэффициентов регрессии или просто прогнозируемые весы измерения, обозначаемые как ??, ??, …, ??. Они определяют оценочную функцию регрессии ?(?) = ?? + ???? + ? + ????. Эта функция захватывает зависимости между входами и выходом достаточно хорошо. Для каждого результата наблюдения ? = 1, …, ?, оценочный или предсказанный ответ ?(??) должен быть как можно ближе к соответствующему фактическому ответу ??. Разницы от ?? ? ?(??) для всех результатов наблюдений ? = 1, …, ? называются остатками. Регрессия определяет лучшие прогнозируемые весы измерения, которые соответствуют наименьшим остаткам. Для получения лучших весов, вам нужно минимизировать сумму остаточных квадратов (SSR) для всех результатов наблюдений ? = 1, …, ?: SSR = ??(?? ? ?(??))?. Этот подход называется методом наименьших квадратов. Простая линейная регрессия Простая или одномерная линейная регрессия – случай линейной регрессии с единственной независимой переменной ? = ?. А вот и она: Реализация простой линейной регрессии начинается с заданным набором пар (зелёные круги) входов-выходов (?-?). Эти пары – результаты наблюдений. Наблюдение, крайнее слева (зелёный круг) имеет на входе ? = 5 и соответствующий выход (ответ) ? = 5. Следующее наблюдение имеет ? = 15 и ? = 20, и так далее. Оценочная функция регрессии (чёрная линия) выражается уравнением ?(?) = ?? + ???. Нужно рассчитать оптимальные значения спрогнозированных весов ?? и ?? для минимизации SSR и определить оценочную функцию регрессии. Величина ??, также называемая отрезком, показывает точку, где расчётная линия регрессии пересекает ось ?. Это значение расчётного ответа ?(?) для ? = 0. Величина ?? определяет наклон расчетной линии регрессии. Предсказанные ответы (красные квадраты) – точки линии регрессии, соответствующие входным значениям. Для входа ? = 5 предсказанный ответ равен ?(5) = 8.33 (представленный крайним левыми квадратом). Остатки (вертикальные пунктирные серые линии) могут быть вычислены как ?? ? ?(??) = ?? ? ?? ? ???? для ? = 1, …, ?. Они представляют собой расстояния между зелёными и красными пунктами. При реализации линейной регрессии вы минимизируете эти расстояния и делаете красные квадраты как можно ближе к предопределённым зелёным кругам. Пришло время реализовать линейную регрессию в Python. Всё, что вам нужно, – подходящие пакеты, функции и классы. Пакеты Python для линейной регрессии NumPy – фундаментальный научный пакет для быстрых операций над одномерными и многомерными массивами. Он облегчает математическую рутину и, конечно, находится в open-source. Незнакомы с NumPy? Начните с официального гайда. Пакет scikit-learn – это библиотека, широко используемая в машинном обучении. Она предоставляет значения для данных предварительной обработки, уменьшает размерность, реализует регрессию, классификацию, кластеризацию и т. д. Находится в open-source, как и NumPy. Начните знакомство с линейными моделями и работой пакета на сайте scikit-learn. Простая линейная регрессия со scikit-learn Начнём с простейшего случая линейной регрессии. Следуйте пяти шагам реализации линейной регрессии:
Это общие шаги для большинства подходов и реализаций регрессии. Шаг 1: Импортируйте пакеты и классы Первым шагом импортируем пакет NumPy и класс Python
Теперь у вас есть весь функционал для реализации линейной регрессии. Фундаментальный тип данных NumPy – это тип массива Класс Шаг 2 : Предоставьте данные Вторым шагом определите данные, с которыми предстоит работать. Входы (регрессоры, ?) и выход (предсказатель, ?) должны быть массивами (экземпляры класса Python
Теперь у вас два массива: вход x и выход y. Вам нужно вызвать Вот как x и y выглядят теперь: Python
Шаг 3: Создайте модель На этом шаге создайте и приспособьте модель линейной регрессии к существующим данным. Давайте сделаем экземпляр класса Python
Эта операция создаёт переменную
Наш пример использует состояния параметров по умолчанию. Пришло время задействовать Python
С помощью Python
Эта операция короче и делает то же, что и две предыдущие. Шаг 4: Получите результаты После совмещения модели нужно убедиться в удовлетворительности результатов для интерпретации. Вы можете получить определения (??) с помощью Python
Python
Код выше показывает, как получить ?? и ??. Заметьте, что Примерное значение ?? = 5.63 показывает, что ваша модель предсказывает ответ 5.63 при ?, равным нулю. Равенство ?? = 0.54 означает, что предсказанный ответ возрастает до 0.54 при ?, увеличенным на единицу. Заметьте, что вы можете предоставить y как двумерный массив. Тогда результаты не будут отличаться: Python
Как вы видите, пример похож на предыдущий, но в данном случае Шаг 5: Предскажите ответ Когда вас устроит ваша модель, вы можете использовать её для прогнозов с текущими или другими данными. Получите предсказанный ответ, используя Python
Применяя Вот почти идентичный способ предсказать ответ: Python
В этом случае вы умножаете каждый элемент массива x с помощью Вывод отличается от предыдущего примера количеством измерений. Теперь предсказанный ответ – это двумерный массив, в отличии от предыдущего случая, в котором он одномерный. Измените количество измерений x до одного, и увидите одинаковый результат. Для этого замените x на На практике модель регрессии часто используется для прогнозов. Это значит, что вы можете использовать приспособленные модели для вычисления выходов на базе других, новых входов: Python
Здесь О Теперь у вас есть своя модель линейной регрессии! Источник: proglib.io Комментарии: |
|||||||||||||||||||||||||