Искусственный Интеллект

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



k-средних

Сообщений 1 страница 23 из 23

1

http://ru.wikipedia.org/wiki/K-means
k-means (иногда называемый k-средних) - наиболее популярный метод кластеризации.

http://www.aicommunity.org/members/no/d.pl?kmean.exe

Я сделал многоуровневую кластеризацию, классы 1 уровня сами считаются точками для 2 уровня и т.д. Можно указать число кластеров на каждом уровне.
http://www.aicommunity.org/members/no/img/kmean1.png

Кнопка "статистика" прогоняет алгоритм указанное число раз, нужно выбирать поменьше точек чтобы было быстрее. Там получается любопытно. Напоминает историю захвата территорий и строительства столиц-крепостей, как они переходят от одного владельца другому.
1. узлы 2 уровня, красные, часто оказываются между областями точек, где собственно первичных точек нет.
2. узлы 1 уровня, синие, образуют какие-то линии, не знаю как их назвать.
http://www.aicommunity.org/members/no/img/kmean2.png

От стандартного k-means этот отличается тем, что если узел верхнего уровня не может захватить территории он случайно прыгает в любое место. Длина прыжка уменьшается со временем, поэтому при большом числе итерации все устаканивается, а при маленьком кто-то может оказаться вне точек. Настройки при которых виден процесс перехода земель от одного кластера к другому.
http://www.aicommunity.org/members/no/img/kmean3.png

Отредактировано NO (2009-08-17 23:03:08)

0

2

забавно... а почему он у тебя не сходится?
если ставишь число итераций большое, то система довольно долго "прыгает"
и только в самом конце приходит к равновесию...

0

3

Забавно. Всегда считал, что метод k-средних не поддерживает естественной многоуровневой кластеризации. Ее можно организовать искусственно, но с целой кучей настроечных параметров. Собственно, искусственность выражается в том, что не понятно, для каких задач это можно применить, потому что введение иерархии в k-средних возможно чисто от балды (ибо в традиционной реализации нет критерия для выбора числа кластеров). Так что не понятно, где это может реально использоваться. Можно, правда, идти другим путем и вводить полную иерархию без всяких ограничений: от уровня единичных элементов до уровня всего множества. Но от этого практического смысла не прибавится.

Картинки выглядят достаточно симпотно, но все же есть некий скептицизм. А вместе с ним и интерес: каковы все же детали реализации многоуровневого метода, и как это дело можно использовать?

Disclaimer: я писал свой пост, не видя сообщения Egg'а, поэтому совпадение первого слова в нем (как, впрочем и каких-либо других слов) - случайно

Отредактировано Necr0x0Der (2009-08-17 23:25:04)

0

4

Задача построить дерево, по которому можно за минимум ветвлений найти нужную точку. То есть например "облако" неизвестной сложной формы в 100-мерном пространстве перекодировать в 3-мерное где оно представляет собой аккуратный кубик.

Забавно из-за случайности. Напоминает животных, укладывающихся спать в тесной коробоке.
Там некоторая проблема с инициализацией, иногда в начале много центров попадает в одну область, а в другую ни попадает ни одной. Они потом переползают в другую, но, как мне показалось, слишком вяло, вот и сделал чтобы прыгало. Число итераций она знает и к концу прыгает меньше, это искусственное ускорение сходимости. Если долго прыгает значит можно уменьшить число итераций, или уменьшить число кластеров k, оно берется с потолка.

Точки следующего уровня считаются просто как центр кластера. Они не обязательно сопадают с одной из точек 0 уровня.

0

5

спасибо, чуть-чуть прояснилась и задача, и алгоритм, но не до конца

NO написал(а):

Задача построить дерево, по которому можно за минимум ветвлений найти нужную точку. То есть например "облако" неизвестной сложной формы в 100-мерном пространстве перекодировать в 3-мерное где оно представляет собой аккуратный кубик.

