Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Привет.

Лет 5 назад Илья поднял хорошую тему Тяпничный Кохонен.

Я решил поднять. Я также решил расширить scope и включить сюда все языки разработки.

Вобщем SOM и Кохонен.

Пример как может выглядеть SOM в виде картинки

Картинка с другого сайта.

+

Модератор: Удалено по просьбе ТС


Еще вариант представления SOM от MathLab. Видимо здесь надо смотреть не на цвет а на полигоны типа Вороного.

Картинка с другого сайта.



Вопросы от меня.

1) Что может делать самоорганизующаяся карта кохонена (Self-organizing map — SOM) ? В данном случае меня
интересуют не картинки а именно выводы или заключения? Пример с Ирисами Фишера мне понятен. Это
визуальная классификация. Но мне нужно нечто большее. Например критерий близости. Тоесть
я хотел-бы глядя на SOM иметь утверждения что вектор V1 ближе к вектору V2 например чем вектор
V3. Или это невозможно?

2) Какой complexity у алгоритма обучения? Что будет если у треть миллиона учебных
векторов размерностью порядка 50.

vector[0] = {1.0, -1.0, 3.5, 0.1, ....... (здесь еще 50 коэффициентов) }
vector[1] = {....}
.....
vector[330000] = {...}


Как долго я буду тренировать SOM для достижения результата? Хватит ли у меня ресурсов?
Обязательно ли обучать по эпохам? Могу-ли я прервать и рестартонуть обучение если вижу
что есть какой-то недостаток у начального расклада? Например центры близких по принзакам
кластеров родились в дальних углах карты?

3) Какое количество кластеров максимально возможно?

4) Как сильно влияет начальный расклад (рандомные веса) на получаемый мной результат? Могу ли я искусственно
внести центры кластеризации если я заранее знаю или я заранее хочу получить притяжение векторов к известным
мне центрам?

5) Раскраска. Что брать в качестве цвета если у меня - порядка 40 центров кластеров? Я предполагал взять
формулу HSV и по цветовому тону (Hue) который меряется в 360 градусов поделить его на 40 и просто получить
360 / 40 = 9 градусов и по каждому углу использовать его цветовой тон. Насколько это будет удобно? Может
цвета будут такие близкие что неразличимы? И надо будет брать какую-то штриховку.

6) Связность соседних ячеек. Насколько важно делать хексагональные? Насколько я понял из статей
это важно для упрощения расчета ближних соседей. А если соседи дальние?

7) Библиотеки визуализации прямогуольных и гексагональных плиток. Я находил разные
примеры. Причем интересно что на JavaScript больше всего. Думаю что это тренд нашего времени - делать
инфографику на JS. Чтож. Я не против. Если вы - JS-кодер и знаете такую либу - прошу подсказать.
Вы сэкономите мне много времени.

8) Оптимизации. Нужны ли мне всегда double расчеты? Что паралеллится в потоках? Что SIMD-ится?

Приветсвуется.
- ваши алгоритмы и реализации в сорцах (бинари не надо!)
- примеры практического использования SOM вами

Не приветсвуются
- коробочные решения и готовые продукты. Мне их обсуждать не интересно т.к. не о чем говорить.
Я хотел-бы говорить об алгоритмах. В крайнем случае я готов принять их просто как пример
доказательства наличия какого-либо свойства у SOM.

Линки по теме

Их тыщи. Я давать не буду. Полезных мало. Как и в ГА во всех статьях просто описываются
общие рекоменадции. Но нет ничего конкретного. По всей видимости я буду искать литературу.
Может Саймон Хайкин об этоп писал?

Сообщение было отредактировано: 8 июн 20, 07:56
7 июн 20, 11:19    [22147000]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
exp98
Member

Откуда:
Сообщений: 2446
mayton,
во-первых, зачем запихивать в пост закачку с десяток метров?

Теперь, за глубокой давностью чтения всего такого я только для затравки обозначу ИМХО по пунктам.
1) Используется для класификации чего-либо. Вот что можно с еёпомощью понастроить, для того и используется.
Метрика (близость векторов) какая подходит для задачи и какая для визуализации.

6) М.б. это визуальная близость наподобие нашего "по радиусу", сосед моего соседа и т.д.

