PROJEKT: Wykrywanie anomalii w zużyciu paliwa dla Silva
| # Python | # Spark | # Flask | # MySQL | # AWS |
| # SQL | # Hadoop | # Django | # PostgreSQL | # Azure |
| # VBA | # Kafka | # SQLite | # GCP | |
| # Flink | # MongoDB | # cloud on-premises |
- okres
- maj 2014 – maj 2018
- rola
- Data Scientist
- firma
- KRONOSPAN
Firma Silva, będąca częścią Grupy Kronospan, zarządzała flotą około 350 pojazdów, w tym ciężarówek terenowych, specjalistycznych oraz pojazdów typu TIR. Pojazdy te były intensywnie eksploatowane i działały w różnych warunkach pogodowych oraz terenowych. Każdy pojazd miał przypisanych kilku kierowców, co sprawiało, że monitorowanie zużycia paliwa i tras było nie lada wyzwaniem. Pojazdy były tankowane na wewnętrznych stacjach paliwowych ulokowanych w zakładach Kronospan, co z jednej strony upraszczało logistykę, ale z drugiej strony tworzyło ryzyko niekontrolowanego zużycia paliwa.
Głównym problemem, który musiałem rozwiązać, było wykrywanie ewentualnych nadużyć w postaci kradzieży paliwa oraz nieautoryzowanych tras. Ze względu na dużą skalę procesu zużycia paliwa i częstotliwość tankowań, ręczne monitorowanie było niemożliwe. Zdecydowałem się na wykorzystanie metod statystycznych i analizy danych, aby wychwytywać anomalie w zużyciu paliwa, które mogłyby wskazywać na oszustwa.
REALIZACJA PROJEKTU
Pierwszym krokiem było zgromadzenie danych na temat zużycia paliwa, tankowań, tras przejazdów oraz warunków, w jakich działały pojazdy. Kluczowym elementem było zrozumienie normalnego wzorca zużycia paliwa dla każdego rodzaju pojazdu, biorąc pod uwagę różne czynniki, takie jak warunki terenowe, pogodowe oraz specyficzne charakterystyki danego pojazdu i trasy.
Model, który stworzyłem, opierał się na prostych statystycznych algorytmach do wykrywania odchyleń od normy. Używałem rozkładów statystycznych i obliczeń średnich zużycia paliwa na określonej trasie i w określonych warunkach. Każde znaczące odchylenie od standardowych wartości było rejestrowane jako potencjalna anomalia. System porównywał dane dla podobnych tras i pojazdów, a także wykrywał różnice w zużyciu paliwa między kierowcami.
Podczas analizy, wykryłem jednak nieoczekiwane zjawisko. Jeden z kierowców regularnie osiągał najlepsze wyniki w zużyciu paliwa, co na początku wydawało się wzorowe. Po głębszej analizie okazało się, że kierowca ten dolewał paliwo z własnej kieszeni, aby poprawić swoje wyniki i zdobyć nagrodę dla najlepszego kierowcy. To zachowanie wprowadzało błąd do modelu, który nie przewidywał takiego rodzaju działań.
Aby rozwiązać ten problem, musiałem dostosować model, wprowadzając dodatkowe reguły dotyczące zbyt dobrych wyników zużycia paliwa, które mogłyby sugerować nieprawidłowości w danych. Uwzględniłem także większą weryfikację danych z innych źródeł, takich jak harmonogramy tankowań i długość tras, aby upewnić się, że wyniki są zgodne z rzeczywistością.
Ostatecznie model działał prawidłowo, wykrywając zarówno próby kradzieży paliwa, jak i nietypowe zachowania kierowców, które wpływały na wyniki analizy.
Pierwotnie opublikowano na sigmaquality.pl.