Эти два предложения у меня как-то не связываются
Если дело в уменьшении размерности пространства, то почему не использовать методы уменьшения размерностей?
Если надо строить дерево, то зачем k-средних? Есть же разные алгоритмы построения минимального остового дерева.
Что значит "за минимум ветвлений"? 3 - это фиксированное число уровней/ветвлений и размерностей в визуализируемом пространстве. Как при этом определяются координаты точки в 3-мерном пространстве? Векторы отклонений от среднего на каждом уровне остаются 100-мерные...
В общем, что-то вырисовывается, но пока не догоняю. Может, при четкой постановке задачи удалось бы ее решить как-то обоснованно.

0

6

Задача организовать поиск в множестве образов, у них сравнение очень дорогая операция. Просто найти среди точек похожие на заданную. Векторы на самом деле переменно-мерные, может быть и по 10 и по 1000 000 размерностей.

0

7

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

0

8

Для чего это нужно. Попробую немного вломиться в семантику.

Критерии качества классов:
1. Четкость. Один объект не должен попадать в разные классы.
2. Значимость. Классы должны быть одного объема, иначе отнесение к классу близкому ко всей совокупности объектов ничего об объекте не скажет.
3. Однородность. Например множество отдаленных от основной группы объектов желательно относить к одному классу. Даже если их мало, этот критерий может противоречить 2.

Это все касается никак не систематизированного набора классов, когда классы просто идентификаторы, а распознавание идентификация. Но идентификатором класса может быть что угодно, например популярны деревья классов, тут идентификатором будет путь или папка "класс\класс\.."
Здесь значительно больше возможностей и менее ясно как такой классификатор строить. Например может использоваться какой-то удобный признак, в корне будет список значений этого признака. И может быть класс объектов для которых признак завис. Во втором уровне может быть тот же признак, например в первом ярусе делили по его первой цифре, а во втором по второй. Или другой, например в первом ярусе делили по цвету во втором по массе. Для таких независимых признаков идентификатором класса может быть уже не упорядоченная цепочка идентификаторов подклассов, а просто набор. Весь набор классов будет не деревом, а массивом. Если число таких размерностей меньше чем у исходного объекта такая классификация называется понижением размерности. Она означает выявление зависимостей между параметрами объектов и разделение объектов по типам этих зависимостей.
Можно дальше усложнять структуру классов. В пределе очевидно получим в качестве идентификатора класса алгоритм генерации образа. А классификация превращается в формализацию.

Вопрос в генерации признаков, абстракций и интерпретаторов.

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

0

9

NO написал(а):

1. Четкость. Один объект не должен попадать в разные классы.

а можно и ровно наоборот - нечеткость...
любой объект попадает сразу во все классы, но его "участие" в классе описывается некоторой "плотностью" в ]0, 1[
тогда можно нормировать объект по классам и вместо дерева строить вероятностные облака...
:) я понимаю, что это другая задача, чем та, которую ты решаешь...

0

10

Числа тоже множества, вложенные одно в другое. Если правильно, то когда образ относится к числу-классу N, то он должен относиться и ко всем N-1, a<b == a in b. То есть если образ состоит из N объектов то в нем есть и меньше. Счет это тоже классификация :)

А нечеткие от нечистого. Интересны упорядоченные классы, а в нечетких и значения весов можно переставлять и целые значения-распределения не понятно как относятся друг к другу. Хотя можно по величине принадлежности сортировать, оттуда как-то дискретизировать.

0

11

NO написал(а):

Числа тоже множества, вложенные одно в другое

