Team Members:
Yuchu Luo, Peking University, [luoyuchu@pku.edu.cn] PRIMARY
Datong Wei, Peking University, [weidt@pku.edu.cn]
Jiachen Chen, Peking University, [1800012949@pku.edu.cn]
Yuhan Guo, Peking University, [1900017746@pku.edu.cn]
Xiaoru Yuan, Peking University, [xiaoru.yuan@pku.edu.cn] SUPERVISOR
Student Team: YES
Tools Used:
Python
Excel
D3.js
Adobe Illustrator
MovementFinder, developed by Peking University, 2014
Several simple visualization tools, developed by Peking University, 2021
Approximately how many hours were spent working on this submission in total?
150
May we post your submission in the Visual Analytics Benchmark Repository after VAST Challenge 2021 is complete?
Yes
Video
undefined
As a visual analytics expert assisting law enforcement, your mission is to identify which GASTech employees made which purchases and identify suspicious patterns of behavior.. You must cope with uncertainties that result from missing, conflicting, and imperfect data to make recommendations for further investigation.
Use visual analytics to analyze the available data and develop responses to the questions below. In addition, prepare a video that shows how you used visual analytics to solve this challenge. Submission instructions are available here. Entry forms are available for download below.
Before exploring the popularity of locations, we matched the credit cards and loyalty cards. We determine whether the records of credit cards and loyalty cards are matched according to rules in Fig 1.1. The reason we define the second class match is that we observed the existence of many pairs of records being of different prices but the same numbers after decimal points in prices. We infer they are the same deal of transactions under a strange loyalty card policy.

After matching, there are 82 unmatched loyalty card records and 182 credit card records. And the matched pairs are merged. So we got the processed list of transactions. And we find some anomalies during matching. (Fig 1.2)

We firstly explore the popularity of POI from the statistical overview. As Fig 1.3 and Fig 1.4, we demonstrate the visiting times / total cost and average visiting daytime of different POIs with a scatterplot (locations like homes and the GASTech are irrelevant in this question). We found that some POIs for eating are visited most frequently like Brew've Been Served in the morning, Katerina's Cafe at lunch and dinner time. We can also check the detail by interactions between the scatterplot and a table-like view. (Fig 1.5)

The most POIs with high costs are related to industrial production, while others are shops or restaurants. (Fig 1.4)


Through the overview of transactions, we can find anomalies in time. For example, the transactions in Kronos Mart always happen at midnight. (Fig 1.6)

Some anomalies in prices are also able to be detected. For example, the largest transaction happened in Frydos Autosupply n' More (Fig 1.7). And By filtering and nonlinear transformation, we can recognize the largest transaction related to food. (Fig 1.8)


The anomalies in cards matching have been mentioned before. And we partially correct them by the second class match rule.
Adding the GPS data of vehicles, we tried firstly to map the POIs to a precise position in the map. The original tourist map only give very rough position of POIs. Some POIs even more do not show up in the tourist map. For matching the POIs and positions on the map, we combined an automatic algorithm and interactive visualization system. (Fig 2.1)

In our visualization system, all the positions where any cars had been stay are annotated as the candidate positions. What we need to do on the visualization system is to find correspondent candidate position for each POI. In our visualization, user can select a candidate position as well as a POI at the same time to compare their temporal features of visiting. The entries would be automatically sorted for convenience. (Fig 2.2)

To infer the owners of credit cards and loyalty cards, we need to match the cards and cars. We leverage a pipeline including an automatic matching algorithm and a manual interactive determination.

Firstly, we design a metric to measure the likelihood of a car matching a car. Because we think a transaction in a card is more likely to match with a car stop event than a. while the opposite is not true. So the matching score will be calculated based on each transaction. (Fig 3.1)
In the outcome of automatic matching, some results are very confident, while others are weaker or even conflict with each other. So we implemented a simple visualization tool to check and do further determination. (Fig 3.2)

A result overview and a rough check can be done on the matrix view. The score and rank of each pair can be read when the mouse hovers. In this view, a grid will be framed by a red border if it has maximum value among its column and row. This kind of grids is likely to represent stable and confident matching pairs. While the border of grids with only the maximum value among its column or row is a dashed red box. (Fig 3.3)
We also can check the distance between the score of the best match and the second-best match. If the distance is far enough, we would think the match is with strong confidence.
For those pairs which are difficult to discriminate, we need more careful check, we provide small multiples to check the detailed matching situation of each transaction. (Fig. 3.4)

As for the uncertainty in the data, we found mainly three categories of uncertainties. The first type of uncertainty is the record time-shifting. As mentioned before, the Kronos Mart and several POIs for breakfast have obvious record time time-shifting.
The second type of uncertainty in the data is the noise in GPS records. But fortunately, the noise only appears in the GPS records of car #28. (Fig 3.5)

The last one is the missing GPS records. The driver of car #9, Gustav Cazar, has a spotty GPS logger. There are many missing segments in the GPS record of car #9, which makes it hard to trace its actual trajectories. (Fig 3.6)


Elsa(#7) and Brand(#33) drove to the Chostus Hotel together during lunch time.

Isande(#28) went to #22, #23 and #30’s home 2 times. Isande(#28) went to Ahaggo Museum with Adra(#22) on January 18th, and Adra(#22) paid the bill.

16 cars gathered at #2’s home at night on January 10th.

Car #15 and #16 stayed at #10’s home during midnight on January 7th. Car #15 and #24 stayed at #32’s home during midnight on January 9th. Car #16 and #21 stayed at #35’s home during midnight on January 11th. Car #21 and #24 stayed at #4’s home during midnight on January 14th.