Добавил:
Ученье свет а не ученье бутылки собирать Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СР7

.docx
Скачиваний:
1
Добавлен:
28.12.2023
Размер:
346.75 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение

высшего образования

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Инженерная школа новых производственных технологий

Направление подготовки: 12.03.02 Оптотехника

ООП: Оптико-электронные приборы и системы

САМОСТОЯТЕЛЬНАЯ РАБОТА №7

дисциплина "Основы программирования на Python"

Выполнила:

студентка группы

Проверил:

преподаватель _________________ В. Петровский

Томск - 2023

ЦЕЛЬ РАБОТЫ: обрести навыки реализации алгоритмов машинного обучения.

ЗАДАНИЕ:

  1. Создать или загрузить таблицу с данными для аппроксимации и прогноза. Постарайтесь подобрать данные, связанные с вашей основной специальностью или научной работой.

  2. Построить три различных аналитических графика с помощью библиотеки matplotlib.

  3. Написать функции, вычисляющие коэффициенты m и c линейной регрессии методом наименьших квадратов, по загруженным/созданным данным.

  4. Вывести линию тренда, полученную с помощью МНК.

  5. Расширить список значений x и спрогнозировать значения y с помощью полученной линии тренда. Результат отобразить на отдельном графике.

ХОД РАБОТЫ

  1. Импорт библиотек:

  • pandas используется для удобной работы с данными в табличном виде.

  • matplotlib.pyplot применяется для визуализации данных.

  • numpy полезен для численных вычислений, особенно работы с массивами.

  1. Создание данных: создается словарь data, содержащий два списка: углы поворота барабана и соответствующие им длины волн.

  1. DataFrame и вывод данных: из словаря data формируется DataFrame с помощью Pandas и выводится на печать. DataFrame — это структура данных Pandas, которая представляет собой таблицу с данными.

  1. Визуализация данных: используем Matplotlib для создания ряда визуализаций:

  • Линейный график plt.figure(1): строит зависимость длины волны от угла поворота барабана.

  • Точечная диаграмма plt.figure(2): отображает каждую пару данных как отдельную точку на плоскости.

  • Столбчатая диаграмма plt.figure(3): каждая пара данных отображается в виде столбца.

В каждой визуализации указываются оси с подписями и заголовок графика.

  1. Вычисление коэффициентов линейной регрессии: функция calculate_linear_registration_coefficients(x, y) используется для вычисления коэффициентов линейной регрессии (наклон m и перехват c). Эти коэффициенты используются для построения линии тренда.

  1. Построение линии тренда и прогноза значений:

  • Линия тренда рассчитывается как m * x + c и отображается на графике (красная сплошная линия plt.figure(4)).

  • Для прогнозирования значений вне диапазона входных данных используется extended_x, который создается с помощью np.arange.

  • Прогнозируемые значения predicted_y рассчитываются и отображаются как пунктирная линия. Оригинальные данные помечены кружками.

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

РЕЗУЛЬТАТЫ: в данной работе был реализован код, который выполняет несколько аналитических и визуализационных задач с использованием Python и его библиотек Pandas, Matplotlib и Numpy.

Также были получены навыки работы с данными в Pandas: изучение создания и манипуляции DataFrame, что является ключевым навыком для анализа данных в Python, получением опыта в создании различных типов графиков — линейных, точечных, столбчатых, пониманием основ рассчета коэффициентов линейной регрессии и их использование для прогнозирования, расширением набора данных с помощью Numpy и применение вычисленной линейной модели для прогнозирования значений за пределами исходного набора данных.

Соседние файлы в предмете Основы программирования