5) На уровне средней интенсивности, цветовой охват (локус) самый широкий. 10град угол в целом читается,когда их немного как на сотовой картинке. Если вперемежку, возможны пограничные цветовые иллюзии,например с оппозитными цветами.
Если интенсивность повышать или понижать, локус сжтягивается в точку. Понятно. Ночью все кошки серы.

4) Заранее можно. Остальное моё оценочное: На сравнении с кластерным анализом и градиентными спусками. В любом случае ищется локальный минимум на пересечённой местности. Пока крутой спуск катимся быстро. И от нужной точности зависит тоже.

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

П.С.
Вспоминаю, как у нас показывали на различении 5-10 стационарных кроликов, нарисованных на экране. Сетка приближалась десятками минут. На ПК АТ.

Сообщение было отредактировано: 7 июн 20, 14:50
7 июн 20, 14:51    [22147062]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
mayton,
во-первых, зачем запихивать в пост закачку с десяток метров?


Где там десяток метров? Ну не знаю. Что у вас там. DSL-модем чтоли?

Теперь, за глубокой давностью чтения всего такого я только для затравки обозначу ИМХО по пунктам.
1) Используется для класификации чего-либо. Вот что можно с еёпомощью понастроить, для того и используется.
Метрика (близость векторов) какая подходит для задачи и какая для визуализации.

6) М.б. это визуальная близость наподобие нашего "по радиусу", сосед моего соседа и т.д.

Ну это сходу понятно. Классификация. Енот-полоскун из семейства енотовых.

Допустим у меня уже эта карта есть. Что еще кроме? Могу я сказать что енот ближе к собаке чем росомаха?
7 июн 20, 17:49    [22147117]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

5) На уровне средней интенсивности, цветовой охват (локус) самый широкий. 10град угол в целом читается,когда их немного как на сотовой картинке. Если вперемежку, возможны пограничные цветовые иллюзии,например с оппозитными цветами.
Если интенсивность повышать или понижать, локус сжтягивается в точку. Понятно. Ночью все кошки серы.

Что это за термин такой локус? Вроде как в математике я не слышал. Локальный максимум?

Да еще идея появилась. Кроме Hue, есть еще Saturation. Еще одно измерение. И если грамотно
его использовать у нас просто станет меньше системных цветов. Зато появятся более бледные
(дизайнерские цвета). И тогда плавный переход между двумя классами в SOM может быть обозначен
как гашение контраста.

Картинка с другого сайта.

И тогда можно делить 360 на 20 + еще 360 на 20 где saturation = 50% к примеру.
7 июн 20, 17:57    [22147121]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98

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

Дада. Хороший вопрос. Как подобрать такой набор коэффициентов.
7 июн 20, 18:35    [22147132]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
exp98
Member

Откуда:
Сообщений: 2446
Пишу оффлайн. Даже краткий просмотр кажный раз производит закачку, к-рую остановить проще всего разрывом связи.

Локус - термин "цветопространственный". А вот как раз в той книжечке Джадд, Вышецки ...
"Плоская территория" (или её граница) цветового охвата зрением ли, спектрофотометром ли ... Обычно на плоскости, где составляющая интенсивности==0. Форма зависит от системы цветовых координат.
Ни одна точка не спроецируется вне локуса.
Для РГБ - тот самый треугольник, перпендикулярный оси интенсивности.
Для человечьего зрения форма "полуовала", по краю к-рого "чистые" цвета отвечают нанометрам ~390-720.
S - это ползанье по оси интенсивностей. Имеем 3--хмерное яйцо. Чем выше, тем ярче, но и тем уже, горизонтальный срез яйца, локус. Аналогично вниз по оси. Самые насыщенные оттенки на уровне серой точки. Про эффекты среднего арифметического для неконтрастной системы координат я недавно писал.

aftar
Дада. Хороший вопросс. Как подобрать ...
Х-ха! ИМХО это самое главное в модели, вот они, обратные распространения ошибок ... Вроде за это отвечает твоя программа, модифицирующая веса так, чтобы уменьшить суммарную неоптимальность.
Целился в левый глаз, попал в правый, надо подкрутить прицел - общий принцип таков. Без тензорных)) формул наверное никак.
Например пытаться обеспечить сходимость. В частном случае, последовательность сжимающих отображений сходится к единственной точке.
Пусть кто плотно этим занимался скажут.


