Лабораторная работа по "Информатике"
Автор: М Глухов • Апрель 20, 2024 • Лабораторная работа • 710 Слов (3 Страниц) • 99 Просмотры
Глухов ПМИ-5 Лабораторная работа №4
Краткое описание алгоритма работы программы
- Функция get_similarity вычисляет значения переменных для более тонкой классификации объектов. A – число общих признаков объектов; H – число признаков, присутствующих у первого объекта и отсутствующих у второго; G – число признаков, присутствующих у второго объект и отсутствующих у первого; B – число признаков, которыми не обладают оба объекта.
- Функции russelrao, jacquardneedman, dice, sokalsniff, sokalmichener, kulzhinsky, ula – функции для вычисления сходства.
- Для всех возможных пар объектов вычисляем значения переменных, с их помощью находим значения всех функций сходства и выводим в консоль результат.
Текст программы
os_data = {
# Mandatory Access Contols, Open Source, Updates, Server, User-Friendly
"Windows": [1, 0, 1, 0, 1],
"Linux": [1, 1, 1, 1, 0],
"Unix": [1, 0, 0, 1, 0],
"FreeBSD": [1, 1, 1, 1, 0]
}
def get_similarity(item1, item2):
a = 0
h = 0
g = 0
b = 0
for item in zip(item1, item2):
if (item[0] == 1 and item[1] == 1): a += 1
if (item[0] == 1 and item[1] == 0): h += 1
if (item[0] == 0 and item[1] == 1): g += 1
if (item[0] == 0 and item[1] == 0): b += 1
return a, h, g, b
def russelrao(a, h, g, b):
return a / (a + h + g + b)
def jacquardneedman(a, h, g, b):
return a / (a + h + g)
def dice(a, h, g, b):
return a / (2 * a + h + g)
def sokalsniff(a, h, g, b):
return a / (a + 2 * (g + h))
def sokalmichener(a, h, g, b):
return (a + b) / (a + h + g + b)
def kulzhinsky(a, h, g, b):
try:
result = a / (g + h)
except ZeroDivisionError:
...