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

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ВОЗДУШНОГО ТРАНСПОРТА

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ

БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ ГРАЖДАНСКОЙ АВИАЦИИ» (МГТУ ГА)

Кафедра ВМКСС

ОТЧЁТ

по выполнению лабораторных работ по

дисциплине «Алгоритмы обработки и анализа больших данных»

Семестр III

Вариант № 16

Выполнила студентка группы ИС 2-1

Магальник Екатерина Борисовна

(Ф.И.О.)

Преподаватель:

__д.т.н., Профессор Егорова А.А._

(звание, степень, Ф.И.О.)

МОСКВА – 2023

Лабораторная работа №1 разведочный анализ данных

Целью лабораторной работы является освоение приемов:

  • обработки непрямоугольных и прямоугольных структур данных на алгоритмическом языке Python;

  • определения характеристик оценки центрального положения данных;

  • получения оценок вариабельности;

  • построения графиков оценок вариабельности средствами Python.

Задание на выполнение и ход лабораторной работы

Разработать программу на алгоритмическом языке Python, которая в соответствии с выданным вариантом. Вариант 16: пешие туристические походы

1. для трех признаков рассчитывает оценки центрального положения:

  • среднее значение,

  • среднее взвешенное,

  • медиану,

  • медиану взвешенную,

  • среднее усеченное.

Листинг программы:

import pandas as pd import numpy as np ex = pd.read_excel('list.xlsx') w = ex["Веса"] s2 = 0 wsum = w.sum() name = ex.columns k = 0 list = [] list2 = [] n = 0 for i in ex: list2 = [] for j in range(len(ex[i])): list2.append(ex[i][j]) list.append(list2) for i in ex: print("Среднее значение", name[k], ":", sum(ex[i]) // len(ex[i])) s = 0 for j in range(len(ex[i])): s = s + ((ex[i][j] * w[j]) // wsum) print("Среднее взвешенное", name[k], ":", s) srt = sorted(list[k]) mid = len(srt) // 2 if len(srt) % 2 == 0: print("Медиана", name[k], ":", (srt[mid - 1] + srt[mid]) // 2) if len(srt) % 2 != 0: print("Медиана", name[k], ":", srt[mid]) cumweight = ex["Веса"].cumsum() position = wsum / 2 print("Взвешенная медиана", name[k], ":", ex.loc[cumweight >= position, i].iloc[0]) delete = srt for j in range(2): delete.pop(j) delete.pop(len(srt) - 1 - j) print("Средне усеченное", name[k], ":", sum(delete) // (len(delete) - 4))

Вывод:

2. для трех признаков рассчитывает оценки вариабельности:

  • дисперсию,

  • стандартное отклонение,

  • медианное абсолютное отклонение от медианы,

  • размах,

  • процентиль для заданного веса.

Листинг программы:

import pandas as pd import numpy as np ex = pd.read_excel('list.xlsx') w = ex["Веса"] s2 = 0 wsum = w.sum() name = ex.columns k = 0 list = [] list2 = [] n = 0 for i in ex: list2 = [] for j in range(len(ex[i])): list2.append(ex[i][j]) list.append(list2) for i in ex:

ot = 0 for j in range(len(ex[i])): ot = ot + abs(ex[i][j] - (sum(delete) // (len(delete) - 4))) print("Абсолютное отклонение", name[k], ":", ot//len(ex[i])) print("Дисперсия", name[k], ":", ex[i].var()) print("Стандартное отклонение", name[k], ":", (ex[i].var())**(0.5)) print("Размах", name[k], ":", srt[len(srt) - 1] - srt[0]) print("Процентиль", name[k], ":", np.percentile(ex[i], w)) k = k + 1

Вывод:

3. Для двух признаков формирует частотную таблицу и строит гистограмму.

Листинг программы:

import pandas as pd import matplotlib.pyplot as math ex = pd.read_excel('list3.xlsx') a=ex["Место"] k1=0 k2=0 k3=0 k4=0 k5=0 k6=0 k7=0 k8=0 k9=0 k10=0 for i in range(len(ex["Место"])): if a[i]=="Владимир": k1+=1 if a[i]=="Калуга": k2+=1 if a[i]=="Коломна": k3+=1 if a[i]=="Ростов Великий": k4+=1 if a[i]=="Рязань": k5+=1 if a[i]=="Сергиев Посад": k6+=1 if a[i]=="Серпухов": k7+=1 if a[i]=="Старый Владимир": k8+=1 if a[i]=="Тверь": k9+=1 if a[i]=="Тула": k10+=1 list = [k1, k2, k3, k4, k5, k6, k7, k8, k9, k10] ox=["Владимир", "Калуга", "Коломна", "Ростов Великий", "Рязань", "Сергиев Посад", "Серпухов", "Старый Владимир", "Тверь", "Тула"] fig, m=math.subplots() m.bar(ox, list) m.set_ylabel("Количество") math.show()

Вывод:

4. Для категориальных данных:

  • рассчитывает моду и математическое ожидание;

  • строит диаграмму.

Листинг программы:

import pandas as pd import matplotlib.pyplot as math ex = pd.read_excel('list.xlsx') a=ex["Возраст"] k1=0 k2=0 k3=0 k4=0 k5=0 max=0 for i in range(len(ex["Возраст"])): if a[i]>=18 and a[i]<=25: k1+=1 if a[i]>=26 and a[i]<=35: k2+=1 if a[i]>=36 and a[i]<=45: k3+=1 if a[i]>=46 and a[i]<=65: k4+=1 if a[i]>=66: k5+=1 print("От 18 до 25:", k1) print("От 26 до 35:", k2) print("От 36 до 45:", k3) print("От 46 до 65:", k4) print("От 66 и больше:", k5) list=[k1, k2, k3, k4, k5] s=0 for i in range(len(list)): if list[i]>max: max=list[i] s+=s+list[i]*0.52 print("Мода:", max) print("Математическое ожидание:", s) ox=["От 18 до 25", "От 26 до 35", "От 36 до 45", "От 46 до 65", "От 66 и больше"] fig, m=math.subplots() m.bar(ox, list) m.set_ylabel("Количество") m.set_title("Статистика возраста в выборке") math.show()

Вывод:

5. Для двух зависимых переменных:

  • рассчитывает коэффициент корреляции;

  • выводит корреляционную матрицу;

  • строит диаграмму рассеяния.

Листинг программы:

import pandas as pd import matplotlib.pyplot as math ex = pd.read_excel('list2.xlsx') print(ex.corr()) ex.plot.scatter(x="Длительность маршрута, часы", y="Стоимость, 1 чел") math.show()

Вывод:

Соседние файлы в предмете Большие данные