В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Ghostremel
Ghostremel
09.07.2021 12:43 •  Информатика

#Питон #Python #K-means, К-средние Нужно написать алгоритм k-means для сортировки сгенерированных данных в питоне.
Перед этим заданием нужно было просто реализовать алгоритм в питоне. 1.Нужно было сгенерировать данные с функции random
2.выбрать два центра случайным образом
3.создать два начальных класса
4.Затем найти новые центры и перераспределить точки в соответствии с ними.
(это задание уже выполнено смотри код внизу)

Теперь нужно преобразовать код так, чтобы для класса была только одна переменная-список, то же самое касается центров и расстояний. То есть вместо distance1, distance2, должна быть только одна переменная distances (и для других тоже: classes, centers). Должен получиться код, в котором мы задаем только количество классов, а не создаем для каждого класса переменную.
Как нам объясняли, должно быть что-то типа такого:
k=3
centers = [ ]
for i in range(k):
centers[i]= points [random.randint(1, len(points)]

Всю эту красоту надо вывести на экран с matplotlib
Вот такой код надо преобразовать, или написать новый:

import matplotlib.pyplot as plt
import random
def main():
min_distance = 0.01
distance_center_1 = 10
distance_center_2 = 10
points = [(random.randint(1, 10), random.randint(1, 10)) for i in range(50)] + [(random.randint(15, 25), random.randint(15, 25)) for i in range(50)]
выбрать два центра случайным образом
class_center_1 = points[random.randint(1, len(points))]
class_center_2 = points[random.randint(1, len(points))]

i=0
while (distance_center_1 > min_distance) and (distance_center_2 > min_distance):
print(i)
class_1 = []
class_2 = []
pass
for e in range(len(points)):
distance_1 = euclidian_dist(class_center_1, points)
distance_2 = euclidian_dist(class_center_2, points)
if distance_1 <= distance_2:
class_1.append(points[e])
else:
class_2.append(points[e])
new_class_center_1 = get_centroid(class_1)
new_class_center_2 = get_centroid(class_2)

#расстояние между старым и новым центрами
distance_center_1 = euclidian_dist(class_center_1, new_class_center_1)
distance_center_2 = euclidian_dist(class_center_2, new_class_center_2)
class_center_1 = new_class_center_1
class_center_2 = new_class_center_2
plt.plot([p[0] for p in class1], [p[1] for p in class1], 'ro')
plt.plot([p[0] for p in class2], [p[1] for p in class2], 'go')
plt.show()
i += 1
plt.plot([p[0] for p in class1], [p[1] for p in class1], 'ro')
plt.plot([p[0] for p in class2], [p[1] for p in class2], 'go')
plt.show()

def euclidian_dist(p1, p2):
return ((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2) ** (1 / 2)

def get_centroid(cluster):
centroids_id = [0,0]
for e in cluster:
centroids_id[0]= centroids_id [0]+ e[0]
centroids_id[1] = centroids_id[1] + e[1]
pass
centroids_id[0] = centroids_id[0]/len(cluster)
centroids_id[1] = centroids_id[1] /len(cluster)
return centroids_id

Показать ответ
Ответ:
Lopsiwk
Lopsiwk
29.11.2020 13:44
1. Страница — одна сторона листа (или листа) из бумаги, пергамента или другого материала (или электронных средств массовой информации) в книге, журнале, газете, или другой набор листов, на которых текст или иллюстрации могут быть напечатаны, написаны или нарисованы, для создания документов.
2. Протокол передачи данных — набор определённых правил или соглашений интерфейса логического уровня, который определяет обмен данными между различными программами.
3. Web-страница - гипертекстовый документ в интернете
4. Гиперте́кст — термин, обозначающий систему из текстовых страниц, имеющих перекрёстные ссылки, составленные как по вертикали, так и по горизонтали.
5. Провайдер— организация, предоставляющая услуги доступа к сети Интернет и иные связанные с Интернетом услуги.
6. Телевизор, телевизионный приёмник — приёмник телевизионных сигналов изображения и звукового сопровождения, отображающий их на экране и с динамиков.
7. Сайт, или веб-сайт— одна или несколько логически связанных между собой веб-страниц; также место расположения контента сервера.
0,0(0 оценок)
Ответ:
leonde
leonde
27.04.2022 16:38

первое задание:  1. Необходимо следить за адресами, на которые ведут ссылки. Для того чтобы узнать адрес, на который ведет ссылка необходимо просто навести на нее курсор. Если вам предлагают перейти на сайт Х, а ссылка ведет на сайт Y то тут что-то не так. Возможно, вас пытаются обмануть.

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

3. Не переходите по незнакомым ссылкам, которые приходят вам на почту, в «аську», или в социальные сети. Даже если ссылка пришла от знакомого человека необходимо быть максимально внимательным. Вполне возможно аккаунт вашего знакомого уже взломан, и теперь от его имени рассылают вирусы.

4. Не скачивайте неизвестные файлы, пришедшие вам на почту или в «аську», даже если файл пришел от вашего знакомого. Перед тем как скачивать такие файлы уточните у отправителя, что это за файл.

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

2 задание 1  Длина пароля. Пароль должен содержать не менее 8 символов, а лучше – 10 и более.

2 Наличие цифр и букв верхнего и нижнего регистров, идущих не подряд – .

3 Наличие специальных знаков – «@», «$», «&» и т.д. (если допустимо их присутствие).

пример [email protected]

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота