Внедряването на предсказуема поддръжка в домейна на телекомуникационната мрежа е много по-предизвикателно в сравнение с други домейни, тъй като има много подсистеми, които си говорят помежду си във фонов режим и причината за повреда може да бъде свързана с всяка от тях. Освен това ще имате различни видове и формати източници на данни, което прави предварителната обработка на данните труден процес. Честно казано, най-завладяващата част от всички тези процеси е превръщането на различни източници на необработени данни в набор от данни, подобен на Kaggle.

В предишното си писание се спрях накратко на ключовите моменти. В това писане се фокусирам върху вероятните методологии в проучванията за прогнозна поддръжка в областта на телекомуникациите. Наборите от данни, които трябва да използвате, оформят методологията във вашето изследване. Други параметри, които помагат да се определи методологията, са следните. Какви са изискванията? Просто предвиждане на аларма или трябва да дадете списък със свързани аларми, които имат ефект върху целевата аларма. Какво е определението за аларма? Името на устройството и кодът на причината са достатъчни или се изисква допълнителна информация като рафт/слот/порт на устройството? Друг важен фактор е диапазонът на прогнозиране. Честотата на възникване на алармата, която възнамерявате да предвидите, също е друга точка, която трябва да вземете под внимание.

Ще обединя всички горепосочени проблеми в два случая с обща употреба (сценарий) и ще спомена за тях. Обхватът на това писане е за първия сценарий. Ще спомена за втория сценарий в друго писание.

Когато споменавам тип аларма, имам предвид аларми с уникален код на причината. Например, предвиждането на аларми „УСТРОЙСТВОТО Е ОФЛАЙН“ означава предвиждане на аларми, които възникват на устройства с код на причината „УСТРОЙСТВОТО Е ОФЛАЙН“. Ако трябва да предвидите аларми с повече от един код на причина, предлагам да разработите отделен модел за аларми с всеки различен код на причина. Алармите с различен код на причината обикновено имат различни поведенчески модели. Освен това предполагам, че алармата е аларма на определено устройство с определен код на причината в писмен вид. Аларма на различно устройство със същия код на причината означава различна аларма.

Може да има много аларми, възникващи на едно и също устройство с един и същ код на причината в една и съща времева единица на изследване. Например получавате данните на всеки час и прогнозирате за следващия час, така че вашата единица време е един час. Всички аларми, които възникват на едно и също устройство със същия код на причината в един и същи час, могат да бъдат оценени като еднакви и да се броят за една аларма. Можете да запазите броя на едни и същи аларми в допълнителна колона и да се възползвате от това при проектирането на функции, тъй като само еднократно появяване на аларми и повтарящи се аларми могат да означават различни. Компактната версия на необработените данни (след премахване на дублираните аларми) може да бъде по-полезна по отношение на сложността и проблемите с производителността.

В първия сценарий ви се дават няколко различни вида източници на данни и вашата цел е само да предвидите алармите, преди да се появят. Освен това от вас се изисква да посочите код на причината, име на устройството и допълнителен клон като информация за порт/слот на устройството в отчета за прогнозиране. Най-вероятно ще ви бъде предоставен набор от данни за минали аларми и няколко показателя за производителност на устройства, включително стойностите на показателите за всеки порт/слот на устройствата. Тези два набора от данни са напълно различни типове, алармените данни са данни, базирани на събитие по своето естество, от друга страна можете да използвате данни за ефективността директно в алгоритъм за машинно обучение без никакъв процес на извличане на характеристики, освен няколко основни статистически операции. Поради тази причина трябва да извлечете функции от алармени данни, за да се възползвате от тях при контролиран подход. За да стане ясно, изобразявам алармата и данните за ефективността по-долу.

Това е опростена версия на алармените данни. Може да има стотици или хиляди аларми, възникващи в диапазона от време за прогнозиране. Освен това ще има много повече колони в типичните алармени данни, върху които се извършва инженеринг на функции. Някои от типовете аларми като Cause_Code_1 и Cause_Code_4 се появяват на слота на устройството, от друга страна, някои от тях се появяват директно на устройството. Да предположим, че се опитвате да предвидите аларми с типовете аларми Cause_Code_1, които се появяват в t1 и t3. Тези прогнози се очаква да бъдат направени съответно през t0 и t2. Освен това забележете, че две аларми в t3 са еднакви, така че можете да ги мислите като само една аларма в компактната версия на данните и да запазите допълнителна колона, наречена total_alarm_number със стойност 2.

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

Натъкваме се на фундаменталния въпрос, какво ще предскаже моделът, който проектирахме? Като първа опция можете да оцените алармата като състояща се от име на устройство, код на причината и информация за слот/порт. Предполагам, че разработвате отделен модел за всеки код на причина. Поради тази причина всъщност трябва да предвидите устройството и слота/порта на устройството. Въпреки това има сериозни недостатъци на тази опция, може да има стотици слотове/портове на устройство. Така че, ако мислите, че тези компоненти са уникална аларма, това означава хиляди и стотици различни уникални аларми в системата. Освен това повечето от тях са се случвали твърде рядко преди. Искам да кажа, че конкретна аларма може да се появи на устройство всяка седмица, но същият вид аларма може да се появи на определен порт/слот на същото устройство веднъж в годината. Това вече е небалансиран набор от данни, този подход дори ще намали процента на малцинствената класа много повече. Като втори вариант, можете да проектирате модел, който предвижда само името на устройството, без да правите интерпретация относно слота/порта. По този начин ще се смекчи сложността на целия процес и ще бъде по-рационален от гледна точка на степента на дисбаланс на класовете.

