A background of the logic of Darmok can be found here. I have taken the logic in the blogpost and using C# I have written a predictive system called Darmok.
Lets look at Charlie Brown’s grocery bill for the las 10 years
Jan | Feb | Mar | April | May | Jun | Jul | Aug | Sept | Oct | Nov | Dec | |
2008 |
538 |
780 |
1067 |
602 |
986 |
939 |
900 |
864 |
1066 |
1067 |
811 |
755 |
2009 |
967 |
894 |
960 |
1094 |
711 |
1191 |
1225 |
1114 |
940 |
1073 |
935 |
1350 |
2010 |
1019 |
877 |
1454 |
1153 |
920 |
1416 |
1318 |
708 |
710 |
879 |
1035 |
775 |
2011 |
952 |
750 |
886 |
739 |
1216 |
811 |
676 |
957 |
548 |
712 |
259 |
628 |
2012 |
672 |
851 |
782 |
451 |
95 |
199 |
542 |
792 |
582 |
501 |
437 |
161 |
2013 |
83 |
176 |
1181 |
977 |
912 |
1028 |
1173 |
1242 |
897 |
1026 |
1075 |
1149 |
2014 |
820 |
1089 |
750 |
856 |
1131 |
1207 |
1324 |
1342 |
1376 |
1048 |
1262 |
836 |
2015 |
859 |
857 |
847 |
925 |
991 |
673 |
1022 |
1053 |
779 |
868 |
1022 |
975 |
2016 |
851 |
1015 |
833 |
1098 |
768 |
834 |
916 |
899 |
923 |
918 |
609 |
915 |
2017 |
765 |
871 |
868 |
833 |
959 |
995 |
952 |
1083 |
898 |
652 |
839 |
1023 |
What we want Darmok to do
- Take the first 5 years 2008-2012 as initial historic data that the Darmok will use to predict.
- Predict data for each month for years 2013-17 each year you cumulate the history from previous years. Compare your predictions to actual result, this is how the Darmok learns and forms a logic for the data behavior.
Here is the result fed out from Darmok
Predicted | ||||||||||||
Jan | Feb | Mar | April | May | Jun | Jul | Aug | Sept | Oct | Nov | Dec | |
2013 |
906 |
830 |
837 |
611 |
403 |
353 |
553 |
797 |
361 |
399 |
268 |
161 |
2014 |
382 |
394 |
1002 |
789 |
614 |
617 |
840 |
1063 |
582 |
668 |
664 |
629 |
2015 |
540 |
697 |
843 |
814 |
855 |
865 |
1079 |
1256 |
976 |
825 |
978 |
697 |
2016 |
654 |
758 |
803 |
863 |
923 |
742 |
1064 |
1218 |
903 |
828 |
1037 |
809 |
2017 |
723 |
866 |
774 |
971 |
866 |
741 |
1008 |
1123 |
921 |
853 |
887 |
851 |
2018 |
734 |
880 |
772 |
934 |
905 |
806 |
985 |
1132 |
922 |
763 |
880 |
923 |
Lets look at the standard deviation which is a measure of the difference between the actual and the predicted.
You see that by year 2017 the StDev is very low and quite stable. Darmok learned from history first and then learned from prediction errors. It helped Darmok create a profile of the event or person and predict better.
Darmok assisting IDM teams
Next we will look how Darmok can help System or Security Operations teams.