СР7
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение
высшего образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Инженерная школа новых производственных технологий
Направление подготовки: 12.03.02 Оптотехника
ООП: Оптико-электронные приборы и системы
САМОСТОЯТЕЛЬНАЯ РАБОТА №7
дисциплина "Основы программирования на Python"
Выполнила:
студентка группы
Проверил:
преподаватель _________________ В. Петровский
Томск - 2023
ЦЕЛЬ РАБОТЫ: обрести навыки реализации алгоритмов машинного обучения.
ЗАДАНИЕ:
Создать или загрузить таблицу с данными для аппроксимации и прогноза. Постарайтесь подобрать данные, связанные с вашей основной специальностью или научной работой.
Построить три различных аналитических графика с помощью библиотеки matplotlib.
Написать функции, вычисляющие коэффициенты m и c линейной регрессии методом наименьших квадратов, по загруженным/созданным данным.
Вывести линию тренда, полученную с помощью МНК.
Расширить список значений x и спрогнозировать значения y с помощью полученной линии тренда. Результат отобразить на отдельном графике.
ХОД РАБОТЫ
Импорт библиотек:
pandas используется для удобной работы с данными в табличном виде.
matplotlib.pyplot применяется для визуализации данных.
numpy полезен для численных вычислений, особенно работы с массивами.
Создание данных: создается словарь data, содержащий два списка: углы поворота барабана и соответствующие им длины волн.
DataFrame и вывод данных: из словаря data формируется DataFrame с помощью Pandas и выводится на печать. DataFrame — это структура данных Pandas, которая представляет собой таблицу с данными.
Визуализация данных: используем Matplotlib для создания ряда визуализаций:
Линейный график plt.figure(1): строит зависимость длины волны от угла поворота барабана.
Точечная диаграмма plt.figure(2): отображает каждую пару данных как отдельную точку на плоскости.
Столбчатая диаграмма plt.figure(3): каждая пара данных отображается в виде столбца.
В каждой визуализации указываются оси с подписями и заголовок графика.
Вычисление коэффициентов линейной регрессии: функция calculate_linear_registration_coefficients(x, y) используется для вычисления коэффициентов линейной регрессии (наклон m и перехват c). Эти коэффициенты используются для построения линии тренда.
Построение линии тренда и прогноза значений:
Линия тренда рассчитывается как m * x + c и отображается на графике (красная сплошная линия plt.figure(4)).
Для прогнозирования значений вне диапазона входных данных используется extended_x, который создается с помощью np.arange.
Прогнозируемые значения predicted_y рассчитываются и отображаются как пунктирная линия. Оригинальные данные помечены кружками.
После выполнения кода, в результате будет отображено окно с четырьмя графиками различных типов, изображающих отношение между углом поворота барабана и длиной волны.
РЕЗУЛЬТАТЫ: в данной работе был реализован код, который выполняет несколько аналитических и визуализационных задач с использованием Python и его библиотек Pandas, Matplotlib и Numpy.
Также были получены навыки работы с данными в Pandas: изучение создания и манипуляции DataFrame, что является ключевым навыком для анализа данных в Python, получением опыта в создании различных типов графиков — линейных, точечных, столбчатых, пониманием основ рассчета коэффициентов линейной регрессии и их использование для прогнозирования, расширением набора данных с помощью Numpy и применение вычисленной линейной модели для прогнозирования значений за пределами исходного набора данных.