aftar
Могу я сказать что енот ближе к собаке чем россомаха?
Глядя на векторы весов? Ах, вот для чего нужна близость векторов ...
Так, тихо! На картинке соты - что это, кластеры невронов сетки? Нужнен показометр карты сетки? Вообще-то я уже не помню, будут ли для Кохонена они разнесены пространственно как у Хопфилда?

Наверное это кластеры, классифицирующие объекты? Наши кролики были оттдельно сидящими невронами. Ну а для весов положено АПИ.
Показать 2-3 связи объектов на плоскости нетрудно. Что делать для Dim=N?
Ссвязи близости образуют типично не планарный граф. Их не всегда можно Архимедово расположить на плоскости, чтобы можно было линейкой измерить расстояние и сравнить.

Ага! теперь вопрос близости начинаю понимать о чём)) Ответ: теоретически можно, но надо придумывать в зависимости от задачи. Универсальная манхэттенская метрика будет лишь грубым приближением для этого.
И показометр может не отражать близость правильно. Т.е. я не уверен, что цветными кляксами можно наглядно показать близость всех со всеми. На графе кластеров если, да по графской метрике ...

Сообщение было отредактировано: 7 июн 20, 20:38
7 июн 20, 20:40    [22147159]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Пишу оффлайн. Даже краткий просмотр кажный раз производит закачку, к-рую остановить проще всего разрывом связи.

Да. Я попрошу модератора удалить толстую .gif картинку с моего первого поста которая приводит
к проблемам у некоторых пользователей.

Спасибо.
7 июн 20, 22:34    [22147187]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Глядя на векторы весов? Ах, вот для чего нужна близость векторов ...
Так, тихо! На картинке соты - что это, кластеры невронов сетки?

Нужнен показометр карты сетки? Вообще-то я уже не помню, будут ли для Кохонена они разнесены пространственно как у Хопфилда?


Дада. Хороший вопрос. Я почитаю насчет Хопфилда. Тоже не хватает знаний. Насколько я помню
Хопфилд - тоже учится без учителя и сводит векторы к ограниченному набору классов. Вроде
как - близко к SOM.
8 июн 20, 10:45    [22147332]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Давайте - более приближенный к реальности пример. Это то над чем я рассеянно думаю.

Социальная сеть sql.ru имеет профили мемберов. Они характерны распределением постов
по подфорумам. К примеру ваш покорный слуга постит в C++/Prog/Java примерно в равной
пропорции. Мехматовец и Усов - чисто Программинг. Мой вечный консультант по математике
дружище exp98 - имеет профиль на 50% программирование + еще несущественный сет
прочих интересов которые я поскипал.

Вот теперь вопрос. Я искусственно расставил центры кластеров Prog/FoxPro/C++/Java по углам.
Мне было так удобно. Теперь. Можно - ли переставлять местами плитки в процессе обучения
для достижения той самой "близости" например по Пифагорову расстоянию между векторами?
Тоесть предполагаем что те координаты измерений которые не были указаны - равны
вещестенному нулю.

В классическом Сом-е насколько я понимаю просто идет коррекция весов плиток но они при
этом - стационарны.

К сообщению приложен файл. Размер - 108Kb
8 июн 20, 11:28    [22147358]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
exp98
Member

Откуда:
Сообщений: 2446
я возьму паузу на подумать. Помимо другого на ходу впадаю в спячку, а мы ещё не жрамши. А сейчас немного о том, чтобы найти общий язык.
Собственно открытый вопрос. Насколько на выходе кластеры образуют геометрически компактные области?
В основном сейчас пишу, что понимаю я.
+
Низ рисунка нормальный. Вроде сеть Кохонена такова. Линейный слой входных векторов, к-рые надо классифицировать. Выходной слой 2-мерный - сетка невронов.
Но сеть пустая, её ещё нужно поучить разделению на группы. Нужна обучающая выборка векторов. Попутно в выходном слое формируются веса связей между невронами. Кто-то придумал для визуаилзации рисовать соты. Но надо, видимо ручками, связать то как сеть среагировала на выборку, образовав некие кластеры, с собственно смыслами, к-рые содержались в выборке.
После этого можно начать собственно классифкацию. Конкретнее сейчас не скажу.