не согласен... для каких-то специфических задач, может быть и пройдет,
но в общем случае число как имя класса в классификации - это идентификатор, а не мера...
у Борхеса есть рассказик "Аналитический язык Джона Уилкинса" ( http://lib.aldebaran.ru/author/borhes_h … _uilkinsa/ )

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

любой цикл означает появление вероятностности...

0

12

Если 2!=3 истинно, а 2<3 ложно, то так слишком уж обобщенно. Можно и еще обобщить, объявить, что "все равно", тогда и идентификаторов тоже не будет.

По правильному числа это идентификаторы ярусов мета-классификации. Там 1-томия, на каждом уровне никаких вариантов нет, класс только один, зато ярусов много. Это вертикальная система мета-классов. Горизонтальные классы, относящиеся к одному уровню абстрактности, тоже можно обозначить номерами, но на сами числа от этого точно никак не повлияет, они от этого не перестанут быть упорядоченными, скорее упорядоченными станут эти классы. Хотя я знаю одного пацана, ему без разницы в каком порядке называть числа. И знаю много молодежи с африканской мозговой болезнью либолибо, они до 3 не умеют. Очевидно, если не различать уровни абстрактности то различать уровни абстрактности невозможно.

0

13

NO написал(а):

Очевидно, если не различать уровни абстрактности то различать уровни абстрактности невозможно.

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

0

14

Это все понимают, просто терминологии общей нет. Иерархия классов в ООП тоже разные уровни абстрактного-конкретного.
Абстрагирование просто отрезание деталей, было 10 бит стало 9. Множество значений разделили на два класса, один бит ушел в идентификатор класса, а 9 на идентификатор одного из 512 элементов этого класса, их придется переименовать. Так например записываются числа в двоичной записи. А сам такой класс 10-битных значений это 1024-битное значение. Это значение на самом деле предикат. А когда предикаты являются объектами это уже логика 2 порядка. 1-арный предикат это свойство, а 2-арный это отношение, при еще одном условии это отношение является функцией, то есть методом абстрагирования.

0

15

NO написал(а):

Абстрагирование просто отрезание деталей

опять же - это справедливо только для иерархических объектов...
если мы предполагаем, что наши объекты укладываются в иерархию, то для их описания достаточно двоичного дерева,
это еще Линней понял... отсюда и пошли первые классификаторы...
я в детстве энтомологией занимался, у меня был такой классификатор... "Определитель насекомых" называется,
забавная штука. п.1. Усики гладкие. Перейти к п.2. Иначе п.3 и так далее...
На самом деле инструкция по классификации - почти программа - где на входе набор признаков, на выходе - название вида...
многоярусная однотомия как ты выражаешься...

проблема в том, что не все объекты описываются деревом или лесом...

0

16

Для практического разума важны не столько сами объекты сколько связанные с ними разные возможности и опасности, прецеденты и обстоятельства. Такие анти-абстрагированные объекты несут много информации и в дерево она выстраивается почти всегда.

На разные классификации была мода в 16-17 веке, между художественно-гуманитарным ренессансом и новым временем с науками и технологиями. Есть классификация наук от Френсиса Бэкона, родоночальника английского материализма и твоего научного метода :) Был типа продолжателем Аристотеля, написал "Новый Органон", у Аристотеля Органон был как у нас ИИ. Считал что наука занимается устранением заблуждений и предрассудков, но создавать их не умел, то есть ставил науку в зависимость от совсем анти-науки. Мне вот заблуждения тоже очень интересны, и не только как с ними бороться, а и как создавать. Вот его классификация заблуждений из энциклопедии. Как раз пример не абстрактного, с совсем левыми театрами и пещерами, зато понятно (семантабельно) :

Основу критической части философии Бэкона составляет учение о так называемых "идолах", искажающих наши познания. Это, во-первых, врожденные "идолы рода". В их основе субъективные свидетельства органов чувств и всевозможные заблуждения разума (пустое абстрагирование, поиск целей в природе и т. п.). Во-вторых, "идолы пещеры", обусловленные зависимостью познания от индивидуальных особенностей, физических и душевных свойств, а также ограниченностью личного опыта людей. В-третьих, "идолы рынка, или площади", имеющие социальные истоки. Бэкон призывает не преувеличивать роль слов в ущерб фактам и стоящим за словами понятиям. В-четвертых, Бэкон предлагает искоренять "идолов театра", в основе которых некритическое следование авторитетам.

0

17

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

0

18

