Donor matching recommender systems

Introduction

In 2000, Charles Best, a teacher at a Bronx public high school, wanted his students to read Little House on the Prairie. As he was making photocopies of the one book he could procure, Charles thought about all the money he and his colleagues were spending on books, art supplies, and other materials. And he figured there were people out there who’d want to help — if they could see where their money was going. Charles sketched out a website where teachers could post classroom project requests, and donors could choose the ones they wanted to support. His colleagues posted the first 11 requests. Then it spread. Today, they’re open to every public school in America.

Objective

The objective of Donors recommender system is to recommend relevant items for users, based on their preference. Preference and relevance are subjective, and they are generally inferred by items users have consumed previously.

DonorsChoose.org has funded over 1.1 million classroom requests through the support of 3 million donors, the majority of whom were making their first-ever donation to a public school. If DonorsChoose.org can motivate even a fraction of those donors to make another donation, that could have a huge impact on the number of classroom requests fulfilled.

A good solution will enable DonorsChoose.org to build targeted email campaigns recommending specific classroom requests to prior donors.

Data Description

The dataset is chosen from the donors choose dataset DonorsChoose dataset

A combined dataset will be prepared with the projects, donations, donors, schools and teachers datasets.

Observations: 4,687,884
Variables: 7
$ Project.ID                          <fct> 000009891526c0ade7180f842379…
$ Donation.ID                         <fct> 688729120858666221208529ee3f…
$ Donor.ID                            <fct> 1f4b5b6e68445c6c4a0509b3aca9…
$ Donation.Included.Optional.Donation <fct> No, Yes, Yes, Yes, Yes, Yes,…
$ Donation.Amount                     <dbl> 178.37, 25.00, 20.00, 25.00,…
$ Donor.Cart.Sequence                 <int> 11, 2, 3, 1, 2, 1, 1, 2, 2, …
$ Donation.Received.Date              <fct> 2016-08-23 13:15:57, 2016-06…

Recommender System

Donors are similar to users or customers of a online platform providing various products. Let’s take a music site for example: when a user named Aimee listened to one or more songs at our site, we will be able to recommend more songs to her based on her listening history and the listening history of people who are similar to her. Similarly, once a donor named Alice donated to one or more projects at DonorsChoose.org, we will be able to recommend more projects to her based on her donation history and the donation history of other donors who are similar to her.

Implementation Structure

  1. Combining 5 datasets: projects, donations, donors, schools and teachers datasets.

  2. I plan to leverage a distributed computing framework such as Spark to aid in the execution time of our model. Specifically packages like Sparklyr, Databricks, H20 etc.

  3. Preparing non-textual features

  4. Cosine similarity between 2 donors

  5. Using recommendation algorithms

  6. Combining text and non-text features

  7. Recommendations using non-text features

  8. Recommendations using text features

  9. Evaluation

Results

Determining the recommendation techniques which achieved highest accuracy.