В данном примере должно предполагаться, что обучение произведено и вх. вектора типа (10000) (01000)(00100)... дают на выходе центры в сотах Fox, Java .... Могут ли кластеры в сотах передвигаться? Но обычно из связей считают некую суммарную функцию типа динамического уравнения Гамильтона. Похоже, что надо близость по ней интерпретировать в виде близости по геометрии.
Но м.б. я и чушь написал. Надо подучить матчасть.
8 июн 20, 20:44    [22147644]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Попробую сам ответить на вопрос. Вобщем на слое SOM нет никаких мемберов.
Там - абстрактные нейроны которые взаимодействуют с соседями. Результатом
обучения будет являться низкочастотная поверхность признаков.

По сути центры кластеров будут экстремумами.

Далее. Если ее интерполировать я уже могу расставить векторы mayton, exp, DimaT
так как мне будет удобно но они не будут стоять точно на плитке. Скорее всего будут
лежать гдето на границе. И даже по несколько мемберов могут занимать одну материальную
точку этой SOM поверхности.
9 июн 20, 18:07    [22148224]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
В идеале центры я должен не расставлять мышкой а они должны образоваться из нейровов-победителей
которые под себя должны подстроить соседей.

Открытый вопрос остался для меня. Нет строгого условия единственности центра кластера. Как с этим быть?

Фиксить просто перезапуском обучения с новым seed-раскладом?
9 июн 20, 18:09    [22148225]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Интерполирование обычных функций вида y=f(x) по Симпсону я делал.
А вот поверхность из гексагонов.... или треугольников.... Как?
9 июн 20, 19:43    [22148302]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
exp98
Member

Откуда:
Сообщений: 2446
автор
Нет строгого условия единственности центра кластера. Как с этим быть?
Сэ ля ви. Это самоорганизация, детка.
Если конечно речь о непредсказуемости, а не о получении 2-х центров одномоментно.
Мне всё-таки непонятно как расположить на плоскости 5-6 геометрически равноудалённых точек.
10 июн 20, 22:25    [22149052]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Мне всё-таки непонятно как расположить на плоскости 5-6 геометрически равноудалённых точек.

Ээээ... это моя постановка?
10 июн 20, 22:43    [22149057]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
exp98
Member

Откуда:
Сообщений: 2446
Так явно нет,но мой вопрос закономерен после начального вопроса
автор
я хотел-бы глядя на SOM иметь утверждения что вектор V1 ближе к вектору V2 например чем вектор V3.
и также если размерность входных векторов >2.

И к п.4
автор
4) ...если я заранее знаю или я заранее хочу получить притяжение векторов к известным мне центрам?
НА случай заранее известного кол-ва центров можно попытать радиально-базисную сетку. Правда подробности я не изучал.
11 июн 20, 19:49    [22149557]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
НА случай заранее известного кол-ва центров можно попытать радиально-базисную сетку. Правда подробности я не изучал.

Да про это тоже читал.

Из хороших новостей. Нашел у себя (!) книжку Роберт Каллан - Основные Концепции НС.
Хоть что-то цельное. Шрифт - ужасный. Иллюстрации и формулы еще хуже. Но пока для начала пойдет.
Главу - 3.2. Самоорганизующася карта признаков. я сфоткаю.
12 июн 20, 16:00    [22149867]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
exp98
Member

Откуда:
Сообщений: 2446
Почему "карта признаков"? СОМ вроде для нейронов? а признаки - атрибут вх.данных. Или здесь признак==кластер?
И мы 11-мерные векторы схлопываем на 2мерную плоскость. Через посредство нейронов-преобразователей.
В общем-то можно. .Для этого нужна уверенность, что в данных огромная "схожесть". Но всё равно на 2Д тесно, чтобы близость большого кол-ва исходных кластеров иллюстрировать близостью нейронов на 2Д.
Вот этот момент больше всего интересует как описывают и чем мотивируют.
И где примеры графиков зависиомсти близости нейронов от близости исходных кластеов? - как выглядят эти "эллипсоиды рассеяния" ...
Об этом кто-нибудь пишет? Иначе все эти иллюстрации с СОМами для заманухи.
13 июн 20, 18:21    [22150217]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98
Об этом кто-нибудь пишет? Иначе все эти иллюстрации с СОМами для заманухи.

