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



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

Внимание: в данной утилите обнаружена ошибка. В одном из следующих сообщений размещена более новая версия без ошибки. от administrator 8 янв 2010
Вложения
Тип файла: rar Inventor_кластерный анализ.rar (123.0 Кб, 1191 просмотров)
 
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 Кб, 994 просмотров)
 
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, время: 05:25.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.