ယနေ့ဒေတာမောင်းနှင်သည့်ခေတ်တွင်အချိန်စီးရီးအချက်အလက်များကိုပြုပြင်ခြင်းနှင့်ခွဲခြမ်းစိတ်ဖြာခြင်းသည်အလွန်အရေးကြီးသည်။ အချိန်စီးရီးအချက်အလက်များကိုသက္ကရာဇ်စဉ်အစဉ်အလာအရလေ့လာခြင်း, Anomaly Detection သည်အချိန်ယူရိတ္တည်သို့မဟုတ်အဖွဲ့အစည်းများအားပုံမှန်မဟုတ်သောအပြုအမူများကိုအချိန်မီရှာဖွေတွေ့ရှိရန်နှင့်လိုအပ်သောလုပ်ဆောင်မှုများကိုကူညီနိုင်သည်။ ဤဆောင်းပါးသည်အချိန်စီးရီးအချက်အလက်များတွင်ကွဲလွဲချက်များကိုရှာဖွေရန် PHP နှင့် Machine သင်ကြားမှုနည်းပညာကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်အချိန်စီးရီးအချက်အလက်များကိုပြင်ဆင်ရန်လိုအပ်သည်။ ကျွန်ုပ်တို့တွင်နေ့စဉ်ရောင်းအားကိုမှတ်တမ်းတင်ထားသောအချက်အလက်သတ်မှတ်ချက်တစ်ခုရှိသည်ဆိုပါစို့။ ဒီမှာနမူနာ dataset တစ်ခုပါ။
$dateSales = [
['2019-01-01', 100],
['2019-01-02', 120],
['2019-01-03', 80],
['2019-01-04', 90],
['2019-01-05', 110],
// နောက်ထပ်ရက်စွဲဒေတာ...
];
ခြွင်းချက်ရှာဖွေတွေ့ရှိခြင်းမပြုမီကျွန်ုပ်တို့သည်အချက်အလက်များကိုကြိုတင်ရှာဖွေရန်လိုအပ်သည်။ ပထမ ဦး စွာကျွန်ုပ်တို့သည် timestamps သို့နေ့ရက်များကို timestamps သို့ပြောင်းရွှေ့ရန် algorithms ကိုလေ့လာနိုင်ရန်၎င်းတို့အားထိရောက်စွာကိုင်တွယ်နိုင်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည်အရောင်းအချက်အလက်များကိုပုံမှန်ကွဲပြားခြားနားသောလက္ခဏာများအကြားကွဲပြားခြားနားမှုကိုမထိခိုက်စေရန်သေချာစေရန်အရောင်းအချက်အလက်များကိုပုံမှန်ပြုလုပ်သည်။ Preprocessing အတွက်ကုဒ်ဥပမာတစ်ခု
// ရက်စွဲကို timestamp သို့ပြောင်းပါ
foreach ($dateSales as &$data) {
$data[0] = strtotime($data[0]);
}
// အရောင်းဒေတာကိုပုံမှန်
$sales = array_column($dateSales, 1);
$scaledSales = [];
$minSales = min($sales);
$maxSales = max($sales);
foreach ($sales as $sale) {
$scaledSales[] = ($sale - $minSales) / ($maxSales - $minSales);
}
ကျွန်ုပ်တို့သည်အမွှေးအကြိုင်များကိုရှာဖွေတွေ့ရှိခြင်းမပြုမီ, ဘုံအချိန်တန်လှည့်လည်စီးရီးဆိုင်ရာ aromaly ရှာဖွေတွေ့ရှိမှု algorithms တွင်စာရင်းအင်းနည်းလမ်းများ, စပျစ်သီးပြွတ်နည်းလမ်းများနှင့်နက်ရှိုင်းသောသင်ယူမှုနည်းလမ်းများပါဝင်သည်။ ဒီဆောင်းပါးမှာ aromaly ရှာဖွေတွေ့ရှိမှုအတွက် Arima (autorgressive Moving Permold Model) algorithm ကိုသုံးမယ်။
arima algorithm သည်အချိန်ရပိတ်ခွဲခြမ်းစိတ်ဖြာခြင်းတွင်ကျယ်ပြန့်စွာအသုံးပြုသောစာရင်းအင်းပုံစံဖြစ်သည်။ PHP ရှိ Stats စာကြည့်တိုက်တွင် Arima function မှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဤ algorithm ကိုအကောင်အထည်ဖော်နိုင်သည်။ ဤတွင် Arima algorithm ကိုအသုံးပြုပြီးခြွင်းချက်ရှာဖွေတွေ့ရှိမှုအတွက်ကုဒ်နမူနာတစ်ခုရှိသည်။
$data = new StatsTimeSeries($scaledSales);
// မော်ဒယ် fit
$arima = StatsARIMA::fit($data);
// လာမယ့်ဒေတာအမှတ်ကိုခန့်မှန်း
$prediction = $arima->predict();
// ကျန်နေတဲ့အမှားတွက်ချက်
$residual = $data->last() - $prediction;
// တစ် ဦး ပုံမှန်မဟုတ်သောရှာဖွေတွေ့ရှိတံခါးခုံကိုသတ်မှတ်
$errorThreshold = 0.05;
if (abs($residual) > $errorThreshold) {
echo "Anomaly detected!";
} else {
echo "No anomaly detected.";
}
အထက်ပါကုဒ်များတွင်ကျွန်ုပ်တို့သည်စံနမူနာပြဌာန်းချက်များကိုစောင်ရေးရာစာကြည့်တိုက်ရှိ Timeseries အတန်းအစားနှင့် Arima အတန်းကို ဦး စွာအသုံးပြုသည်။ နောက်ဒေတာအမှတ်ကိုခန့်မှန်းပြီးကျန်နေတဲ့အမှားကိုတွက်ချက်ပါ။ နောက်ဆုံးအနေနှင့်ကျွန်ုပ်တို့သည်ကျန်ရှိနေသေးသောအမှားသည်ပုံမှန်အကွာအဝေးကိုသတ်မှတ်ခြင်းဖြင့်ပုံမှန်အကွာအဝေးထက်ကျော်လွန်ခြင်းရှိမရှိဆုံးဖြတ်ခြင်းရှိမရှိဆုံးဖြတ်ခြင်း,
ဤဆောင်းပါးတွင် PHP နှင့် Machine လေ့လာမှုနည်းစနစ်များကိုအချိန်စီးရီးအချက်အလက်များကိုရှာဖွေတွေ့ရှိရန်မည်သို့အသုံးပြုရမည်ကိုဖော်ပြသည်။ ကျနော်တို့ပထမ ဦး ဆုံးအဆင်သင့်ပြင်ဆင်ထားနှင့် preima algorithm ကိုရွေးချယ်ပြီး Arima algorithm ကိုရွေးချယ်ပြီး PHP ရှိစာရင်းဇယားစာကြည့်တိုက်ကို အသုံးပြု. အကောင်အထည်ဖော်ရန်ဖြစ်သည်။ ခန့်မှန်းခန့်မှန်းအမှားများကိုအပြန့်ရှာဖွေတွေ့ရှိခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အချက်အလက်များ၏ပုံမှန်မဟုတ်သောအရာများကိုထိရောက်စွာတရားစီရင်နိုင်သည်။ ဤဆောင်းပါးသည်စာဖတ်သူများသည်စာဖတ်သူများကိုအချိန်ယူရိပ်ကြီးအချက်အလက်များအတွက် anomaly ရှာဖွေတွေ့ရှိနည်းများကိုနားလည်ရန်နှင့်လျှောက်ထားရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။