Моделирование Шаблонов Трафика с помощью Отнимающей Кластеризации

В этом примере показано, как использовать отнимающую кластеризацию для шаблонов трафика модели в области на основе демографии области.

Проблема: понимание шаблонов трафика

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

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

Данные

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

tripdata

Две переменные загружаются в рабочей области, datin и datout. datin имеет 5 столбцов, представляющих эти 5 входных переменных и datout имеет 1 столбец, представляющий 1 выходную переменную.

subplot(2,1,1)
plot(datin)
legend('population','num. of dwelling units','vehicle ownership',...
    'median household income','total employment')
title('Input Variables','fontsize',10)

subplot(2,1,2)
plot(datout)
legend('num of trips')
title('Output Variable','fontsize',10)

Рисунок 1: переменные Ввода и вывода

Количество строк в datin и datout, 75, представляйте количество наблюдений или выборок или доступных точек данных. Строка в datin, скажите строку 11, составляет набор наблюдаемых величин этих 5 входных переменных (население, количество жилых секций, владения транспортного средства, среднего дохода семьи и общей занятости) и соответствующая строка, строка 11, в datout представляет наблюдаемую величину для количества прохождений, сгенерированных, учитывая наблюдения, сделанные для входных переменных.

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

Почему кластеризация и нечеткая логика?

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

Нечеткая логика является эффективной парадигмой, чтобы обработать неточность. Это может использоваться, чтобы взять нечеткие или неточные наблюдения для входных параметров и все же достигнуть четких и точных значений для выходных параметров. Кроме того, нечеткая система вывода является путем к системам сборки, не используя комплексные аналитические уравнения.

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

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

Кластеризация данных

subclust функция, которая реализует названную отнимающую кластеризацию кластеризирующегося метода. Отнимающая кластеризация, [1], является быстрым, алгоритмом с одной передачей для оценки количества кластеров и кластерных центров в наборе данных.

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

[C,S] = subclust([datin datout],0.5);

Первый аргумент к subclust функция является данными, которые будут кластеризироваться. Вторым аргументом к функции является radii который отмечает радиус кластера влияния на входном пробеле.

Переменная C теперь содержит все центры кластеров, которые были идентифицированы subclust. Каждая строка C содержит положение кластера.

C
C =

    1.8770    0.7630    0.9170   18.7500    1.5650    2.1830
    0.3980    0.1510    0.1320    8.1590    0.6250    0.6480
    3.1160    1.1930    1.4870   19.7330    0.6030    2.3850

В этом случае, C имеет 3 строки, представляющие 3 кластера с 6 столбцами, представляющими положения кластеров в каждой размерности.

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

clf
plot(datin(:,5),datout(:,1),'.',C(:,5),C(:,6),'r*')
legend('Data points','Cluster centers','Location','SouthEast')
xlabel('total employment','fontsize',10)
ylabel('num of trips','fontsize',10)
title('Data and Clusters in selected two dimensions of the input space','fontsize',10)

Рисунок 2: Кластерные центры в 'общей занятости' и размерностях 'прохождений' входного пробела

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

S
S =

    1.1621    0.4117    0.6555    7.6139    2.8931    1.4395

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

Генерация Нечеткой системы вывода (FIS)

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

myfis=genfis(datin,datout, ...
    genfisOptions('SubtractiveClustering','ClusterInfluenceRange',0.5));

Первый аргумент является матрицей входных переменных datin, второй аргумент является матрицей выходных переменных datout и третьим аргументом является radii это должно использоваться при использовании subclust.

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

Присвойте имена к вводам и выводам.

myfis.Inputs(1).Name = "population";
myfis.Inputs(2).Name = "dwelling units";
myfis.Inputs(3).Name = "num vehicles";
myfis.Inputs(4).Name = "income";
myfis.Inputs(5).Name = "employment";
myfis.Outputs(1).Name = "num of trips";

Понимание отношения кластеров-FIS

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

myfis FIS что genfis сгенерировал. Поскольку набор данных имеет 5 входных переменных и 1 выходную переменную, genfis создает FIS с 5 входными параметрами и 1 выходом. Каждый ввод и вывод имеет столько же функций принадлежности сколько количество кластеров что subclust идентифицировал. Как замечено ранее, для текущего набора данных subclust идентифицированный 3 кластера. Поэтому каждый ввод и вывод будет характеризоваться 3 функциями принадлежности. Кроме того, количество правил равняется количеству кластеров, и следовательно 3 правила создаются.

Мы можем теперь зондировать FIS, чтобы изучить, как кластеры были преобразованы внутренне в функции принадлежности и правила с помощью приложения Fuzzy Logic Designer.

fuzzyLogicDesigner(myfis)

Рисунок 3: графический редактор для создания Нечетких систем вывода (FIS)

Как видно, FIS имеет 5 входных параметров и 1 выход с входными параметрами, сопоставленными с выходными параметрами через основу правила (белое поле в фигуре).

Давайте теперь попытаемся анализировать, как кластерные центры и функции принадлежности связаны.