согласен... но тут два аспекта есть:
1) классификация объектов и наук прежде всего отражает наше представление об устройстве мира... есть классический пример о чукчах, которые различают около сорока видов разного снега, но не имеют обобщающего понятия "снег"...
понятно, что с пигмеями о снеге вообще можно не говорить...
т.е., фактически, работа классификатора порождает "проблематику" модели внешнего мира,
поэтому так важно как именно это работает...
2) классификация не дополняет и не противотоит семантике, классификация - это и есть семантика...
даже, если ты всё приводишь к дереву или вообще к ряду натуральных чисел со "странными" преобразованиями идентификаторов...
по моим незрелым рассуждениям, значение здесь возникает не столько в явной идентификации множеств
(я даже готов с тобой согласиться и вместо guid'ов использовать numeric), сколько в процедуре различения объектов...
смысл понятия - это и есть - процедура различения объектов, которые номинируются данным понятием...
и никуда от семантики в классификации не уйти...

0

19

Egg написал(а):

классификация объектов и наук прежде всего отражает наше представление об устройстве мира

"Мы" сложнее градусников и весов, но многое что видим мы видят и они. Это объективные собственные свойства вещей. Им могут соотвествовать свойства-смыслы, а бывают просто смыслы. Интересовался могут ли животные сортировать что-то, не узнавать-проглатывать, а работать, перекладывать в кучки - ничего такого не нашел.
Вот чтобы неживая природа занималась классификацией, это я не знаю. Например разделение нефти на составляющие, это классификация молекул?

Egg написал(а):

классификация не дополняет и не противотоит семантике, классификация - это и есть семантика

Я хочу разделить семантику. Классификацию от всей прочей формализации. Простейшие классы вообще никак не организованы, просто множество идентификаторов. Потом сложнее упорядоченные идентификаторы, такой классификатор можно уже использовать в обратную сторону выполняя интер- экстра- поляцию и получая гипотезы об еще не встречавшихся элементах. Потом деревья. Потом видимо какие-нибудь гиперграфы, с многовариантным разложением на абстракции и множеством способов классификации, с этим еще можно разобраться. А формулы или ЕЯ это семантика самого широкого вида и отражение в них это формализация. То есть классификаторы это самый первый уровень распознавания или анализа, функции от данных. Хотя если анализируется не показания приборов, а текст, тогда сложнее. Когда человек пишет текст он же не просто классифицирует тему, у него в голове нет столько классов сколько бывает текстов. Если же считать что и на втором этапе и дальше выполняется только классификация мы наверно попадем в математику, будут просто объединения и пересечения значений. Видимо нужны еще данные, которые в виде аналогий через отождествления послужат метафорами и формулами.

Отредактировано NO (2009-09-18 00:51:04)

0

20

NO написал(а):

Это объективные собственные свойства вещей.

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

NO написал(а):

Вот чтобы неживая природа занималась классификацией, это я не знаю.

уверен, что - нет... это подтверждает мой тезис о том, что классификация - это семантика,
классификация - это Текстуальное, его нет вне Техногенеза и Социума...
Только социальные существа типа пчел имеют язык, поэтому умеют классифицировать...

NO написал(а):

Я хочу разделить семантику. Классификацию от всей прочей формализации.

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

0

21

Когда классов много то слово "классификация" уже слишком формально. Например для 10^1000 классов уже нельзя даже хранить идентификаторы всех классов, эти значения должны вычислять в ходе классификации. А раз классов нет это уже не классификация. Для более сложной технологии должно быть и более содержательное название. Я это считаю формализацией, а вместо набора идентификаторов там семантика.

0

22

ага, кажется я понял тебя...
получается этака редукционная (редуцирующая) семантика,
которая на верхнем уровне описавается процедурно,
а на нижнем - какой-то алгеброй...
и сверху донизу она полностью формальна...

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

0

23

Написание программ, текстов на ЕЯ, формул физики, постановка задач. Почти вся логика.

0



Создать форум.