М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации

#Питон #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

👇
Открыть все ответы
Ответ:
ulzhan16061999
ulzhan16061999
03.12.2020
  var mas:array[0..9] of integer; 
 i,max,min,k:integer;
  arifm:real;
begin 
k:=0;
arifm:=0; 
 Randomize;
  for i:=0 to 9 do
  mas[i]:=Random(15);
  for i:=0 to 9 do 
 write(mas[i],'  '); 
 {poisk max} 
   max:=mas[0];
     for i:=1 to 9 do 
    if max<mas[i] then 
    max:=mas[i]; 
     {poisk min} 
   min:=mas[0]; 
   for i:=1 to 9 do 
    if min>mas[i] then 
    min:=mas[i];
     arifm:=(max+min)/2; 
    writeln('max: ',max); 
   writeln('min: ',min); 
    writeln('arifm: ',arifm:0:3); 
   for i:=0 to 9 do 
   if mas[i]<arifm then 
    inc(k); 
   writeln('k: ',k);
  readln;
end.
4,6(67 оценок)
Ответ:
elenka421
elenka421
03.12.2020

Сотовая связь, сеть подвижной связи — один из видов мобильной радиосвязи, в основе которого лежит сотовая сеть. Ключевая особенность заключается в том, что общая зона покрытия делится на ячейки (соты), определяющиеся зонами покрытия отдельных базовых станций (БС). Соты частично перекрываются и вместе образуют сеть. На идеальной (ровной и без застройки) поверхности зона покрытия одной БС представляет собой круг, поэтому составленная из них сеть имеет вид шестиугольных ячеек (сот).

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

4,5(79 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