mfedit(myfis)

Рисунок 4: графический редактор функции принадлежности

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

Заметьте, что все вводы и выводы имеют точно 3 функции принадлежности. Эти 3 функции принадлежности представляют 3 кластера, которые были идентифицированы subclust.

Каждый вход в FIS представляет входную переменную во входном наборе данных datin и каждый выход в FIS представляет выходную переменную в выходном наборе данных datout.

По умолчанию, первая функция принадлежности, in1cluster1, из первого входа population был бы выбран в редакторе функции принадлежности. Заметьте, что типом функции принадлежности является gaussmf (Гауссова функция принадлежности типа), и параметрами функции принадлежности является [1.162 1.877], где 1.162 представляет коэффициент распространения Кривой Гаусса и 1.877 представляет центр Кривой Гаусса. in1cluster1 получает положение и влияние первого кластера для входной переменной population. (C(1,1)=1.877, S(1)=1.1621 )

Точно так же положение и влияние других 2 кластеров для входной переменной population получены другими двумя функциями принадлежности in1cluster2 и in1cluster3.

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

Теперь давайте исследуем, как нечеткие правила создаются.

ruleedit(myfis)

Рисунок 5: графический редактор правила

ruleedit графический нечеткий редактор правила. Как можно заметить, существует точно три правила. Каждое правило пытается сопоставить кластер на входном пробеле к кластеру на выходном пробеле.

Первое правило может быть объяснено просто можно следующим образом. Если входные параметры к FIS, population, dwelling units, num vehicles, income, и employment, строго принадлежите их соответствующему cluster1 функции принадлежности затем выход, num of trips, должен строго принадлежать его cluster1 функция принадлежности. (1) в конце правила должен указать, что правило имеет вес или важность "1". Веса могут принять любое значение между 0 и 1. Правила с меньшими весами будут значить меньше в окончательном результате.

Значение правила состоит в том, что оно кратко сопоставляет кластер 1 на входном пробеле к кластеру 1 на выходном пробеле. Точно так же другие два правила сопоставляют кластер 2 и кластер 3 на входном пробеле к кластеру 2 и кластеру 3 на выходном пробеле.

Если точка данных ближе к первому кластеру или другими словами наличию сильного членства в первом кластере, питается, как введено myfis затем rule1 будет стрелять с большей силой увольнения, чем другие два правила. Точно так же вход с сильным членством во втором кластере будет стрелять, второе правило будет с большей силой увольнения, чем другие два правила и так далее.

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

Тот выход FIS, num of trips, имеет 3 линейных функции принадлежности, представляющие эти 3 кластера, идентифицированные subclust. Коэффициенты линейных функций принадлежности, хотя не взяты непосредственно из кластерных центров. Вместо этого они оцениваются от набора данных с помощью метода оценки методом наименьших квадратов.

Все 3 функции принадлежности в этом случае будут иметь форму a*population + b*dwelling units + c*num vehicles + d*income + e*employment + f, где aBCDE и f представляйте коэффициенты линейной функции принадлежности. Нажмите на любой num of trips функции принадлежности в редакторе функции принадлежности, чтобы наблюдать параметры этих линейных функций принадлежности.

Используя FIS для исследования данных

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

surfview(myfis)

Рисунок 6: средство просмотра Поверхности ввода - вывода

surfview поверхностное средство просмотра, которое помогает просмотреть поверхность ввода - вывода нечеткой системы. Другими словами, этот инструмент симулирует ответ нечеткой системы для целой области значений входных параметров, на которые система сконфигурирована, чтобы работать. После этого выход или ответ FIS к входным параметрам построены против входных параметров как поверхность. Эта визуализация очень полезна, чтобы изучить, как система собирается вести себя для целой области значений значений на входном пробеле.

В графике выше поверхностного средства просмотра показывает выходную поверхность для двух входных параметров population и num of dwelling units. Когда вы видите количество автоматических увеличений прохождений с увеличением населения и жилых секций, который звучит очень рациональным. Можно изменить входные параметры в X и Y выпадающие поля, чтобы наблюдать выходную поверхность относительно входных параметров, которые вы выбираете.

ruleview(myfis)

Рисунок 7: Управляйте средством просмотра, которое симулирует целый нечеткий процесс вывода

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

Другая функция этого инструмента GUI, это дает вам снимок состояния целого нечеткого процесса вывода, прямо от того, как функциям принадлежности удовлетворяют в каждом правиле к тому, как окончательный результат генерируется через defuzzification.

Заключение

Этот пример попытался передать, как кластеризация и нечеткая логика может использоваться как эффективные методы для моделирования данных и анализа.

Нечеткая логика также нашла различное применение в других областях технологии как нелинейное управление, автоматическое управление, обработка сигналов, система идентификации, распознавание образов, прогноз временных рядов, анализ данных, финансовые приложения и т.д.

Ссылка

[1] - С. Чю, "Нечеткая идентификация модели на основе кластерной оценки", J. Intelligent & Fuzzy Systems, издания 2, № 3, 1994.

Смотрите также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте