Извлечение шаблонов из данных журнала устройства
Я работаю над проектом, в котором мы должны извлечь шаблоны (поведение пользователя) из данных журнала устройства. Журнал устройства содержит различные действия устройства с отметкой времени, например, когда устройства были включены или когда они были выключены.
For example:
When a person enters a room. He first switches on the light and then he
switches on the fan or Whenever the temp is less than 20 C, he switches off
the AC.
Я думаю использовать Байесовские Сети для извлечения этих паттернов.
- Изучите байесовскую сеть из данных (используя Weka или Netica).
Дуги в сети Байеса дадут шаблоны / зависимости между различными устройствами.
Это правильный подход?
Изменить: хронологический порядок между устройствами имеет значение.
1 ответ
Это правильный подход?
Есть много возможных подходов, но вот очень простой и эффективный, который подходит для области:
Учитывая характер приложения, хронологический порядок на самом деле не имеет значения, не имеет значения, если Fan
включается до Light
например
Также, учитывая, что у вас может быть, например, датчик движения для запуска процедуры, которая считывает датчики, и, возможно, периодическая проверка температуры, вы можете использовать сеть ниже, чтобы воздействовать на извлеченные шаблоны (нет необходимости дополнительно усложнять его хронологическим порядком и событием). отслеживание, мы извлекаем данные для обработки, и порядок событий в этом домене не интересен)
Например: когда человек входит в комнату. Сначала он включает свет, а затем включает вентилятор или всякий раз, когда температура составляет менее 20 ° С, он выключает переменный ток.
Журнал необработанных устройств может выглядеть примерно так: T/F - True/False:
Person in room | Temperature | Light | Fan | AC
-----------------------------------------------
T | 20 | T | T | T
T | 19 | T | T | F
F | 18 | F | F | F
Имея достаточное количество выборок, вы можете обучить модель описанному выше, например, Наивный Байес не чувствителен к нерелевантным функциям / входам, например, если вы посмотрите на мою первую необработанную таблицу выше, которая включает в себя все переменные и попытаетесь предсказать AC
при наличии достаточных данных будет понятно, что некоторые исходные данные не очень важны или не имеют никакого значения
Или, если вы знаете, как перед тем, как Light
, Fan
, а также AC
зависит от, например, мы знаем Light
не будет зависеть от Temperature
и что Fan
а также AC
не волнует, если Light
включен или нет (они могут работать, даже если человек спит, например), так что вы можете сломать его, как показано ниже:
Person in Room | Light
----------------------
T | T
F | F
Person in Room | Temperature | Fan
----------------------------------
T | 20 | T
F | 25 | F
Person in room | Temperature | AC
---------------------------------
T | 20 | T
T | 19 | F
F | 20 | F
F | 19 | F