DOI: 10.6084/m9.figshare.28721525
title: Gaze User Profiling in Pedestrian Navigation

description: <b>README for Code and Data of the Research Paper</b><b>Title: </b><b>Evaluating the Potential of Profiling Users from Visual Behavior Data for Adaptive Pedestrian Navigation Aids</b><b>1. Requirements</b>- python=3.9- numpy=1.26.3- pandas=2.1.4- matplotlib=3.7.2- scikit-learn=1.4.2- lightgbm=4.3.0- imbalanced-learn=0.11.0- xgboost=1.7.3<b>2. Folder Structure</b>The folder named <b>“GazeUserProfiling”</b> contains the following subdirectories:<b>Study1</b>: Contains data and code for the indoor experiment (VR).<b>Study2</b>: Includes data and code for recognizing gender, expertise, spatial ability, and familiarity in outdoor experiments (RE).<b>Study2_Task</b>: Comprises data and code for recognizing navigation tasks in the RE.<b>readme.pdf</b>: This README file.<b>gaze_user_profiling.yml</b>: The required dependencies for setting up the Python coding environment.<b>3. Running Instructions</b><b>Note</b>: Unzip all .zip files before proceeding.<b>3.1. Study 1</b><b>Step 1: Classifier Comparison. Table 2 is generated in this step.</b>Run Study1/classifier_comparison.py to generate classification results using 11 commonly used classifiers, as described in Section 2.4.<b>Input</b>: Study1/Data/Basic_Statistics_Feature.csv<b>Output</b>: Study1/Result/ClassifierCompareThese results are already provided and can be skipped if desired.Then run Study1/report_table2.py to generate the mean accuracy and F1-scores for each user attribute (Table 2).<b>Output</b>: Study1/Result/Output/Tables<br><b>Step 2: Leave-One-X-Out Cross-Validation. Figures 2 to 4 are based on the results of this step.</b>Run the following scripts to perform user attribute recognition using K-Fold, LOPO, and LOTO cross-validation methods, as described in Section 2.5:Study1/predict_indoor_KFold.pyStudy1/predict_indoor_LOPO.pyStudy1/predict_indoor_LOTO.py<b>Input</b>: Study1/Data/Basic_Statistics_Feature.csv<b>Output</b>: Study1/Result/KFold, Study1/Result/LOPO, Study1/Result/LOROResults are already provided and can be skipped.<br><b>Step 3: Summary and Visualization (Figures 2–4).</b>Generate subfigures of Figures 2-4 using:Study1/plot_figure2.pyStudy1/plot_figure3.pyStudy1/plot_figure4.py<b>3.2. Study 2</b><b>Step 1: Classifier Comparison. Table 3 is generated in this step.</b>Run Study2/classifier_comparison.py for gender, expertise, spatial ability, and familiarity.<br>Run Study2_Task/classifiercompare_Task.py for task classification.<b>Input</b>:Study2/Data/Features/CombinedFeature.csv (for four attributes)Study2_Task/Data/ (for tasks)<b>Output</b>: Study2/Result/ClassifierCompareThen run Study2/report_table3.py to generate mean accuracy and F1-scores for Table 3.<b>Output</b>: Study2/Result/Output/Table/Table3_result.csvResults are already available and can be skipped.<br><b>Step 2: Feature Selection. Figure 5 is generated in this step.</b>Perform the initial feature ranking:Study2/feature_Selection_RF.py (for user attributes)Study2_Task/feature_Selction_RF_task.py (for task)<b>Output</b>: Study2/Result/FeatureSelection/KFold, LOPO, LOROThese results are already generated and can be skipped.Next, run the following scripts in sequence to generate the results of accuracy and F1-score with the changes of top N important features (see Section 3.4):Study2/get_figure5_data.pyStudy2_Task/get_plot5_taskdata.pyStudy2/plot_figure5.py<b>Output</b>: Study2/Result/Output/Image/Figure 5<br><b>Step 3:</b> <b>leave-one-X-out cross-validation. Table4 and Figures 6 to 8 are based on the results of this step</b>Run the following scripts in sequence to recognize four attributes (gender, expertise, spatial ability, and familiarity):Study2/predict_outdoor_KFold.pyStudy2/predict_outdoor_LOPO.pyStudy2/predict_outdoor_LORO.py<b>Input</b>: Study2/Data/Basic_Statistics_Feature.csv<b>Output</b>: Study2/Result/KFold, LOPO, LORORun the following scripts in sequence to recognize<b> </b>task<b>:</b>Study2_Task/predict_outdoor_tasks_KFold.pyStudy2_Task/predict_outdoor_tasks_LOPO.pyStudy2_Task/predict_outdoor_tasks_LORO.py<b>Input</b>: Study2_Task/Data/<b>Output</b>: Study2/Result/KFold, LOPO, LOROResults are already generated and can be skipped.<br><b>Step 4: Summary and Visualization. Generate Table4 and Figures 6 to 8.</b>Generate the final outputs:Study2/report_table4.py → Study2/Result/Output/Table4Study2/plot_figure6.pyStudy2/plot_figure7.pyStudy2/plot_figure8.pyThe README provides a structured overview of the dataset and scripts used in the study. Please ensure that all dependencies listed in <b>gaze_user_profiling.yml</b> are installed before running the scripts.