-
Notifications
You must be signed in to change notification settings - Fork 3
/
09-example.Rmd
76 lines (47 loc) · 7.2 KB
/
09-example.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Example project plan {#example}
Your authors have designed, managed or delivered hundreds of projects. Despite that experience, the process can still be uncomfortable and disorienting. This is especially true for Phase 4 (Chapter \@ref(definition)), in which you have to create concrete details about your execution plan. Many find this especially daunting: it’s a subjective endeavour with no right answers -- what might be best for one project may be well off-the-mark for another.
We felt it would be valuable, then, to show an example of how we might present a project plan in the form of a written proposal. The example below is based on a real proposal we wrote. It is, by no means, the only way this project could have been designed, nor is it clear that this was the best way. It was simply the way we approached the task. We hope the example is useful to you.
-----------------
<center>
**Proposal for Client X**
</center>
*Introduction:*
Client X specialises in creating high-performance, affordable exercise gear for serious and recreational runners alike. Their vision is to create an online shopping experience for their customers, in which they can shop for shoes, apparel and accessories without having to walk into a store. However, this vision comes with understandable obstacles, such as how to convince customers that an online shopping experience can match the experience they would expect in-store, which has the benefit of allowing a customer to try on several sizes and models. Furthermore, many customers have reported that working with a sales associate directly gives them more confidence that the suggestions brought before them are personalised in a way that an online shopping experience cannot match. Client X would like to dispel this rumour by making the Client X online shopping experience more personalised. In this proposal, we outline a project in which we will develop a personalised recommendation engine for Client X, which will employ innovative approaches to understanding Client X customers.
*Project description:*
This project is aimed at helping Client X create a more personalised customer experience. We will focus on two main objectives: (1) an analysis of customer segments and (2) the development of a recommendation engine. We feel that these two branches of the project will combine to give Client X a better understanding of their customers’ tastes and preferences and will allow them to deliver a more personalised customer experience.
In Objective 1, “Customer Insights”, we will perform a customer segmentation analysis on data from Client X’s CRM (Customer Relationship Management), sales and marketing systems. We will first perform an in-depth analysis of the Client X data in which we will assess data quality and completeness and perform preliminary exploratory analyses, looking for clear relationships between the features available. We will then, in conjunction with Client X staff, select a subset of features that we feel have the most utility for separating customers into meaningful, interpretable segments. To achieve this we will take an unsupervised approach, exploring several clustering methodologies before determining which we feel has the most promise for this particular dataset.
When performing cluster analysis, an important consideration is in determining the optimal number of clusters. While techniques such as the elbow method can be useful in arriving at this number, we feel it will also be important to sense-check the outcome with Client X stakeholders who understand their customers the best. Thus, throughout this project, we will have regular progress updates with Client X to show our findings and illustrate descriptive analyses of how the resultant clusters differ from one another.
In Objective 2, “Product recommendations”, we will focus on building a recommender system that can be used to suggest products to Client X customers. We plan to use collaborative filtering in combination with the customer segments identified in Objective 1, however we may find through the course of researching this project that a different approach is more appropriate. We have, therefore, broken this project into two discrete phases: research and building. The research phase will explore various recommender system approaches intending to gain enough knowledge to choose a single best option for the build phase, in which we will productionise an engine that runs on the Client X Google Cloud Platform instance, ingesting data from the Client X datastores and returning the outcome via an API. We will work with the Client X engineering team to ensure that the API produced returns information in a format that can be processed by the rest of the Client X data infrastructure.
We outline the plan for this project below.
------------------
<center>
**Project Proposal: Customer Insights and Recommendations**
*Objective: This project is aimed at developing a personalised recommendation engine that will employ innovative approaches to understanding Client X customers.*
</center>
:::{.smaller}
<center>**Objective 1: Customer insights**</center>
```{r echo=FALSE}
mytable = data.frame(
'Milestone' = c("Milestone 1", "Milestone 2"),
'Work\ Carried\ Out' =c("- **Exploratory data analysis** \n - We will explore the data available to support the project.\n - We will ensure that data are accessible and will perform a preliminary analysis with a view to identifying a subset of features that best-suited for cluster analysis in Milestone 2.", "- **Cluster analysis** \n - Using the learnings from Milestone 1, we will experiment with various clustering algorithms. \n - The best candidate will be selected for further improvements."),
'Outcome//Deliverables' = c("- A presentation showing the initial findings of relationships between features.\n - A list of features to use for clustering.", "- A GitHub repository containing Python code driving a segmentation model.\n - A report and presentation highlighting findings."),
'Completion\ Date' = c("End of Week 2", "End of Week 4"),
check.names = FALSE
)
pander::pander(mytable, keep.line.breaks = TRUE, style = 'grid', justify = 'left', split.cells = c(1,22,22,1))
```
:::
</br>
:::{.smaller}
<center>**Objective 2: Product recommendations**</center>
```{r echo=FALSE}
mytable = data.frame(
'Milestone' = c("Milestone 3", "Milestone 4"),
"Work Carried Out" =c("- **Research** \n - We will examine the data available to identify a feature space to use for collaborative filtering.", "- **Build** \n - We will focus on productionising the recommender system and integrating it into the existing Client X data infrastructure"),
"Outcome/Deliverable" = c("- A presentation showing initial findings of possible approaches to the recommendation engine.", "- A deployed recommender system that runs on the Client X GCP instance.\n - A demonstration, presentation and report outlining experimental approach and deployment specifications, as well as recommendations for model improvements and retraining. \n - A GitHub repo containing all code used."),
"Completion Date" = c("End of Week 6", "End of Week 9"),
check.names = FALSE
)
pander::pander(mytable, keep.line.breaks = TRUE, style = 'grid', justify = 'left', split.cells = c(1,22,22,1))
```
:::