- •Лабораторная работа №1 разведочный анализ данных
- •Лабораторная работа №2 метод анализа иерархий
- •Лабораторная работа №3 группировка и агрегирование с помощью pandas
- •Лабораторная работа №4 регрессионный анализ
- •Лабораторная работа №5 программирование генетических алгоритмов на алгоритмическом языке python
- •Лабораторная работа №6 программирование лувенского алгоритма
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ВОЗДУШНОГО ТРАНСПОРТА ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ГРАЖДАНСКОЙ АВИАЦИИ» (МГТУ ГА)
|
Кафедра ВМКСС
ОТЧЁТ по выполнению лабораторных работ по дисциплине «Алгоритмы обработки и анализа больших данных»
Семестр 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()
Вывод:
