UBC-MDS / data-analysis-review-2022

0 stars 1 forks source link

Submission: Group 8: Pokemon Type Predictor #5

Open WilfHass opened 1 year ago

WilfHass commented 1 year ago

Submitting authors: @WilfHass @carolinetang77 @missarah96 @vincentho32

Repository: https://github.com/UBC-MDS/pokemon-type-predictor Report link: https://github.com/UBC-MDS/pokemon-type-predictor/blob/main/doc/final_report.md Abstract/executive summary: In this project, we attempt to build a classification model using two algorithms: - Nearest Neighbours and a Support Vector Machine. We will use this classification model to classify a Pokemon's type (of which there are 18 possible types) based on the other stats (such as attack, defense, etc.) that it has. We use accuracy as the metric to score our models since there is no detriment to false positives or negatives, but we do want to know how many of the unknown Pokemon will be predicted correctly. On the unseen test data, the -NN model predicted 60% of the new Pokemon correctly while the SVC model predicted 67% correctly. Since these are not very accurate results, we recommend trying different estimators to fill up that Pokedex!

The data is found here. The data was cleaned by HansAnonymous and originally developed by simsketch. The original data can be found in the Pokemon database. All rights belong to their respective owners. Each row in the dataset contains a different Pokemon with various attributes. The attributes are measurements of the base Pokemon, such as attack, speed or defense.The different types of Pokemon are closely related to the other attributes it possesses. For example, a rock type Pokemon is likely to have higher defensive statistics (such as defense or health points) as well as rock-type abilities. It is also most likely to be coloured grey.

Editor: @flor14 Reviewer: Revathy ponnambalam, Ashwin Babu, Zilong Yi, Tony Zoght

revathyponn commented 1 year ago

Data analysis review checklist

Reviewer: Revathy Ponnambalam (revathyponn)

Conflict of interest

Code of Conduct

General checks

Documentation

Code quality

Reproducibility

Analysis report

Estimated hours spent reviewing: 1.5 hours

Review Comments:

Please provide more detailed feedback here on what was done particularly well, and what could be improved. It is especially important to elaborate on items that you were not able to check off in the list above.

  1. Hello Gym trainers, I would like you to inform that going through your group project was fun and the writeup made the reader enjoy it thoroughly. I liked how the readme file was structured in a way that it will be easy for anyone new to follow and run the replicate the project.
  2. It is mentioned that the dependencies are listed in the 'env-poke-type-pred.yaml' and code to install the environment is also mentioned but the list of dependencies are not mentioned in the Readme file.
  3. Reason for choosing the specific models could have been added.
  4. In the preprocessing.py, there are few columns which are dropped and other columns which are kept. One or two sentences about this decision can be added.
  5. In the raw csv file, the column ABILITY 2 has 50% missing values and ABILITY Hidden column has 25% missing values. In the preprocessing, the missing values of the above columns are filled with the values from the ABILITY1 column. A few sentences details about this would be ideal to understand it further.
  6. In the readme file the pipeline image is not rendered properly.
  7. Overall, the scripts are well written and readable, doc strings are complete and folders/sub folders are properly structured. Perfect!!

Attribution

This was derived from the JOSE review checklist and the ROpenSci review checklist.

ashwin2507 commented 1 year ago

Data analysis review checklist

Reviewer: Ashwin Babu (ashwin2507)

Conflict of interest

Code of Conduct

General checks

Documentation

Code quality

Reproducibility

Analysis report

Estimated hours spent reviewing: 1.5 hours

Review Comments:

Please provide more detailed feedback here on what was done particularly well, and what could be improved. It is especially important to elaborate on items that you were not able to check off in the list above.

  1. The Pipeline section in the Readme.md needs to be fixed as I can see some rendering issues.
  2. The documentation is awesome, the project is easy to follow and the objective of the project is clear. I would add a few important charts/plots in the EDA section of your final report.
  3. The Final report is well structured and is very convenient for the reader to understand, the one addition I would like to see is adding some more information in the results section about the hyperparameter tuning, I see that you have talked about k-NN hyperparameters, would suggest to include the same for SVC as well since the training scores are 100% in both cases hyperparameter tuning would be a crucial insight to the final report.
  4. Since the results are somewhat on the lower end, a reason for choosing the specific model could have been added or the usage of some other models like Naive Bayes or Logistic regression could have given more insights for a multiclass predicting problem.
  5. Overall the code, organization of files, and script usage are great. The main goal is clearly stated and the end result has been perfectly worded, easy to follow instructions, and a very interesting project.

Attribution

This was derived from the JOSE review checklist and the ROpenSci review checklist.

tzoght commented 1 year ago

Data analysis review checklist

Reviewer: Tony Zoght (tzoght)

Conflict of interest

Code of Conduct

General checks

Documentation

Code quality

Reproducibility

Analysis report

Estimated hours spent reviewing:

2.5 hours (including the time to write this review and build the code and run the analysis)

Review Comments:

First of all, I really enjoyed reading your report and I think you did a great job. I have a few comments and suggestions that I hope will help you improve your report and overall git repository hygiene (see General Comments below)

General comments

  1. Missing links in README.md (https://github.com/UBC-MDS/pokemon-type-predictor#pipeline) and minor formatting issues in the report
  2. More details in the README.md about the features of the data, you don't want the reader to open the CSV file to see what the columns are.
  3. For readers who are not familiar with conda (maybe they use pip and virtualenv), it is useful if this project indicates that it uses conda as a prerequisite to build the project.
  4. Adding convenient links from the README.md to license, contributing, code of conduct would be helpful (just like you've done for the report).
  5. Inline comments in the code would help the reader understand what's going on, especially in the model training code (minor point)

About the report

  1. The introduction is very clear and well written, but the data story is a bit lacking in details since the README does not talk much about the data and the features.
  2. I think adding a bit more details on the choice of scoring metric would be better for this report, for example why did you choose accuracy over other metrics ?
  3. The confusion matrix is distracting, with multi-class classification, it's a bit distracting when trying to read the conclusions. What value does it add to the report? I think you could just add the accuracy score and the classification report.
  4. In your discussion/conclusion, you mention that the model has a 100% training accuracy, and highlight that it's a sign of overfitting, then you move on to mention that a model with 1 neighbor has much less accuracy, with no prior mention that you were doing hyperparameter tuning (almost an afterthought). A bit of clarity on the conclusion would make this report even better.

Attribution

This was derived from the JOSE review checklist and the ROpenSci review checklist.

ZilongYi commented 1 year ago

Data analysis review checklist

Reviewer: Zilong Yi

Conflict of interest

Code of Conduct

General checks

Documentation

Code quality

Reproducibility

Analysis report

Estimated hours spent reviewing: 1 hour

Review Comments:

  1. I really enjoyed reading through your report, especially on how you are motivated and the introductions on background and features. Well done!!
  2. I noticed that the report link in README file is linked to .md file. Personally, I would prefer a webpage. You can create a html file and then use this to create a html preview.
  3. Makefile is included in the repo, but this does not show up on the README file. It would be nice to include it as an one-step way to reproduce the analysis.
  4. I agree with the models you choose. However, the size of data set is one thing that I concern. You are doing milticlass classification, and from the result of baseline, I can see that there are around 20 cases for each class. Personally, I suggests, if possible, to acquire a larger data set, as 20 might not be enough for classification in ML.
  5. In the report, it was mentioned column of total is dropped because it is just merely the sum of other numeric features. Given other numeric features are highly correlated, is it possible to do classification just by it own, or include it as it is, which might end up with total having a dominant coefficient. Some more clarification of why this column is dropped would make report even better.

Attribution

This was derived from the JOSE review checklist and the ROpenSci review checklist.

vincentho32 commented 1 year ago

Group 8 - Improvements based on the feedback received:

Feedbacks from Revathy

  1. Add reason for choosing specific models (in report and README) (commit link)

  2. Updating dependency list (commit link)

Feedbacks from Ashwin

  1. Add more information about hyperparameter tuning in report (commit link)

  2. Show more EDA plots in the final report (commit link)

Feedbacks from Tony

  1. Add more details in the README.md about the features of the data (commit link)

  2. Add reason why we chose accuracy as our scoring metric (commit link)

  3. Add links to license, code of conduct (commit link)

Feedbacks from Zilong

  1. Add webpage link of final report in README (commit link)