tusmanakhter / MigrantHub

MIT License
4 stars 3 forks source link

Migrant/Merchant: Implement ML Model PART 3 #132

Closed miramarhaba closed 5 years ago

miramarhaba commented 5 years ago

As a user, I want to be able to see recommended services when I visit the website based on my previous reviews so that I can be aware of them.

( Continuation from #91 and #116. This should be the last part to complete the user story.)

Points: 5 Risk: Low Priority: High

Tasks:

Overall Plan Since this user story is very big and cannot be broken down into smaller user stories, the tasks have been split up into a few sprints to have it ready for the release:

1) Iteration 6 #91

2) Iteration 7 #116

3) Iteration 8 #132

Mockup: image

Demo Steps: This feature is displayed using the Recommended Services section.

Development Info: Originally, started out with a Matrix Factorization algorithm which looks at and uses ONLY the UserID, ServiceID, and ratings. as seen in https://github.com/dotnet/machinelearning-samples/tree/master/samples/csharp/getting-started/MatrixFactorization_MovieRecommendation

But then after having a discussion with the TA we decided that it wasn't enough to only look at those three things and decided to switch it over to a Field Aware Factorization Algorithm, which can give the option of using other different attributes for our recommendation engine when implemented. An example was seen here: https://github.com/dotnet/machinelearning-samples/tree/master/samples/csharp/end-to-end-apps/Recommendation-MovieRecommender

Since there was barely any documentation or resources online about ML.Net and the different ways of using it, this example above was the source of most of the knowledge on how to develop this recommendation engine, and thus, was relied on heavily and used as a template. Some of the code used in the example was also used in our project.

An issue that was encountered while developing: When creating a new Visual Studio solution to create the web api and move in the micro services code, some of the libraries used from the Microsoft.ML package just wouldn't be accepted. This is because we had tried to install the latest 0.9.0 version as opposed to the 0.7.0 that we actually had found examples and documentation for. Newer is not necessarily better!

Some future suggestions for this feature:

DevBlocAbdulla commented 5 years ago

Signed off - Abdulla Daoud