Evaluation

Summary of Achievements

MoSCoW Requirements

Functional requirements



Id Requirements Priority State Contributors
1 Output a number which is a citation count Must All
2 Allow the user to upload a file Should All
3 Allow the user to choose a file or drag -drop file on the web app Should Arushee
4 A search bar to search papers using DOI Should Arushee
5 Search using the author's name Could N/A
6 Display H-index and author name with citation prediction if more information is provided Could N/A
Key functionalities 100%
Optional functionalities 0%


Non-Functional requirements



Id Requirements Priority State Contributors
1 Usability: Clear and easy to navigate UI Must Ahmed, Arushee
2 Accuracy: The R2 for the prediction model should be greater than 0.3 Must All
3 Use python as the backend language Must Gui
4 Security: Add a login page Could N/A
Key functionalities 100%
Optional functionalities 0%

Known Bug List

Functional requirements



Id Bug Description Priority
1 If multiple abstract files are uploaded in the upload page only the last one Is used instead of rejecting the input as invalid. Low
2 Certain hyperparameters showed unstable results when tuning them, specifically max_iter for the stochastic gradient decent model and min_child_weight for the xgboost model. More testing might be needed for these hyperparameters to make sure the value is optimal. Low
3 Due to hardware limitations and time constraints, we were only able to use a small sample of 10,000 papers to experiment with the models when tuning and testing different hyperparameters. This means that the scores we got were not completely representative scores. Low


Individual Contribution Table

Functional requirements



Task Ahmed Arushee Gui
Client Liasaon 33% 34% 33%
Requirements Analysis 33% 33% 34%
Research 34% 33% 33%
UI Design 20% 60% 20%
Pre-processing Data 50% 20% 30%
Experimenting 80% 10% 10%
Web App Development (Back End) 5% 5% 90%
Web App Development (Front End) 40% 60% 0%
Testing 20% 40% 40%
Video Editing 0% 50% 50%
Project Website 34% 33% 33%
Overall Contributions 32% 34% 34%
Main Roles Processing Data, Experimentation, Front-End Developer UI Designer, Front-End Developer, Tester Processing Data, Back-End Developer, Tester


Critical Evaluation

User Interface

The user interface was designed with simplicity and usability in mind. We initially proposed a design which displayed related metrics of the input paper along with the predicted citation count on the analysis page. In the final design we decided against this because of the difficulties obtaining these metrics, most papers were locked behind a pay wall and some metrics were simply not available.

Instead, the analysis page now shows the title and abstract of the input paper on the left, for reference, and shows the predicted citation count on the right. Our upload page, which is also the main page, is similarly intuitive with labelled input boxes for both the title and abstract. The title is input into a text box, while the abstract is input as a file that is uploaded to the page. The user has the option to drag and drop or browse the pc and select the file, depending on their preference. Users can also easily change between models with the box at the bottom.

Both pages are simplistic in design and easy to navigate. They meet all the users’ needs and give the users alternative ways to interact with the interface.

Functionality

The program functions without problems and serves its purpose well. The upload page takes the title and abstract of the paper as input and the analysis page displays the citation count prediction for the user. The models that we used all meet an acceptable value of R^2 which is the metric we are using to measure the model’s performance.

Stability

We made sure to write unit tests for all the key functions in our web application to ensure the program is stable and any bugs can be found and fixed. The final product contains very few known bugs which are all very low priority.

In terms of the models themselves, we have documented our experiments testing the effects of tuning different hyperparameters and the effect it has on the performance of the models. These tests were carried out to find the optimal values of hyperparameters to increase the performance of our models. However, the experiments we have carried out are difficult to reproduce. This is mainly because it would take too long to run all the tests from the beginning. The pre-processing steps took especially long since we were dealing with a large data set of over 600,000 samples. Training the models can take very long as well, because we used cross-validation to get a more representative score when testing the models. Also, running the tests again would yield slightly different results because of the random nature of the testing and training split used to evaluate the models. We decided to do it this way to make sure the scores we got represent the model performance well, since certain splits will yield better scores than other splits.

Efficiency

Efficiency in our code was not a problem since the application code is very simple and only requires the use of the model to display the predicted citation count. Because of this, the code runs efficiently since the models are pre-trained and are used by the application for prediction. Training a new model every time a prediction is made would take very long, especially for the more complex models, so it was very necessary that we trained the models before hand and loaded them in our application when they are used for the prediction.

Compatibility

Our application is not platform dependent and will for both Windows and Linux machines. The application does require python to be installed along with some dependencies that can be found in the requirements.txt file.

Maintainability

Our source code is well documented, and we have used meaningful labels for naming variables and functions so that anyone reading it can easily understand and change anything. Adding models is also very simple, they can just be imported for use in the predict method.

Project Management

Our project was very well managed throughout all stages. We made sure to divide the work fairly between team members and we played to each other’s strengths when assigning tasks to make the development process as smooth as possible. We also met very frequently, usually once or twice every week, to share any progress or issues and to plan our next steps. This helped us meet all our deadlines without much trouble.

Future Work

Improving the dataset used

The dataset used was of a suitably large size, but given more time and resources, a larger and more general dataset of papers can be used to train the model on. This will make the model have a more reliable prediction on more papers.

Parameter usage

The models we trained had acceptable performance for our client, but it is nowhere close to state-of-the-art. In the future, it may be better for us to dedicate a larger amount of time to researching how parameters should be tweaked for types of data.

Help page

Including a help page would have been a nice addition to the project. This was one of the features we wanted to include initially, but did not due to time constraints.

Json processing

To go one step further in the file reader, we could have allowed the user to format the file as a json file with fields "title" and "abstract" and parsed the contents. This would be a convenience feature for the user.