Я сегодня отсканирую хотя-бы эту главу из Каллана.
13 июн 20, 19:35    [22150240]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Из хороших новостей. Пока субботний карантин продолжается я собрал обучающую выборку.

(Не вручную разумеется а роботом)

Вот наши ключевые поля векторов. Это наиболее известные мне никнеймы распределение
постов по форумам которых я примерно знаю и следовательно визуально могу проверить
корректность самого вывода SOM.

+
dht=> select id,nickname,messages from member_info;
   id   |      nickname       | messages 
--------+---------------------+----------
  27971 | mayton              |    46816
  43489 | Dima T              |    14788
 111626 | exp98               |     2294
 142913 | ViPRos              |     9856
 251867 | полудух             |     1341
  95030 | booby               |     1952
 110363 | Basil A. Sidorov    |    10191
 263304 | Алексей Роза        |      208
  57183 | Изопропил           |    31469
 247232 | Gennadiy Usov       |     2140
 261581 | crutchmaster        |     1220
  49068 | Соколинский Борис   |    12557
   1350 | SergDanceHits       |      157
  97422 | hVostt              |    17541
  21430 | miksoft             |    38339
  88727 | mad_nazgul          |     5330
 252521 | Дмитрий Мух         |     3504
 223550 | Valentin Kolesnikov |     3289
 257822 | PetroNotC Sharp     |     4882
 132113 | Siemargl            |     6330
  19857 | softwarer           |    62140
  11587 | Leonid Kudryavtsev  |     8590
  22920 | MasterZiv           |    34592
 122827 | ZyK_BotaN           |   108604
 101262 | kealon(Ruslan)      |     5926
(25 rows)


И есть отдельно значения векторов. Они очень толстые и не помещаются на экран. Поэтому
я покажу только 3-4 штуки из них чтоб было ясно.

+
   id   |                                                                                                                                                                                                                                                                                                         hist                                                                                                                                                                                                                                                                                                         
--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  27971 | {"148": 0.01, "149": 0.03, "150": 0.1, "151": 20.11, "152": 0.08, "153": 0.37, "154": 0.03, "155": 0.01, "156": 0, "157": 0.59, "158": 0.09, "159": 0.01, "160": 0, "161": 28.44, "162": 0.05, "163": 0.02, "164": 0.13, "165": 0.03, "166": 0.04, "167": 0.04, "168": 7.79, "169": 0.1, "170": 0.05, "171": 0.03, "172": 0.01, "173": 0, "174": 0.03, "175": 1.5, "176": 0.03, "177": 1.73, "178": 0.24, "179": 0.03, "180": 1.15, "181": 3.34, "182": 0.01, "183": 0, "184": 1.26, "185": 0, "186": 28.56, "187": 0.74, "188": 1.22, "189": 0.19, "190": 0.04, "191": 1.73, "192": 0.01, "193": 0.02, "194": 0.02}
  43489 | {"148": 0.76, "151": 22.63, "153": 0.16, "154": 0.02, "156": 39.55, "157": 0.01, "158": 0.01, "163": 0.01, "164": 2.07, "165": 0.06, "168": 0.01, "169": 0.05, "172": 1.04, "175": 0.16, "176": 0.02, "177": 1.91, "178": 7.25, "180": 3.01, "183": 0.02, "184": 0.13, "186": 20.95, "187": 0.02, "188": 0.08, "189": 0.02, "191": 0.02, "193": 0.01, "194": 0.02, "195": 0.01}
 111626 | {"149": 0.27, "151": 2.83, "153": 1.06, "156": 0.22, "158": 0.09, "161": 0.09, "162": 0.58, "163": 15.1, "167": 0.49, "168": 7.31, "169": 0.04, "173": 1.15, "174": 0.13, "176": 0.13, "177": 0.18, "178": 0.53, "179": 0.18, "180": 17.14, "183": 0.89, "184": 0.09, "186": 48.45, "188": 0.89, "189": 1.59, "193": 0.18, "196": 0.4}
 251867 | {"150": 0.97, "151": 32.59, "154": 0.3, "157": 0.97, "158": 2.54, "161": 2.09, "164": 0.07, "165": 3.36, "166": 0.07, "167": 0.07, "168": 0.37, "169": 8.5, "170": 5.44, "172": 0.22, "175": 1.19, "177": 0.15, "178": 0.15, "180": 5.37, "184": 0.37, "186": 11.11, "187": 8.05, "188": 12.53, "189": 1.94, "191": 0.22, "194": 0.07, "196": 1.27}
