?

Log in

No account? Create an account

Предыдущий пост Поделиться Следующий пост
Техфайл
Веселый
chispa1707
Для желающих лично оценить масштабы сортировочной проблемы, выкладываю техфайл.
Эксель-2007. https://my-files.ru/qwyi0r
Данные позже 1852 года можно и удалить, там все ясно.

Первичная задача: установить число совпадений разных индексов год в год.
Позже можно опробовать и со сдвижкой в 1-5 лет.
Здесь у меня пять вариантов: индексы типа события в разных сочетаниях с индексами места.
"Штаты" - территории учтены до уровня штатов (областей), там, где они указаны.
"Регионы" - территории укрупнены до регионов типа "Западная Сибирь", это тоже имеет свой смысл.
Если бы сортировка шла быстро, я бы обкатал все пять вариантов.
***
Сам я сейчас усиленно поправляю индексы в базе.
***
Размещаю свой рабочий файл здесь: https://my-files.ru/em9hqo
Все получилось, но этот путь ужасно трудоемкий.

  • 1
без разбивки по регионам

ссылка

а вообще формат исходного файла туманный, что как понятно с трудом

Edited at 2018-10-13 20:58 (UTC)

с регионами, колонку с запятыми правда выбрал
ссылка

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

В случае объединения с регионами таблица будет еще более громоздкой.

Я поступил так:
Сделал сводную таблицу: в строках слева годы, в столбцах наверху индексы, на пересечении - числовое значение. Очищаю до единицы, - важен сам факт, что в этом году индекс есть.
После этого годы не нужны. Имеет значение только то, какие индексы встречаются в одной строке. Строк много, и в итоге я подвел сумму, какой индекс с какими индексами сколько раз встретился в одной строке. Поскольку взял немного индексов, 85, управился за двое суток. Но, понятно, что если брать все 879 индексов, процесс продлится, моими темпами ориентировочно - 5 лет )

Не знаю, зачем Вам эта разреженная матрица, в ней ровно та же информация, что и в "длинном" файле, только работать с ней тяжелее. Одно в другое переводится секунд за 10.
29548 строк на 873 колонки

ссылка


Спасибо!
Размещаю свой рабочий файл здесь: https://my-files.ru/em9hqo
Исходные две колонки на листе "3 столбца".
Я их чуток сократил (до 822-1852 лет) и получил таблицу на листе "Основа"
Совпадения вывожу на лист 822-1852. Здесь можно сделать и со сдвижкой на любое число лет.
Суммирую итог отдельно на нижней строке.
Сумму транспонирую и поочередно вывожу либо на лист СВОДНАЯ, либо (если со сдвигом в год) на лист СВОДНАЯ2
Проценты совпадений считаю на листе Проценты либо на листе Проценты 2
На листе Итог 1 - в форме столбцов результат
Получаю такую форму через объединение данных из таблиц с процентами через СВ1 и СВ2
В итоге получаю листы 01 и 02
Обе они в приемлемой форме на листе Общая. Здесь можно сделать любую выборка для выводов.
Пробные выборки на последних 5 листах


Edited at 2018-10-14 08:07 (UTC)

сводная табличка

https://my-files.ru/zxo3tj

Re: сводная табличка

Спасибо!
Размещаю свой рабочий файл здесь: https://my-files.ru/em9hqo
Исходные две колонки на листе "3 столбца".
Я их чуток сократил (до 822-1852 лет) и получил таблицу на листе "Основа"
Совпадения вывожу на лист 822-1852. Здесь можно сделать и со сдвижкой на любое число лет.
Суммирую итог отдельно на нижней строке.
Сумму транспонирую и поочередно вывожу либо на лист СВОДНАЯ, либо (если со сдвигом в год) на лист СВОДНАЯ2
Проценты совпадений считаю на листе Проценты либо на листе Проценты 2
На листе Итог 1 - в форме столбцов результат
Получаю такую форму через объединение данных из таблиц с процентами через СВ1 и СВ2
В итоге получаю листы 01 и 02
Обе они в приемлемой форме на листе Общая. Здесь можно сделать любую выборка для выводов.
Пробные выборки на последних 5 листах

Edited at 2018-10-14 08:07 (UTC)

здравствуйте!
у меня получилась таблица, как на листе СВОДНАЯ
вот полная таблица с 733 строчками и колонками

для сверки с вашими данными вот часть этой таблицы в вашей сортировке


алгоритм находится здесь

делаю дальше...

Класс! Категорически не понял, как это сделано, однако результат налицо )
Скачать, правда, не сумел )
Сейчас уже пора ставить финальные задачи. Разных алгоритмов у нас уже много, но еще нет представления, как свести все эти промежуточные результаты в одно финальное целое. А уже пора )

это сделано на языке c#, алгоритм преобразуется в обыкновенный exe-файл, обеспечивая максимальную скорость: например, файл 00_База_2018_10_01.xls обрабатывается и преобразуется в таблицу 733 на 733 за 13 секунд на моем простом компьютере

чтобы скачать таблицу, пожалуйста, перейдите по ссылке и нажмите кнопку Download справа


да, нужно уже делать задачу 3
"индексы, на деле, составят несколько групп с высоким процентом совпадений внутри группы и с малым процентом совпадений с индексами из других групп. Число этих групп отразит число разных этапов развития цивилизации."

думаю, переживаю...

Edited at 2018-10-16 08:28 (UTC)

Скачать удалось!
Я заметно исправил базу, добавил пару тысяч индексов, но Экселю будет сложно это все обработать, поэтому обращусь к вам.
Но главное, пора выходить в финал. Мы все к этому готовы. Реально пора.
Тоже думаю, тоже переживаю.

Edited at 2018-10-16 08:41 (UTC)

конечно, обращайтесь в любой момент
я очень люблю ваше дело

посчитал таблицы со сдвигами от 1 до 5 лет
находятся они в папке https://github.com/it4history/reconstruction/tree/master/Excel/EventsIndexing/Tests/out
по два файла на каждый сдвиг: с расширением xlsx полная таблица, а с расширением csv часть в вашей сортировке


например, можно заметить совпадения таблицы со сдвигом в 1 год с вашими данными из листа СВОДНАЯ2
есть и несовпадения, хоть я и ограничился 822-1852 годами




алгоритм гибко разрешает устанавливать сдвиги

в общем, нет предела совершенствованию

Похоже, что Вы умеете делать это быстро.
Вот здесь - https://chispa1707.livejournal.com/3012125.html
Внизу лежит "техфайл для себя". Там несколько групп из двух столбиков.
Прошу Вас проделать это с каждой группой и передать мне.
***
Надеюсь, мы понимаем "сдвиг в данном случае одинаково. Я имею ввиду, что сверяемый индекс в одном году, а индексы. с которыми его сверяют, на 1-5 лет позже.
Интересно... а может, лучше если раньше? Результат будет разный...

Подумал, что, может быть, я слишком тороплюсь.
Если не начинали, то не надо. Если что начали, с удовольствием гляну.
Насколько велик объем, который Ваш подход позволяет вытянуть? В миллионах ячеек?

  • 1