Я поставила перед собой задачу: произвести расчетные данные в среде программирования Python. В качестве примера я решила использовать прогнозирование заболеваемости бронхиальной астмой.
Методы и приёмы, использованные в работе: наблюдение, компьютерный эксперимент, исследовательский способ, изучение и анализ научной литературы, моделирование, визуальная реализация данной темы.
Актуальность
Человеку свойственно желание заглянуть в будущее. Это обусловлено тем, что вся наша жизнь связана с выбором решений, а правильный выбор нельзя сделать, не предвидя всех его желательных и нежелательных последствий. Будущее во многом становится предсказуемым, если правильно и полно учитываются сложившаяся ситуация, факторы и тенденции, способствующие ее изменению в перспективе. Видение перспектив и способность предугадывать события позволяют своевременно принимать превентивные меры и избегать нежелательных результатов.
Роль прогнозирования неизменно возрастает в связи с ускорением научно-технического прогресса, усложнением задач управления, переходом здравоохранения на систему бюджетирования, ориентированного на результат. Прогнозирование используется почти во всех сферах жизни людей: от социологии и медицины до экономики и финансов.
Вложение | Размер |
---|---|
proekt_metody_prognozirovaniya_v_python_prezentatsiya_1.pptx | 1.44 МБ |
Слайд 1
Проект «Методы прогнозирования в Python . Получение регрессионных моделей». Подготовила Мамукова Камилла Казбековна, МАУ ДО «ЦДО г. Владикавказа Центр развития творчества одаренных детей и юношества «Интеллект», ученица 10 класса , МБОУ СОШ №22 Научный руководитель: Подова Анна Николаевна , педагог МАУ ДО ЦОД Центр «Интеллект», учитель информатики МБОУ СОШ №22Слайд 2
Аннотация Я поставила перед собой задачу: произвести расчетные данные в среде программирования Delphi . В качестве примера я решила использовать прогнозирование заболеваемости бронхиальной астмой . Методы и приёмы, использованные в работе: наблюдение, компьютерный эксперимент, исследовательский способ, изучение и анализ научной литературы, моделирование, визуальная реализация данной темы.
Слайд 3
Актуальность Будущее во многом становится предсказуемым, если правильно и полно учитываются сложившаяся ситуация, факторы и тенденции, способствующие ее изменению в перспективе. Роль прогнозирования неизменно возрастает в связи с ускорением научно-технического прогресса. Прогнозирование используется почти во всех сферах жизни людей: от социологии и медицины до экономики и финансов.
Слайд 4
Цели и задачи Цели проекта : 1. Освоение способов построения по данным из файла регрессионной модели нескольких типов (линейная, полиномиальная, экспоненциальная) и использования графических возможностей языка программирования Python ; 2. Освоение приемов прогнозирования количественных характеристик системы по регрессионной модели путем восстановления значений и методом наименьших квадратов . Задачи проекта: 1 . Научиться пользоваться возможностями языка программирования Python ; 2 . Научиться использовать данные из файла; 3. Научиться пользоваться библиотеками и их функциями в среде Python ; 4. Получить вариант регрессионной модели (графического тренда) и построить график зависимости заболеваемости бронхиальной астмой от концентрации угарного газа в атмосфере; 5. Выполнить прогнозирование заболеваемости бронхиальной астмой при данной концентрации угарного газа методом наименьших квадратов.
Слайд 5
Прогнозирование Прогнозирование по своей сути означает предвидение и основано на познании законов природы, общества, человеческого мышления. В зависимости от степени конкретизации и характера воздействия на ход исследуемых процессов (объектов) различают гипотезу и прогноз. Прогноз по сравнению с гипотезой более определен и достоверен, имеет качественные и количественные параметры. В то же время прогноз вероятностен и многовариантен, что обусловлено наличием неопределенностей в отображаемой им в будущем действительности.
Слайд 6
Регрессионный анализ и прогнозирование Регрессионный анализ — это набор статистических методов оценки отношений между переменными. Его можно использовать для оценки степени взаимосвязи между переменными и для моделирования будущей зависимости.
Слайд 7
Линейная регрессия Линейная регрессия — регрессионная модель зависимости одной переменной y от другой x с линейной функцией зависимости . Формула регрессии: y = 𝛽₀ + 𝛽₁x₁ + ⋯ + 𝛽ᵣxᵣ + 𝜀 , где 𝛽₀, 𝛽₁, …, 𝛽 ᵣ – коэффициенты регрессии, и 𝜀 – случайная ошибка.
Слайд 8
Аппроксимация линейной функцией Аппроксимация заключается в отыскании коэффициентов b0 и b1 уравнения таких, чтобы все экспериментальные точки лежали наиболее близко к аппроксимирующей прямой. С этой целью и используется метод наименьших квадратов (МНК): сумма квадратов отклонений значения точки от аппроксимирующей точки принимает минимальное значение: Решение поставленной задачи сводится к нахождению экстремума указанной функции двух переменных. С этой целью находятся частные производные функции по коэффициентам a и b и приравниваются к нулю.
Слайд 9
Аппроксимация линейной функцией Решается полученная система уравнений: Определяются значения коэффициентов:
Слайд 10
Аппроксимация линейной функцией Тогда значения коэффициентов будут определены как где SS xy — сумма перекрестных отклонений y и x : и SS xx — сумма квадратов отклонений x:
Слайд 11
Аппроксимация линейной функцией
Слайд 12
Алгоритмизация линейной регрессии Чтобы использовать полученные формулы в программе, я пользовалась набором библиотек numpy и matplotlib. На языке Python формулы аппроксимации можно представить следующим образом : 1.Вычисление среднего значение вектора x и y: mean_x , mean_y = np.mean (x), np.mean (y) 2. Вычисление перекрестного отклонения значений x и y: ss_xy = np.sum (y*x – n* mean_y * mean_x ) ss_xx = np.sum (x*x – n* mean_x * mean_x ) 3. Вычисление коэффициентов регрессии: b1 = ss_xy / ss_xx b0 = mean_y – b1* mean_x 4. Вычисление значений аппроксимирующей функции: b = estimate_coeffficients (x, y) y_pred = b[0]+b[1]*x 5. Построение регрессии на графике: plt.plot (c, p, color = 'black')
Слайд 13
Прогнозирование линейной регрессией Чтобы прогнозировать данные, введенные пользователем, значения независимой переменной подставляются в формулы. Полученные значения зависимой переменной и есть прогнозированные значения функции. 1. Ввод пользователем значения независимой переменной (концентрации угарного газа): x1 = int ( input ()) 2. Подстановка введенного значения в формулу, с полученными ранее коэффициентами: y1 = b[0]+b[1]*x1 3. Отображение прогнозируемого значения на графике: plt.scatter (x1, y1, color = 'r', marker = 'o', s = 15)
Слайд 14
Полиномиальная регрессия Полиномиальная регрессия — это форма линейной регрессии, в которой взаимосвязь между независимой переменной x и зависимой переменной y моделируется как полином n-й степени. Полиномиальные тренды в основном используются для определения или описания нелинейного явления, такого как: • Скорость роста тканей; • Прогрессирование эпидемий болезней; • Распределение изотопов углерода в озерных отложениях. В общем виде мы можем смоделировать формулу для n- го значения как: y = a + b1x + b2x ^ 2 +…+ bnx ^ n
Слайд 15
Аппроксимация полиномиальной функцией Исходные данные задаются двумя списками : где n ─ количество данных в списках. Получим функцию для определения коэффициентов: Коэффициенты a, b находятся из следующей системы уравнений: Для нахождения значений аппроксимации полиномиальной функцией в Python используется функция polyfit .
Слайд 16
Алгоритмизация полиномиальной регрессии Функция p = polyfit (x, y, n) находит коэффициенты полинома p(x) степени n, который аппроксимирует функцию y(x) в смысле метода наименьших квадратов. Выходом является строка p длины n +1, содержащая коэффициенты аппроксимирующего полинома. На языке Python нахождение коэффициентов полиномиальной регрессии можно представить следующим образом: 1.Ввод значений x и y; 2.Подгонка регрессии и вычисление коэффициентов: model = np.polyfit (x, y, n), где n – степень полинома.
Слайд 17
Алгоритмизация полиномиальной регрессии Для прогнозирования значений функции polyfit используется функция poly1d. На языке Python алгоритм прогнозирования можно представить следующим образом: 1.Получение модели прогнозирования: predict = np.poly1d( model ) 2.Ввод пользователем значения независимой переменной (концентрации угарного газа): x1 = int ( input ()) 3.Расчет прогнозируемого значения: y_pred = predict (x1)
Слайд 18
Экспоненциальная регрессия При аппроксимации исходных данных в соответствии с методом наименьших квадратов в качестве аппроксимирующей функции иногда используют логарифмическую функцию, экспоненциальную функцию и степенную функцию. Рассмотрим случай, когда аппроксимирующая функция задана экспоненциальной функцией вида: Для применения метода наименьших квадратов экспоненциальная функция линеаризуется: Поиск неизвестных коэффициентов осуществляется по методу наименьших квадратов в соответствии со следующей системой уравнений:
Слайд 19
Экспоненциальная регрессия Коэффициенты аппроксимирующей функции в аналитическом виде определяются следующим образом:
Слайд 20
Этапы работы программы I. Получение регрессионной модели. 1.Ввести в два текстовых файла данные зависимости заболеваемости бронхиальной астмой от концентрации угарного газа в атмосфере. 2.Перенести данные из файлов в массивы. 3.Вычислить коэффициенты регрессии. 4.Получить исходные точки на графике. 5.Отобразить линию регрессии на графике. II. Прогнозирование. 1. Ввести количественное значение концентрации угарного газа. 2. Выполнить прогнозирование заболеваемости при данной концентрации угарного газа, воспользовавшись линейной, полиномиальной, экспоненциальной зависимостью. 3. Округлить полученное значение числа больных при данной концентрации. 4. Отобразить полученное число. 5. Построить точку, отображающую значение получившегося числа на графике.
Слайд 21
Инструкция к программе 1.Считывание информации из текстового файла при необходимости предварительного создания новых (значение концентрации угарного газа и заболеваемости людей). 2.Ввести значение концентрации угарного газа для прогнозирования количества больных. Данные концентрации угарного газа (мг/м³) Данные числа больных астмой на 1 тыс жителей
Слайд 28
Вывод 1.Я научилась использовать свойства разных объектов программы, освоила способы построения по данным из файла регрессионной модели и использования графических возможностей языка программирования Python , a также приемы прогнозирования количественных характеристик системы по регрессионной модели методом наименьших квадратов. 2.Я научилась использовать данные из файла в программе; 3.Я получила варианты регрессионной модели (графического тренда) и научилась строить график зависимости двух величин; В будущей перспективе моего проекта я бы хотела провести прогнозирование данных экспоненциальной регрессией
Слайд 29
Литература 1.https ://www.amherst.edu/system/files/media/1287/SLR_Leastsquares.pdf 2.Угринович Н.Д. Информатика и ИКТ. Профильный уровень: учебник для 11 класса 3.http ://espressocode.top/python-implementation-of-polynomial-regression/
Есть в осени первоначальной...
Смекалка против Змея-Горыныча
Никто меня не любит
Как нарисовать лимон акварелью
Сказка "Колосок"