(4 rows)


И справочник ключей векторов. Я экономил место в базе и нормализовывал длинные названия форумов.

+
 key |                         value                         
-----+-------------------------------------------------------
 148 | ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM
 149 | Android
 150 | ASP.NET
 151 | C++
 152 | Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M
 153 | Delphi
 154 | ERP и учетные системы
 155 | Firebird, InterBase
 156 | FoxPro, Visual FoxPro
 157 | Hardware
 158 | HTML, JavaScript, VBScript, CSS
 159 | IBM DB2, WebSphere, IMS, U2, etc
 160 | iOS
 161 | Java
 162 | Microsoft Access
 163 | Microsoft Office
 164 | Microsoft SQL Server
 165 | MySQL
 166 | NoSQL, Big Data
 167 | OLAP и DWH
 168 | Oracle
 169 | PHP, Perl, Python
 170 | PostgreSQL
 171 | PowerBuilder
 172 | SQLite
 173 | Sybase ASA, ASE, IQ
 174 | Test
 175 | Unix-системы
 176 | Visual Basic
 177 | Windows
 178 | WinForms, .Net Framework
 179 | XML, XSL, XPath, XQuery
 180 | Вопрос-Ответ
 181 | Другие СУБД
 182 | Другие: Mac OS, PalmOS, BeOS, PocketPC
 183 | Наши за рубежом
 184 | Обсуждение нашего сайта
 185 | Отчетные системы
 186 | Программирование
 187 | Проектирование БД
 188 | Работа
 189 | Разработка информационных систем
 190 | Разработка под мобильные платформы
 191 | Сравнение СУБД
 192 | Тестирование и QA
 193 | Управление процессом разработки ИС
 194 | Юридические вопросы в ИТ
 195 | 1С
 196 | Вакансии
 197 | WCF, Web Services, Remoting
 198 | WPF, Silverlight
 199 | Серверный JavaScript (node.js, ringo, nitro, sling)
 200 | Oracle Forms
 201 | IBExpert
 202 | Oracle APEX
 203 | Сертификация и обучение
 204 | Informix
 205 | SharePoint
 206 | Обсуждение рассылки


Вот к пример "161": 28.44 означает что я постил 28% сообщений из Java.

Если у какого-то мембера отсуствует кака-то пара "X" : Y то это означает что у него 0% постов в этом форуме.
13 июн 20, 19:48    [22150244]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
exp98
Member

Откуда:
Сообщений: 2446
Недостаточная выборка, в лучшем случае для Кохоннена кластеры будут Си-Программинг-ВопрОтвет-Дельфи-Оракл. Обучающую выборку рекомендуют в десятки раз больше. Во вх.данные надо элика включить, известный ник.
14 июн 20, 00:51    [22150306]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
exp98, это не проблема. Найду больше.

Пока я вижу что есть много мемберов которые вообще постят только в 1 форум.
Подозреваю что они и сформируют большую часть кластеров и это печально.

Тогда лопнет моя идея поискать схожие хромосомы. Или схожие сферы интересов.

P.S. Элик пойдет VIP-ом. Будет хардкодом зашит во все эксперименты. Равно как и я и еще штук 10 чел.
14 июн 20, 01:08    [22150308]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Подсобрал чуть больше векторов (щас уже более 500). Публикую здесь для статистики просто фрагмент.

+
2027 | {"164": 100}
   2022 | {}
   2028 | {"164": 100}
   2021 | {}
   2024 | {"153": 30, "155": 30, "164": 40}
   2020 | {"164": 100}
   2025 | {}
   2023 | {}
   2026 | {"164": 100}
   2033 | {"153": 0.19, "168": 98.85, "175": 0.38, "184": 0.58}
   2031 | {"164": 100}
   2038 | {"164": 100}
   2032 | {"164": 100}
   2039 | {}
   2035 | {"164": 100}
   2037 | {}
   2030 | {"162": 28.57, "180": 71.43}
   2034 | {"164": 100}
   2036 | {"164": 100}
   2046 | {"188": 25, "196": 75}
   2045 | {"168": 93.33, "181": 6.67}
   2043 | {"180": 100}
   2042 | {}
   2116 | {"153": 100}
   2117 | {"164": 95.45, "165": 4.55}
   2114 | {"162": 4.55, "164": 95.45}
   2113 | {}
   2119 | {}
   2129 | {"164": 100}
   2128 | {"153": 1.82, "164": 32.73, "165": 1.82, "186": 63.64}
   2120 | {"164": 100}
   2124 | {"158": 14.29, "164": 28.57, "165": 14.29, "169": 42.86}
   2127 | {"173": 100}
   2121 | {}
   2125 | {"164": 100}
   2126 | {"191": 100}
   2135 | {"164": 100}
   2133 | {}
   2137 | {"164": 66.67, "165": 4.76, "167": 28.57}
   2138 | {"164": 100}
   2130 | {"164": 100}
   2132 | {"164": 100}
   2136 | {"162": 7.89, "163": 0.88, "168": 87.72, "195": 0.88, "200": 2.63}
   2131 | {"162": 100}
   2142 | {"164": 100}
   2147 | {"162": 40, "164": 60}
   1397 | {"162": 33.33, "164": 66.67}
   1399 | {"164": 100}
   1396 | {}
   1404 | {"164": 100}
   1407 | {"164": 100}


Как видно часть мемберов - вообще не постили ничего. И часть - постили в 1 форум.
14 июн 20, 14:56    [22150433]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я понял. Я немножко не совсем корректно (не-репрезентативно собираю сведенья).

Самые ранние members начинаются где-то с id > 1000. Я по ним иду. Они датируются датой
регистрации примерно 2004 год. На этот момент скруль еще не был развит как много-профильный
и как следствие я получаю искаженную выборку где например подфорум MS-SQL преобладает.

И неудивительно.

Тоесть моя стратегия собирать по счетчику id в корне неверная. Нужен некий random shuffle
всех id-шников от 1000 примерно до 250_000 (это примерное количество зареганных ников
на данный момент).

Воооот. Что еще посчитать? Наверное количество полосок гистограмм по годам с 2004 до 2021.
Я думаю что в 2010 форум уже насытился и приобрёл нужное число подфорумов до такого
уровня чтобы уже было репрезентативно.

Что еще? Ну какой-то процентиль могу посчитать теперь. 95% мемберов имеют количество
посещаемых подфорумов не менее..... и т.д.
14 июн 20, 20:20    [22150555]     Ответить | Цитировать Сообщить модератору
 Re: Воскресный SOM и классификация векторов  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Подсобрал еще немного в режиме random-shuffle. Старые данные я не удалял а просто делал merge.

Вот так вышло. 1200 учебных векторов. Колонка справа cnt_hist это количество полосок гистограммы.
+
   id   |           nickname           | messages |     registered      |     last_update     | cnt_hist 
--------+------------------------------+----------+---------------------+---------------------+----------
 122827 | ZyK_BotaN                    |   108611 | 2009-03-19 00:00:00 | 2020-06-15 00:00:00 |       18
   1740 | Glory                        |   104760 |                     |                     |       34
  19857 | softwarer                    |    62151 | 2004-03-10 00:00:00 | 2020-06-14 00:00:00 |       34
   2262 | locky                        |    62034 |                     |                     |       33
  30055 | Гаджимурадов Рустам          |    61439 | 2004-10-30 00:00:00 | 2020-06-12 00:00:00 |       17
  27971 | mayton                       |    46858 | 2004-09-18 00:00:00 | 2020-06-15 00:00:00 |       47
  21430 | miksoft                      |    38344 | 2004-04-13 00:00:00 | 2020-06-14 00:00:00 |       41
   4313 | tchingiz                     |    36801 | 2002-10-29 00:00:00 | 2020-06-15 00:00:00 |       35
  22920 | MasterZiv                    |    34592 | 2004-05-19 00:00:00 | 2020-06-11 00:00:00 |       47
  57183 | Изопропил                    |    31470 | 2006-04-22 00:00:00 | 2020-06-14 00:00:00 |       31
  24806 | Elic                         |    29821 | 2004-07-05 00:00:00 | 2020-05-14 00:00:00 |       14
  16348 | Гусена                       |    26841 | 2003-12-04 00:00:00 | 2017-03-06 00:00:00 |        8
  27590 | tru55                        |    19784 | 2004-09-09 00:00:00 | 2020-06-09 00:00:00 |       33
   4045 | hDrummer                     |    18227 | 2002-10-17 00:00:00 | 2018-07-01 00:00:00 |       31
  97422 | hVostt                       |    17541 | 2007-12-17 00:00:00 | 2020-06-13 00:00:00 |       28
  43489 | Dima T                       |    14789 | 2005-08-23 00:00:00 | 2020-06-14 00:00:00 |       28
  49068 | Соколинский Борис            |    12557 | 2005-12-03 00:00:00 | 2020-06-11 00:00:00 |        9
   1533 | ChA                          |    10994 |                     |                     |       14
  46017 | MsDatabaseru                 |    10937 | 2005-10-10 00:00:00 | 2019-10-04 00:00:00 |       23
 110363 | Basil A. Sidorov             |    10192 | 2008-08-06 00:00:00 | 2020-06-14 00:00:00 |       17
   1464 | tygra                        |     9998 |                     |                     |       20
   9662 | SY                           |     9881 | 2003-05-29 00:00:00 | 2020-06-14 00:00:00 |        3
 142913 | ViPRos                       |     9856 | 2010-05-12 00:00:00 | 2020-06-13 00:00:00 |       23
  11587 | Leonid Kudryavtsev           |     8590 | 2003-07-29 00:00:00 | 2020-06-13 00:00:00 |       37
   1978 | ВладимирМ                    |     7854 |                     |                     |       10
  94564 | suPPLer                      |     7794 | 2007-10-31 00:00:00 | 2017-06-14 00:00:00 |       16
 132113 | Siemargl                     |     6330 | 2009-09-24 00:00:00 | 2019-12-05 00:00:00 |       49
   2206 | ASCRUS                       |     5994 |                     |                     |       35
 101262 | kealon(Ruslan)               |     5926 | 2008-02-20 00:00:00 | 2020-06-09 00:00:00 |       32
 146456 | xtender                      |     5456 | 2010-07-29 00:00:00 | 2020-06-12 00:00:00 |       14
  88727 | mad_nazgul                   |     5330 | 2007-07-28 00:00:00 | 2020-06-12 00:00:00 |       21
   2436 | Зайцев Фёдор                 |     5308 | 2002-07-17 00:00:00 | 2015-11-13 00:00:00 |       15
 257822 | PetroNotC Sharp              |     4891 | 2019-05-31 00:00:00 | 2020-06-14 00:00:00 |        7
   2188 | AAron                        |     4324 |                     |                     |       18
 145849 | Roman Mejtes                 |     3837 | 2010-07-15 00:00:00 | 2020-06-14 00:00:00 |       25
   2186 | ziktuw                       |     3552 |                     |                     |       22
  10469 | arni                         |     3544 | 2003-06-24 00:00:00 | 2019-10-23 00:00:00 |       20
 252521 | Дмитрий Мух                  |     3505 | 2018-09-03 00:00:00 | 2020-06-14 00:00:00 |       30
 223550 | Valentin Kolesnikov          |     3291 | 2015-06-19 00:00:00 | 2020-06-14 00:00:00 |       19
   2354 | Jimmy                        |     3136 | 2002-07-11 00:00:00 | 2009-09-03 00:00:00 |       19
   1775 | ЗоринАндрей                  |     3004 |                     |                     |       11
   1626 | Tosh                         |     2956 |                     |                     |       22
   7389 | AI                           |     2817 | 2003-03-10 00:00:00 | 2020-05-14 00:00:00 |       11
   2406 | Евгений Фадеев               |     2375 | 2002-07-16 00:00:00 | 2016-05-04 00:00:00 |        9
 111626 | exp98                        |     2295 | 2008-09-01 00:00:00 | 2020-06-14 00:00:00 |       25
   1558 | saint                        |     2262 |                     |                     |       17
 247232 | Gennadiy Usov                |     2140 | 2018-01-28 00:00:00 | 2020-06-13 00:00:00 |        1
   2435 | MiCe                         |     1996 | 2002-07-17 00:00:00 | 2013-03-03 00:00:00 |       11
  95030 | booby                        |     1953 | 2007-11-08 00:00:00 | 2020-06-15 00:00:00 |       21


Думаю этого достаточно пока.
14 июн 20, 23:56    [22150678]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Программирование Ответить