Обсуждение статьи "Еще раз о картах Кохонена" - страница 2

 
Nikolay Demko:

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

В общем нужен воспроизводимый пример. 

Прикрепляю.

Там ресурсный файл, somnet и скрин, откуда я брал записи для ресурсного файла. Вдруг поможет ;)
Файлы:
Desktop.zip  756 kb
 
В общем, отдельное спасибо за разработку.

Есть некоторые свои идеи по поводу поиска групп элементов, которые в общем схожи по признакам. Т.е. речь идет об кластеризации. В сети нашел способ: k-mean. Почитал описание и посмотрел примеры. А чем вы пользуетесь, чтобы кластеризировать данные в группы?
 
Viktor Vasilyuk:
Есть немного недоработок в реализации отображения результатов.... Но и в таком виде - рабочий вариант.

Я тут решил потестить статистику и вот что получилось:

Меня немного удивила ситуация во втором квадрате первого ряда слева. Значение №2 и №3. Как так возможен такой жесткий/резкий переход в цветовом отображении??? Возьмемь, к примеру, первый квадрат первый ряд слева - между значениями №14 и №18 идет плавный переход цветов.

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

Я думаю что причина в том что у вас очень мало данных для обучения, это первое и наверное главное.

Количество нодов в 4 раза меньше чем разрешение это второе.

И, так случилось, что на большом разбросе значений (2-й столбец) ноды с противоположных концов шкалы, оказались рядом, это третье.

В совокупности вышло такое расположение при котором нарисовалась чёткая граница.

Но вот воспроизвести границу в виде чёткого шестигранника у меня не вышло. В сохранённой вами сети есть граница но она не шестигранная.

 

 
Viktor Vasilyuk:
В общем, отдельное спасибо за разработку.

Есть некоторые свои идеи по поводу поиска групп элементов, которые в общем схожи по признакам. Т.е. речь идет об кластеризации. В сети нашел способ: k-mean. Почитал описание и посмотрел примеры. А чем вы пользуетесь, чтобы кластеризировать данные в группы?

По разному, зависит от задачи. Есть множество способов кластеризации. Кохонен универсальный кластеризатор, а всё универсальное не может быть идеальным для конкретной задачи.

Например если нужно кластеризовать одномерные данные и делать это наиболее быстро и просто, то вполне подходи и K-средних, но мне больше нравится кластеризация через моды а не средние.

 
Nikolay Demko:

Я думаю что причина в том что у вас очень мало данных для обучения, это первое и наверное главное.

Количество нодов в 4 раза меньше чем разрешение это второе.

И, так случилось, что на большом разбросе значений (2-й столбец) ноды с противоположных концов шкалы, оказались рядом, это третье.

В совокупности вышло такое расположение при котором нарисовалась чёткая граница.

Но вот воспроизвести границу в виде чёткого шестигранника у меня не вышло. В сохранённой вами сети есть граница но она не шестигранная.

 

Да. Немного не тот график дал. Вот оригинал из somnet, который дал в архиве

1) вопрос не в количестве самих данных, а в том, что очень мало данных "коррелирующих" с №2, вполне возможно, что именно этот фактор мог сильно полиять на расцветку.

2) откуда взялась цыфра 4? размер картинки поделили на количество нодов? просто не могу понять взаимосвязь. Я специально сделал 70х70, чтобы картинка была четче.

3) 849950-142695=707255 разве такая разница может повлиять на более меньшие разницы в иных столбцах?

4) хотелось бы узнать, можно ли как-то номера выводить внутрь картинки, а не просто сбоку их рисовать? некоторые номера в упор не видно. Да, картинки сохраняются в файлы, но подписи в виде номеров на картинке не хотят. Это не реализовано?
 
Блин. Не знаю. Это уже бред или паранойя.

Сделал следующие действия:

1) сократил количество выборок до 10;

2) вручную сделал изменения для второго столбца для значений в строках №2,3 и 4

Ну что это за бред вышел?

Обнаружил следующее:

1) максимальное значение для второй колонки или неправильно считается или неправильно отображается. Т.е. если отсортировать все значения в сторону уменьшения, то программа показывает, что максимальным является значение в строке №3, а не как в строке №2. Такой трюк наблюдаю только в этой колонке;

2) сократил немного "разницу" между максимальным значением второй колонки и минимальным. Специально допустил, чтобы три максимальных значения из этой колонки отличались друг от друга на 1-1.8%. Это ведь не много? Т.е. если "на глаз" прикинь, то среди всех остальных значений из этого столбца они практически идентичны.



Прикладываю снова свои файлы.
Файлы:
SOM.zip  90 kb
 
Viktor Vasilyuk:
Блин. Не знаю. Это уже бред или паранойя.


Сделал следующие действия:

1) сократил количество выборок до 10;

2) вручную сделал изменения для второго столбца для значений в строках №2,3 и 4

Ну что это за бред вышел?

Обнаружил следующее:

1) максимальное значение для второй колонки или неправильно считается или неправильно отображается. Т.е. если отсортировать все значения в сторону уменьшения, то программа показывает, что максимальным является значение в строке №3, а не как в строке №2. Такой трюк наблюдаю только в этой колонке;

2) сократил немного "разницу" между максимальным значением второй колонки и минимальным. Специально допустил, чтобы три максимальных значения из этой колонки отличались друг от друга на 1-1.8%. Это ведь не много? Т.е. если "на глаз" прикинь, то среди всех остальных значений из этого столбца они практически идентичны.



Прикладываю снова свои файлы.

Обратите внимание что во всех картах других колонок на этом месте находится некий кластер.

Я хочу сказать что результат регулярно повторяется потому что такова структура данных.

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

Но SOM выносит данные именно в отдельный кластер по соседству с максимумами потому что карты взаимосвязаны и это наилучшее расположение данного кластера.

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

У вас в картах 1,4,6,8-12 эти два кластера очень близки по значениям. То есть в 8 из 12 карт SOM расположила их рядом. Естественно что оставшиеся 4 карты могут разграничится как бог послал.

Или я не понял суть ваших проблем. 

 
Nikolay Demko:

Обратите внимание что во всех картах других колонок на этом месте находится некий кластер.

Я хочу сказать что результат регулярно повторяется потому что такова структура данных.

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

Но SOM выносит данные именно в отдельный кластер по соседству с максимумами потому что карты взаимосвязаны и это наилучшее расположение данного кластера.

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

У вас в картах 1,4,6,8-12 эти два кластера очень близки по значениям. То есть в 8 из 12 карт SOM расположила их рядом. Естественно что оставшиеся 4 карты могут разграничится как бог послал.

Или я не понял суть ваших проблем. 

Да. Одна проблемка. В файле с данными максимальное значение во второй колонке это 559000. На картинке показано (там где горизонтальная полоска, градиент), что этим максимальным значением является 552000. 559000 не может быть меньше 552000.
 
Viktor Vasilyuk:
Да. Одна проблемка. В файле с данными максимальное значение во второй колонке это 559000. На картинке показано (там где горизонтальная полоска, градиент), что этим максимальным значением является 552000. 559000 не может быть меньше 552000.

552000

559000

Это данные узла или паттерна?

Узлы не обязательно должны быть один в один с обучающими паттернами. 

 
Nikolay Demko:

552000

559000

Это данные узла или паттерна?

Узлы не обязательно должны быть один в один с обучающими паттернами. 

Выделил.