Skin care reccomendation system¶

skincare image

Problem and Motivation :¶

Every one deserves to feel confident in their skin. Unfortunately, people feel like they have to pay hundreds of dollars to see a dermatoligist to achieve their skin care goals. Or, they feel like they must invest in the most expensive products to see efective results quickly. According to a survey done by Cerave, 62% of Americans have concerns about the health of their skin. Our skin is our largest organ, and skin care concerns should be taken as seriously as other health concerns and should not be viewed as just a luxury. Unfortunately, most skin care products in today's market contain harmful chemicals. The retail industry pushes profits over our general health, so it is our duty to be mindful of what we put into our bodies.

Motivational sources¶

  • https://peachesandblush.com/the-issues-facing-the-skincare-industry/
  • https://inthemirra.com/blogs/news/problems-with-the-beauty-industry
  • https://www.prnewswire.com/news-releases/survey-reveals-americans-anticipate-poor-skin-health-this-winter-301205674.html

Solution:¶

This recommendation system asks users to rank their most potent skin care concerns. They will then be recommended products that best address those concerns. From there, they will also be able to set a budget from a bunch of given ranges. The system will then produce a list of products, for each step of their skin care routine, within their budget. Each customer will be recommended four products for a skin care routine consisting of four steps: cleanse, serum, moisturise and sunscreen. All skin products we recommend will be 'clean' meaning that they are free from harmful chemicals.

At the end of a month, we will ask users to vote how effective their new routine and products have been. Based on this feedback we can update the system, and remove products appropriately. If more than 55% reviews for a product say it is inefficient we will remove it from our database. Our goal is to really help people find the results they are looking for. We aim to do this by removing products that are not effective.

In [1]:
#the customer will be asked to select and rank their greatest skin care concerns
# the rank is on a scale from 1 to 5, one being their biggest skinconcern and five being the least important.
# each group will have 4 concerns that are ranked
customer_a = {"hyperpigmentation" :1, "dryness": 2, "textured skin":3, "dull skin": 4}
# here hyperpigmentation is ranked as the most important concern then dryness etc
In [2]:
print(customer_a)
# each customer will have their own portfolio that looks like this
{'hyperpigmentation': 1, 'dryness': 2, 'textured skin': 3, 'dull skin': 4}

Impact:¶

This serves to be an affordable way for people to be more confident in their skin. The difference between us and other systems is that we are focused on results not trends. If something is trending, but not efficient then it will be removed from our databse. This ensures that our customers can be confident about their skin care purchases. We believe that our customers deserve to see the results they are paying for.

Dataset:¶

We will be using a skincare dataset from kaggle. The dataset consists of the following attributes:

  • product_name
  • product_url
  • product_type
  • clean_ingreds
  • price

For our purpose clean_ingreds and price will be our most important columns. This is because our system focuses only on the ingredients and price to create our predictions. The clean_ingreds column contains a list of the active ingredients in the skin care product e.g. "glycerin", "acryloyldimethyltaurate/vp" Specific ingredients is what will meet the chosen skincare needs of our customers.

A preview of what the dataset looks like:

product_name product_url product_type clean_ingreds price
The Ordinary Natural Moisturising Factors + HA 30ml https://www.lookfantastic.com/the-ordinary-natural-moisturising-factors-ha-30ml/11396687.html Moisturiser ['capric triglyceride', 'cetyl alcohol', 'propanediol', 'stearyl alcohol', 'glycerin', 'sodium hyalu... £5.20
CeraVe Facial Moisturising Lotion SPF 25 52ml https://www.lookfantastic.com/cerave-facial-moisturising-lotion-spf-25-52ml/11798689.html Moisturiser ['homosalate', 'glycerin', 'octocrylene', 'ethylhexyl', 'salicylate', 'niacinamide', 'silica', 'buty... £13.00
The Ordinary Hyaluronic Acid 2% + B5 Hydration Support Formula 30ml https://www.lookfantastic.com/the-ordinary-hyaluronic-acid-2-b5-hydration-support-formula-30ml/11363... Moisturiser ['sodium hyaluronate', 'sodium hyaluronate', 'panthenol', 'ahnfeltia concinna extract', 'glycerin', ... £6.20
AMELIORATE Transforming Body Lotion 200ml https://www.lookfantastic.com/ameliorate-transforming-body-lotion-200ml/11865352.html Moisturiser ['ammonium lactate', 'c12-15', 'glycerin', 'prunus amygdalus dulcis', 'ethylhexyl palmitate', 'cetea... £22.50
CeraVe Moisturising Cream 454g https://www.lookfantastic.com/cerave-moisturising-cream-454g/11798691.html Moisturiser ['glycerin', 'cetearyl alcohol', 'capric triglyceride', 'behentrimonium methosulfate', 'cetearyl alc... £16.00
CeraVe Moisturising Lotion 473ml https://www.lookfantastic.com/cerave-moisturising-lotion-473ml/11798695.html Moisturiser ['glycerin', 'capric triglyceride', 'cetearyl alcohol', 'cetyl alcohol', 'dimethicon', 'phenoxyethan... £15.00

Potential problem:¶

a) One potential problem is that there are going to be many products that fit within the users budget and fit their skin care needs. Thus, deciding which ones to recommend to the user will be the issue. We only want to recommend one product for each step of the skin care routine. We may be picking four out of hundreds. How do we decide which ones to pick?

b) This system will require a lot of research into skin care ingredients. We would need to have a rough idea of what the ingredients do, and there are 1071 unique values in the inredients list.

Potential solution:¶

solution for problem a: We could give the user our highest ranking products within their budget, based on customer reviews. Since we will be deleting all products that have 55% or more of negative reviews, this will mean we are only giving users our most efficient products. This will greatly reduce the number of products we can select from when recommending to a customer.

Solution for problem b: Skin care products have a lot of ingredients but not all of them are active, meaning not all of them solve skin care needs and are there for other reasons. Meaning we can render the non active ingredients unecessary and do not need to include them in our analysis. Since not all indredients listed will be active, this problem could be solved by having a list of about sixty different, efficient active ingredients that we search through for each customer's skin care needs. The list would include only active ingredients that tackle a certain skin care need for all of our predetermined skin care concerns. For example, hyperpigmentation could have a list of 30 main active ingredients like "retinol" that we look for in a product when searching for which ones to recommend.

Method:¶

The appropriate machine learning method for this system is going to be filtering and wieghted Knearest neighbours. Knearest neighbours will find products that people with similar skin care needs were recommended and founf effective. Weights will be assigned based on what the users ranked as their most potent skincare concern, as was explained in the solution. We will also be filtering items based on two selected features. The first feature will be their budget; filtered from the price column. The second feature will be the active ingredients filtered from the clean_ingreds column. The system will then recommend the products that fit these criteria.