Форум OlegON > Программы и оборудование для автоматизации торговли > Другие вопросы > Закупщик

Inventor: анализ совместных продаж / кластерный анализ : Закупщик

29.03.2024 4:56


29.12.2010 09:52
andrey_f
 
Ну что ж, как и обещал, выкладываю новую утилиту Inventor: кластерный анализ. Все как и раньше, берем массив, нажимаем кнопку, ждем, ждем, ждем... ))
В итоге получаем такого рода матрицу:



Вадим, заводи свой комп :D

Внимание: в данной утилите обнаружена ошибка. В одном из следующих сообщений размещена более новая версия без ошибки. от administrator 8 янв 2010
Вложения
Тип файла: rar Inventor_кластерный анализ.rar (123.0 Кб, 1229 просмотров)
30.12.2010 03:02
VVY
 
Цитата:
administrator Ну что ж, как и обещал, выкладываю новую утилиту Inventor: кластерный анализ. Все как и раньше, берем массив, нажимаем кнопку, ждем, ждем, ждем... ))
В итоге получаем такого рода матрицу:



Вадим, заводи свой комп :D
завел, ждем
720630 строк
ДО НГ МОЖЕТ УСПЕЮ.


P.S. КрасаФФФчик!
30.12.2010 22:30
magdalena195715
 
андрюша ,большое спасибо за программульку
31.12.2010 02:29
andrey_f
 
Цитата:
magdalena195715 андрюша ,большое спасибо за программульку
Даже так :D
Видно, она Вам очень пригодилась )
04.01.2011 08:23
andrey_f
 
Опытным путем установлено, что для кластерного анализа более менее приличного массива данных желательно иметь комп с 4Гб оперативной памяти. С 2Гб возможна ошибка "out of memory".
На моем компе (с 4Гб) анализ массива в 160 тыс. строк занял около 40 часов, что приблизительно в 5 раз больше, чем ушло на тотальный анализ совместных продаж.
Надеюсь, после НГ праздников Вадим протестирует массив большего размера и поведает нам что-нибудь интересное ;)
08.01.2011 17:04
andrey_f
 
Коллеги, в утилите Inventor: кластерный анализ обнаружена маленькая, но серьезная ошибка.
Выкладываю обновленную версию без ошибки. Надеюсь, теперь все будет работать как положено )

Внимание: в одном из следующих сообщений размещена более новая версия утилиты. от administrator 1 фев 2010
Вложения
Тип файла: rar Inventor_кластерный анализ_v2.rar (101.2 Кб, 1033 просмотров)
10.01.2011 18:04
KaPrAL
 
Цитата:
administrator Опытным путем установлено, что для кластерного анализа более менее приличного массива данных желательно иметь комп с 4Гб оперативной памяти. С 2Гб возможна ошибка "out of memory".
Excel сам по себе тяжеловесный, содержит множество объектов, которые грузят память, поэтому в коде макросов используют как можно меньше переменных и массивов, и их значения лучше удалять из памяти сразу после использования. Можно также создавать невидимый лист, и сохранять в нем промежуточные данные, на каждом цикле очищая кэш и сохраняя книгу.
11.01.2011 00:26
andrey_f
 
Цитата:
KaPrAL Excel сам по себе тяжеловесный, содержит множество объектов, которые грузят память, поэтому в коде макросов используют как можно меньше переменных и массивов, и их значения лучше удалять из памяти сразу после использования. Можно также создавать невидимый лист, и сохранять в нем промежуточные данные, на каждом цикле очищая кэш и сохраняя книгу.
Саша, привет.
Если считать не в массивах, то время выполнения увеличивается в десятки раз.
Удалить массивы из памяти удается только к концу программы, т.к. они все задействованы в расчетах.
Все переменные обозначены своими типами (по возможности не "вариант").
На каждом цикле очищать кэш - хорошая идея, вот только Excel матерится сразу после начала анализа, т.е. еще на первом цикле.
Да и не так уж много там массивов, я не ожидал, что Excel "раскорячится" :)
Единственное решение, которое я вижу - оптимизация размера массивов, т.к. во многих случаях приходится брать массив заведомо большего размера, чтобы туда влезли все данные, количество которых не известно до выполнения операций.
Использовать массив переменного размера дольше по времени.
Вот такая задача, если бы анализ по времени продолжался не долго, можно было бы пожертвовать временем в пользу памяти, а тут и так счет на сутки, поэтому главный ресурс - время. А компы пора апгрейдить :D
Спасибо!
23.01.2011 11:21
RazVal
 
Цитата:
administrator время выполнения увеличивается в десятки раз...
Сейчас пишу обещанную статью по кластерному анализу, и у меня появилась мысль по возможному ускорению: когда у тебя есть набор пар со своими показателями, и ты объединяешь пару, имеющую самый большой показатель, то пересчитывать остальные показатели - не нужно. Достаточно только пересчитать за 5 секунд все показатели с новообразовавшейся парой - вставить их в общий массив для выбора следующего самого большого показателя и дальше действовать по той же схеме. В результате, тебе не надо будет пересчитывать каждый раз весь массив, и по уму время общего расчёта должно сократиться...
23.01.2011 11:24
andrey_f
 
Цитата:
RazVal
Цитата:
administrator время выполнения увеличивается в десятки раз...
Сейчас пишу обещанную статью по кластерному анализу, и у меня появилась мысль по возможному ускорению: когда у тебя есть набор пар со своими показателями, и ты объединяешь пару, имеющую самый большой показатель, то пересчитывать остальные показатели - не нужно. Достаточно только пересчитать за 5 секунд все показатели с новообразовавшейся парой - вставить их в общий массив для выбора следующего самого большого показателя и дальше действовать по той же схеме. В результате, тебе не надо будет пересчитывать каждый раз весь массив, и по уму время общего расчёта должно сократиться...
Валера, извини, не могу разобрать о чем ты...
Перефразируй плиз и чуток поподробнее :)
Часовой пояс GMT +3, время: 04:56.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.