Какво ще кажете за предвиждането на слот/порт, ако следвате втората опция? След предвиждане на името на устройството може да се проектира друг модел, който анализира отклоненията в данните за слота/порта на устройствата. Показателите за производителност на всеки слот/порт на устройства могат да се използват като функции в този модел. Можете да се възползвате и от алармените данни за модела за откриване на аномалии, тъй като той включва информация за слота/порта на устройствата. Всички методи за откриване на аномалии, като Gaussian Mixture Model (GMM) и One Class SVM, могат да се използват при откриване на отклонения. Като цяло можете да мислите за този подход като за многослоен подход, като първо предскажете устройството, на което е вероятно да възникне аларма, след което откриете извънредния слот/порт на това устройство.

В гореспоменатия подход, който се състои от два отделни модела, първият е предсказващ модел, който прилага контролирано обучение, вторият е моделът за откриване на аномалии, който е пример за неконтролирано обучение. За предсказващия модел, който прави прогнози само за устройства, могат да се използват всякакви алгоритми за машинно обучение като Random Forest, Logistic Regression, LSTM или Convolutional Neural Networks. Тъй като както алармените данни, така и данните за ефективността са данни от времеви редове, тази прогноза може да се разглежда като силно небалансирана класификация на времеви редове. Поради тази причина всички функции, включително информация за предишни времеви интервали, ще повишат точността на модела. Освен това, всяка методология, като увеличаване на дискретизацията, намаляване на броя или присвояване на тегла на клас, трябва да се използва за справяне с проблема с дисбаланса на класа. Няма да споменавам алгоритмите за машинно обучение и стъпките за предварителна обработка на данни по подробен начин, те са извън обхвата на това писане.

Една от най-важните части, която влияе пряко върху резултатите от прогнозирането, е частта за извличане на характеристики в особено предсказуемия дизайн на модела. Основната стъпка е извличане на функции от алармени данни, което задължително се прави, ако възнамерявате да приложите контролиран метод на обучение чрез използване на базирани на събития алармени данни. Преди да извлечете функции от алармените данни, може да се формира списък на всички свързани аларми за всяка аларма/повреда, която целим да предвидим. За да извършим това, можем да съберем всички аларми в предишните времеви интервали, в които е възникнала аларма/повреда, и след това задаваме праг за честотите на алармите, за да вземем под внимание само по-необичайните аларми и да създадем свързан списък с аларми за всяка аларма/повреда. Броят на свързаните аларми, възникнали в този времеви интервал, може да се използва като функция. Да приемем, че създавате гореспоменатата функция за аларма A (състои се от име на устройство и код на причината), първо отидете до предишните времеви интервали от времеви интервали, възникнали в историята на аларма A, и съберете всички аларми в тези времеви интервали в пул. Да приемем, че честотата на алармата A е 5% процента и истината е, че повечето аларми в пула имат висока честота и всъщност се държат като шум. Като следваща стъпка можете да филтрирате всички аларми с честота, по-висока от 15–20%. След това можете да изберете топ 10 или 20 аларми, след като подредите останалите аларми в пула по честота. Този списък от свързаните аларми на аларма A и броят на свързаните аларми може да бъде добър индикатор за прогнозиране на аларма A. Същият подход трябва да бъде разширен за всички други аларми, за които ще бъде направена прогноза. Друга важна стъпка е откриването на важни типове аларми. Някои от типовете аларми (аларми със специфичен код на причината) са склонни да се появяват по-често в сравнение с нормалния си модел, преди да се появи алармата, предназначена за прогнозиране. Броят на тези типове аларми също може да се използва като функция. Освен това, броят на всички аларми, възникващи в устройството, броят на всички аларми с един и същ код на причината, броят на всички аларми в същия регион може да бъде добър индикатор. Имената на устройства понякога се състоят от подсмислени компоненти и анализирането на името на устройството също може да бъде обмислено. И накрая, броят на повтарящите се аларми може да бъде важен знак, който трябва да се вземе под внимание. Всички тези характеристики могат да бъдат извлечени от алармени данни.

От друга страна, не е необходимо да извършвате сложни операции за извличане на функции за данни за ефективността. Можете директно да използвате някои статистически стойности на показатели за ефективност като max, min, avg, stddev във времевия слот за прогнозиране. Като последна стъпка дефинирате размер на прозореца и взимате сума или средна стойност на стойностите на характеристиките в съответния прозорец. Те могат да се използват като допълнителни функции, ако използвате алгоритъм като логистична регресия и случайна гора, които не адресират директно данни от времеви серии. Тъй като това са данни от времеви серии, включването на функции, свързани с времето, в методологията за контролирано обучение ще бъде като цяло от полза.

След всички етапи ще имате влакова композиция, изобразена в таблицата по-долу за първия прогнозен модел.

В този момент възниква друг въпрос, ще проектирате ли отделен модел за всяка аларма (за всяко устройство)? В горната опростена таблица се появяват имена на няколко устройства, всъщност може да има хиляди различни устройства в системата, така че това означава повече от хиляда отделни модела. Това не изглежда много разумно и устойчиво. Вместо това само един модел може да бъде проектиран за всички аларми с един и същ код на причината, независимо от устройството. Трябва да направите предположение в този подход, това е подход, базиран на код на причина и предполага, че всички аларми с един и същ код на причина (дори на различни устройства) възникват поради подобни причини. Устройствата не се държат по различен начин във вътрешните си процеси. Този подход дава възможност също да бъдат предвидени аларми, които са се случвали много рядко или никога преди това.

Ще спомена за другия подход в следващото си писане.