Link to gitlab: https://gitlab.cluster.earlham.edu/senior-capstones-2020/krystal-capstone
CS488 Update
In the past week, I worked on modifying my diagram and finished generating results. I also tried to draw meaningful insights from the validation results. After chatting with Xunfei, I finalized my poster and thought about elements to add to my paper.
CS488 Update
In the past week, I finished the coding part of my project and did some validation work. I revised my diagram and worked on my paper and poster. Next week, I will be focusing more on my paper and poster.
CS 488 Update
I’ve mostly been working on making the poster and validating results. I found out that my original plan for validation would not work as nicely, so I will discuss with Xunfei to figure out what I can do. My diagram also needs to be tweaked.
CS488 – Update
I couldn’t do much due to comps, but collected all information from participants to conduct the validation process. I also ran their results on my software and recorded the results. This week, I will work on extracting relevant reviews from Sephora to evaluate the efficiency of my method.
CS 488 Update
In the past week, I mainly worked on implementing a simple interface for my program. I decided to take text inputs for skin type and beauty effects and use a button that returns the recommended products when clicked. To test my program, I collected more input data from participants. I will be using them in the upcoming week to validate my methods.
CS 488 – Week 8 Update
In the past week, I worked to finish implementing non content-based filtering which recommends products based on the user’s skin type and desired beauty effects. I was able to apply the concept of TF-IDF to judge which ingredients are heavily related to each beauty effect. Now that all my methods are working, I will implement widgets to the python notebook to create some sort of interface so that I don’t need to change the input each time. I will also start revising the paper and validating my method.
CS488 – Week 7 Updates
In the past week, I worked on creating a survey to take inputs for content-based filtering, modified the skin type test questions, and obtained some responses. I also worked on implementing non-content-based filtering using TF-IDF which I am struggling with. I will be meeting with Xunfei on Thursday and try to finish this part as soon as possible.
CS 488 – Elevator Pitch
My project aims to create a skincare product recommender system based on the user’s skin type and ingredient composition of a product. The main component of the project is content-based filtering and the secondary component is non content-based filtering. For content-based filtering, a user provides his or her skin type and selects a skincare product from sephora.com. The system then identifies the chemical components of products and uses cosine similarity to recommend products that have similar ingredient compositions. 5 recommendations for each product category are then made and returned to the user. Non content-based filtering allows users not to input the product if they lack knowledge or have not found a product they like. A user provides his or her skin type and desired beauty effect to obtain top 5 product recommendations across all 6 categories.
CS488 – Week 5 – Updates
In the past week, I found and fixed a bug for cosine similarity calculation in the code I was referencing. I was able to obtain more accurate recommendations across different product types. I also thought about and planned for next week’s task.
CS 488 – Week 4
In the past week, I worked on generating five recommendations from each of the the six product categories. I still have a confusion about the cosine similarity formula so I’m planning to meet with other faculties in the following week while keep working on the next task. Other than that, there wasn’t any obstacle and I just need to make the function return the results in a nice and clean way.
CS 488 – Week 3 – Update
In the past week, I worked on calculating the cosine similarity between the ingredient composition of an inputted item and that of the rest of the items in the data. I am struggling to decide on which formula to use for this, since the related project used the equation different from the “typical” formula used to compute cosine similarity. I will need to look into this more next week.
CS 488 – Week 2
I made a visualization (plot) displaying ingredient composition similarity between different products and skin types. I attached two drop-down options for users to select from product categories and skin types. I also attached labels to the graph so that it displays the product’s name, brand, price, and rank.
CS 488 – Week 1 Update
In the past week, I loaded the data, extracted ingredients from products, and made a document-term matrix containing product names and ingredient composition. I plan to visualize ingredient similarity between products this week. I haven’t faced many obstacles yet, but I want to finish things earlier than planned to allow some time for future obstacles.
CS 388 – Week 15 – Updates
I just worked on my final paper this week. I met with Xunfei to ask questions about it.
CS 388 – Week 14 – Updates
In the past week, I browsed to see if I could find a better data set for my project. I wanted to find a data set with users’ purchase history as well as the product information, but I could not find the appropriate data set to apply hybrid filtering. So I ended up modifying it to content-based recommender. I thought of more details to add to the project and discussed with Xunfei about ways to expand it. I ended up revising my diagram and some parts of the design. I also worked on creating slides for the presentation.
CS388 – Week 13 -Update
This week, I worked on the similar project posted online. While working on it, I found some challenges in modifying the content-based data set to fit the collaborative-filtering method. I might end up modifying my project from a hybrid recommender to a content-based recommender. But I will keep looking for alternatives to make it possible.
CS 388 – Week 12 – Updates
This past week, I worked on mainly reading my new papers. I did a third pass reading on all my old papers and did at least second pass reading on the new ones. I tried finishing more than half of the existing project on python notebook and played with the data set. I now have a better sense of how to start my project next semester. I also met Xunfei and updated my progress to her. As soon as the feedback for proposal draft 1 comes out, I will be revising my writing and finishing the existing project I have been working on. I also plan to test the existing project on collaborative filtering to make sure it works with a different data set.
CS388 – Week 11 – Update
This week, I revised my diagram again and selected papers to use for my proposal. I read through all of them carefully and wrote an outline for my proposal. I discussed the details of my ideas with Xunfei, modified some, and finished writing the proposal.
CS 388 – Week 10 – Updates
After meeting with Xunfei, I decided to modify my diagram a bit so I redesigned it from my practice proposal. I also collected more papers that could be used in my proposal and read more articles and research papers. I also found an online tutorial of a project that is closely related to mine, so I enrolled in the course for free and downloaded the jupyter file to play with it on my own. I think doing this now will help me figure out some possible options and directions for next semester. I also made a timeline of my work for this semester as well as next semester. I asked Xunfei some remaining questions about the proposal and my project in general to clarify my thoughts. I also checked out the rubric for project proposal and brainstormed ideas for my first draft of proposal.
CS388 – Week 9 – Updates
This week, I changed my method from hybrid to content-based filtering because there isn’t much research done in the hybrid method. So I chose to improve the content-based filtering instead. I also wrote my proposal outline and revised my diagram with the help of Xunfei. I might explore more ways to improve the existing method and see if there is anything else I can add.
CS388 – Week 7 – Update
This week, I mainly worked on reviewing my papers carefully and summarizing them for the literature review. I also met and talked with Xunfei about my proposal idea and came up with a preliminary idea. I will have to work more to develop it.
CS388 – Week 6 – Update
In the past week, I searched and skimmed lots of papers to use for my own research. I also talked with Dave and Xunfei to refine my ideas. I also found a data scraping software to extract product information from Sephora.
CS388 – Week 5 – Update
In the past week, I explored different ideas, talked to the faculty, and found more papers to read. I found lots of interesting paper related to my personalized skin care product recommendation idea. I found out that using content-based filtering to recommend products might be helpful, and I could modify the algorithm to have better performance.
Some papers I found useful include:
[1] Recommender System By Grasping Individual Preference and Influence from other users
[2] Recommendations System for Purchase of Cosmetics Using Content- Based Filtering
[3] Item Clustering as An Input for Skin Care Product Recommended System using Content Based Filtering
These papers gave me an idea for what algorithm to use for the recommendation system and how to modify it according to my need. Some of the research was done using five skin types, but I’m thinking to increase it to 16 or more.
CS 388 – Week 4 – Update
This week, I did a first pass reading for a total of 6 papers and visited the writing center for the annotated bibliography. Some of them turned out to be less relevant to the topic than they had appeared, but they were mostly useful and interesting. For one of my journals, the authors introduced the eigen-values and associated them with our facial features which I thought was fascinating. A lot of the methods that I thought were either subjective or determined by consensus actually involved detailed algorithms and logical processes. I look forward to reading them more in depth.
CS388 – Week 3 – Update
I further developed my ideas and added more details to each of them. Then I talked to Xunfei about modifications and got more suggestions from her. We looked through the research paper I found on Google Scholars together and searched for related articles. After the meeting, I went back to find some more articles. I think I now know what to choose as my final idea.
CS388 – Week 2 – Three Ideas
1. My first idea stays the same, but Xunfei recommended me to enable rating and commenting under each product to make the app a bit more interactive & informative. I will order recommendations for different skin types by star ratings. I am also thinking to include filtering by content, price, etc.
2. My second idea is similar to the first one, and it’s also on personalization with Machine Learning. I will be creating an app that will recommend makeup products such as lipsticks, eyeshadows, blush, etc. as well as their shades depending on the users’ “personal color”. The personal color analysis will be done using a quiz that will have a set of questions and perhaps facial recognition for higher accuracy. Then the app will pick out the best shades of makeup products that will go with your skin tone!
3. My third idea is making an app in which users can check for events happening not only at Earlham but also in nearby cities such as Richmond, Indianapolis, Cincinnati, etc. Students, faculty, and local residents get bored in a small town and are sometimes clueless about fun events happening nearby. I hope this app could get people more involved in the community. I am also thinking to include restaurant/movie deals that might be happening locally.
CS388 – Week 1 – First Idea
- Name of Your Project Skip&Skin
- What research topic/question your project is going to address? One product can’t fit all. From beauty to skin care, people are thrown a bunch of products that are said to be popular or effective in enhancing complexion. However, each individual is so different from another that they need to do more research to figure out which products will fit them better than others. Using the concept of personalization with Machine Learning, I will be focusing on categorizing different skin types of users and matching skin care products that could best serve their needs.
- What technology will be used in your project? I will need XCode and Swift to build the IOS application. I might be using Python to manipulate the dataset.
- What software and hardware will be needed for your project? Since I will be making an IOS application, I will need a MacBook to use XCode.
- How are you planning to implement? I am planning to create a skin type test for users with approximately 10 problems to determine their skin type. I might also ask them to identify their concerns. I will select products to recommend by comparing the content of their ingredients (glycerin, hyaluronic acid, etc.). I might also want to make options for filtering by price, brand, etc.
- How is your project different from others? What’s new in your project? As a person with dry skin (due to lack of moisture), I always look for products that are a bit more oily than what others might prefer. I try to stay away from products that dry up fast and leaves my skin smooth. But most products that are highly rated don’t necessarily reflect this, and I have to either go through individual comments or search online to see if it will be effective for dry skin. I thought it would be comfortable for people to just see filtered results for their own skin type.
- What’s the difficulties of your project? What problems you might encounter during your project? Finding a database of skin care products with ingredients, building an app by myself, learning Swift, coming up with a criteria for selecting products