Data Mining Analysis of an AR-Based Cultural Heritage Mobile Application
CS ELEC 2 - Data Mining | BS Computer Science 3B Submitted: May 31, 2026
- Abion, Gerik Jed L.
- Acuña, Angelo James M.
- Balingbing, Raymond C.
- Balquin, John Jacob C.
- Rivera, Elyzel Jade P.
- Overview
- Problem Statement & Objectives
- Dataset
- Data Preprocessing
- Feature Engineering
- Feature Selection
- Data Mining Techniques
- Results & Findings
- Discussion
- Conclusion
- Tools & Libraries
- References
Albay Reality is an Augmented Reality (AR) mobile application made to promote and preserve the cultural heritage of Albay, Philippines. It provides 3D visualization of cultural sites, historical information, interactive quizzes, and map-based navigation.
This project applies data mining techniques to the user interaction data generated by the app's quiz/game module. The goal is to understand user engagement patterns, cultural awareness, and whether demographic or behavioral factors can help predict quiz proficiency.
Traditional heritage education such as textbooks, brochures, and static displays can be less engaging for learners, tourists, and local communities. Cultural awareness, especially among younger generations, can also be affected when digital tools are not used to promote local culture.
Albay Reality addresses this through an interactive AR experience, while this study uses data mining to analyze the resulting user data and provide insights for better educational and cultural content.
- Identify patterns in user engagement and quiz performance related to Albay's cultural heritage sites.
- Determine whether demographic factors such as age group, location, and background influence cultural awareness and learning outcomes.
- Identify user groups that show lower familiarity with specific heritage sites.
- Provide data-driven recommendations for cultural preservation and educational content design.
- Source:
raw_quiz_data.csv, exported from the Albay Reality application database. - Raw Records: 93 quiz attempts
- Attributes: 17 total attributes
- Data Type: User profile and quiz performance data
| # | Attribute | Type | Description |
|---|---|---|---|
| 1 | userId | String | Unique identifier per registered user |
| 2 | firstname | String | User's first name |
| 3 | middlename | String | User's middle name |
| 4 | lastname | String | User's last name |
| 5 | String | User's email address | |
| 6 | sex | String | User's sex |
| 7 | region | String | User's region |
| 8 | province | String | User's province |
| 9 | city_municipality | String | User's city/municipality |
| 10 | birthDate | String | User's date of birth |
| 11 | quizId | String | Unique identifier per quiz |
| 12 | totalTimeTaken | Integer | Total time spent per quiz attempt |
| 13 | correct | Integer | Number of correct answers |
| 14 | incorrect | Integer | Number of incorrect answers |
| 15 | missed | Integer | Number of missed questions |
| 16 | dateTaken | String | Date of the quiz attempt |
| 17 | answers_json | String | JSON record of per-question results |
The dataset is record data, where each row represents one quiz attempt across four heritage-site-themed quizzes.
Some birthDate values were missing or could not be parsed. Instead of removing these records, invalid or missing dates were converted to None. These were then assigned to the "Unknown" category through the age_group() function.
This allowed the records to remain in the dataset while still providing a usable categorical value for the decision tree and Gower-distance clustering.
The raw dataset contained one row per quiz attempt, and some users attempted multiple quizzes. The attempts were aggregated by userId.
Numeric fields such as totalTimeTaken, correct, incorrect, and missed were summed into:
attempt_counttotal_timetotal_correcttotal_incorrecttotal_missed
This produced one row per unique user and prevented users with more quiz attempts from having too much influence on the classification and clustering results.
The following features were created during preprocessing:
| Feature | Type | Derivation |
|---|---|---|
age |
Numeric | Computed from birthDate |
age_group |
Categorical | Grouped based on age |
proficiency_level |
Categorical | Computed from the user's overall quiz percentage |
Child- 12 and belowAdolescent/Young Adult- 13 to 18Adult- 19 to 59Senior- 60+Unknown- Missing or invalid birth date
The proficiency level was based on NAT-style thresholds:
| Score Range | Label |
|---|---|
| 0-24 | Not Proficient |
| 25-49 | Low Proficient |
| 50-74 | Nearly Proficient |
| 75-89 | Proficient |
| 90-100 | Highly Proficient |
proficiency_level was used as the target for classification but was excluded from clustering since clustering should explore patterns without directly using the outcome.
The final features used for modeling were:
attempt_counttotal_timesexprovincecity_municipalityageage_group
- Identifiers:
userId, names, andemailwere removed since they do not provide useful predictive information. - Constant columns:
regionwas excluded because it had no variation. - Score-derived fields:
total_correct,overall_percentage, and similar fields were excluded from classifier inputs to prevent the model from directly using the answer it is supposed to predict.
The project used the rpart decision tree with 5-fold cross-validation.
The decision tree was selected because it is:
- Easy to interpret
- Suitable for mixed categorical and numeric data
- Reasonable for small datasets
The model recursively splits the data based on features that best separate the proficiency classes and then prunes the tree to reduce unnecessary complexity.
Because of the small dataset, the initial model struggled to identify meaningful patterns. Increasing the aggregated dataset to 32 users improved the Kappa score from 0 to 0.245, but the classification results were still limited.
K-Means was used to group users based on their engagement.
The features used were:
attempt_counttotal_time
Both features were standardized so they could contribute equally to the clustering process.
The Elbow Method suggested 3 clusters. One outlier user with 13 attempts was removed to avoid heavily affecting the cluster centers.
PAM clustering with Gower distance was used to group users based on demographic information:
age_groupprovincecity_municipality
Gower distance was used because these features are mostly categorical.
The Silhouette Width suggested 5 clusters as the optimal number of demographic groups.
- Aggregated Dataset: 32 users
- Training/Test Split: 70/30
- Test Accuracy: 0.60
- Kappa: 0.245
The model leaned toward the lower proficiency classes and did not predict the Proficient class on the test set. It also struggled to distinguish between Low Proficient and Not Proficient.
The variables ranked by importance were:
agetotal_timecity_municipalityattempt_countprovincesexage_group
The root split was based on age < 21.
Younger users were generally directed toward the Low Proficient class, while users aged 21 and above were generally classified as Nearly Proficient.
The tree also used city_municipality, attempt_count, and age to make further splits.
However, the model did not use Proficient as a terminal prediction, showing that the current dataset is still too small for a reliable 4-class classification model.
The K-Means model produced three user personas:
| Persona | Avg. Attempts | Avg. Total Time (s) | Proficiency Mix |
|---|---|---|---|
| Tester / Speed-Runner | 1.53 | 45.24 | 8 Low, 6 Nearly, 3 Not Proficient |
| Dedicated | 4.00 | 162.13 | 2 Low, 6 Nearly Proficient |
| Casual | 3.67 | 62.00 | 2 Low, 3 Nearly, 1 Proficient |
The model had a silhouette score of 0.548, showing moderate cluster separation.
Users with more attempts and longer quiz times tended to have better proficiency results, while low-engagement users tended to have lower proficiency. However, each group still had mixed results, so engagement alone cannot strongly predict proficiency.
The PAM model produced five demographic groups:
| Group | Count | Dominant Age Group | Dominant City |
|---|---|---|---|
| Dem Group 1 | 4 | Adult | Tabaco |
| Dem Group 2 | 7 | Adult | Legazpi City |
| Dem Group 3 | 3 | Child | Tabaco |
| Dem Group 4 | 3 | Adolescent/Young Adult | Tabaco |
| Dem Group 5 | 6 | Adult | Daraga (Locsin) |
The model had a silhouette width of 1.00, showing very clear demographic separation. However, this does not necessarily mean that the groups are also separated by proficiency.
Daraga adults showed a stronger tendency toward higher proficiency, while some groups from Legazpi City and Tabaco leaned more toward lower proficiency levels.
The main challenge was the small dataset. Only 22 users were available for training after the split, and some proficiency classes had very few examples.
Because of this:
- The Kappa score was low at 0.245.
- Some classes were difficult to predict.
- The test set was small and unstable.
- The model could not reliably learn patterns for rarer proficiency categories.
A larger dataset would be the biggest improvement for the classification model.
The small dataset also limited the clustering analysis. Instead of using clustering for prediction, it was mainly used to explore user behavior and demographic patterns.
One user with 13 quiz attempts was removed as an outlier to avoid affecting the engagement clusters too much.
The resulting clusters still contained mixed proficiency levels, so it is difficult to directly connect a specific cluster with a specific proficiency outcome.
A larger dataset would help create more reliable clusters and stronger connections between engagement, demographics, and proficiency.
The main takeaway from this project is that the current dataset is still too small to make strong or generalizable conclusions.
The classification model had limited predictive power, while clustering was more useful for exploring patterns in user behavior and demographics.
Even with the dataset limitations, the clustering results showed two notable patterns:
- Users who spent more time on quizzes and interacted more with the app tended to perform better than users who rushed through or interacted less.
- Adult users from Daraga showed comparatively higher proficiency than users from Legazpi City or Tabaco.
These findings should still be treated as tentative because of the small sample size.
Overall, the project shows that data mining can help understand how users interact with Albay Reality and can provide insights for improving its cultural and educational content. However, having more users and more quiz interactions would be important for producing more reliable results.
rpartrpart.plotdplyr
Language: R
clusterdplyrggplot2
Methods: K-Means, PAM, Gower Distance
Language: R
- Source dataset:
raw_quiz_data.csv, Albay Reality application database - Roldan, S. J. (2023). Adaptability to digital tourism by the travel and tour operators in Albay. International Journal of Education, Business and Economics Research.
- Du, L., Kuo, W. T., Tang, Y. M., & Ho, G. (2026). Comparative analysis of traditional and metaverse-based education: impacts on students' all-round development. BMC Psychology, 14(1).