Как я группирую объекты в наборе близостью?

Это нелегко сделать (если не считать магию git filter-branch )

Если вы посмотрите « Настройка источника публикации для GitHub Pages » вместо этого вы должны создать свой сайт непосредственно в ветке gh-pages.

Или, вы можете остаться в ветке master, но создавать в папке docs/ вместо dist.

В обоих случаях страницы GitHub будут отображать этот контент.

Однако для Пользовательской страницы :

Если ваш сайт является страницей пользователя или организации, в которой есть хранилище с именем [115 ] или .github.io, вы не можете публиковать исходные файлы вашего сайта из разных мест.
Страницы пользователей и организаций, имеющие такое имя репозитория, публикуются только из ветки master .

blockquote>

В этом случае измените рабочий процесс:

  • создайте свой сайт в ветке dev,
  • создайте свой сайт в ветке master [ 1126]

Когда вы находитесь в ветке dev, вы можете объявить ветку master как подмодуль (см. Здесь для процедуры ), которая поэтому будет отображаться как «подпапка» (например, подпапка «dist», за исключением того, что подпапка фактически будет вашим тем же репозиторием Git в master)

Создайте свой сайт как обычно (в [ 1114]), перейдите в dist, добавьте, зафиксируйте и нажмите (эта подпапка, являющаяся подмодулем, она выдвинет связанную с ней ветвь: master)
Затем вернитесь в папку репозитория вашего проекта (родитель [ 1116], в настоящее время на ветке dev), добавить, зафиксировать и нажать (чтобы записать новое состояние подмодуля dist)

5
задан Gyan Veda 1 May 2015 в 21:25
поделиться

5 ответов

Вы могли попробовать алгоритм кластеризации k-средств.

10
ответ дан 18 December 2019 в 08:32
поделиться

Вы хотите векторное квантование:

http://en.wikipedia.org/wiki/Vector_quantization

"Это работает путем деления большого набора точек (векторы) на группы, имеющие приблизительно то же число очков, самое близкое к ним. Каждая группа представлена ее центроидной точкой, как в k-средствах и некоторых других алгоритмах кластеризации".

Здесь векторы являются географическими координатами каждого адреса, и можно подать алгоритмы с другими параметрами в зависимости от ограничений (близость, размер группы, количество групп...).

Можно запустить с k-средств, но на основе моего опыта базировался Voronoi, алгоритм более гибок. Хорошее введение здесь.

5
ответ дан 18 December 2019 в 08:32
поделиться
  1. Создайте матрицу расстояний между всеми адресами.
  2. Начиная со случайного адреса, отсортируйте матрицу по возрастающему расстоянию до того адреса
  3. При удалении адресов из матрицы, как Вы продвигаетесь, поместите адреса, самые близкие к начальному адресу в новую группу, пока Вы не достигаете своих критериев (размер группы или макс. расстояния).
  4. После того как группа полна, выберите другой случайный адрес и курорт матрица расстоянием до того адреса
  5. Продолжите как это, пока все адреса не будут вынуты из матрицы.

Если бы адреса были распределены равномерно, то у каждой группы была бы своего рода круговая форма вокруг начального адреса. Проблема возникает, когда начальные адреса являются близкими существующими группами. Когда это произойдет, новая группа отсортирует, переносят старый и мог даже окружить его полностью, если Ваши критерии остановки являются только размером группы. Если Вы используете макс. ограничение расстояний, то это не собирается происходить (принимающий никакие другие ограничения).

Я действительно не знаю - ли это хороший способ сделать его, но это - то, что я попробовал бы. Я уверен, что большая оптимизация требовалась бы. Специально для адресов на краях.

1
ответ дан 18 December 2019 в 08:32
поделиться

"N группы" и "M адреса на группу" ограничения являются взаимоисключающими. Каждый подразумевает другой.

1
ответ дан 18 December 2019 в 08:32
поделиться

Это зависит немного от масштаба данных, которые Вы желаете кластеризировать. Метод решения "в лоб" состоит в том, чтобы вычислить расстояние между всей комбинацией точек в массив расстояния. Полученный массив является N^2 и так как расстояние от до B совпадает с B к Вам, только нуждаются в половине их, таким образом, получающийся набор является N^2/2.

Для относительно близкого lat lon координаты можно иногда сходить с рук использование lat долго как x, y сетка и вычисление Декартова расстояния. Так как реальный мир не является плоским, Декартово расстояние будет иметь ошибку. Для более точного вычисления, которое необходимо использовать, если адреса расположены по всей стране, см. эту ссылку из Mathforum.com.

Если у Вас не будет масштаба для обработки всей матрицы расстояния, то необходимо будет сделать некоторое программирование алгоритма для увеличения эффективности.

2
ответ дан 18 December 2019 в 08:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: