HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2018T1 analyteaka research"

From IS480
Jump to navigation Jump to search
 
(23 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<center>
 
 
 
<!--HEADER-->
 
<!--HEADER-->
 
[[File:Analyteaka_Header.png|1000px|center]]
 
[[File:Analyteaka_Header.png|1000px|center]]
Line 30: Line 28:
 
<!--SUB MENU-->
 
<!--SUB MENU-->
 
{| class="wikitable;style="background-color:white; color:white padding: 5px 0 0 0;" width="100%" height=50px cellspacing="0" cellpadding="0" valign="top" border="0"  
 
{| class="wikitable;style="background-color:white; color:white padding: 5px 0 0 0;" width="100%" height=50px cellspacing="0" cellpadding="0" valign="top" border="0"  
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:3px solid #7D5B53; ">[[IS480 Team wiki: 2018T1 analyteaka ProjectOverview Description | <font color="#35332E"><b>PROJECT DESCRIPTION</b></font>]]  
+
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px"> [[IS480 Team wiki: 2018T1 analyteaka ProjectOverview Description | <font color="#35332E"><b>PROJECT DESCRIPTION</b></font>]]  
 
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px">[[IS480_Team_wiki:_2018T1_ analyteaka_stakeholders | <font color="#35332E"><b>STAKEHOLDERS</b></font>]]  
 
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px">[[IS480_Team_wiki:_2018T1_ analyteaka_stakeholders | <font color="#35332E"><b>STAKEHOLDERS</b></font>]]  
 
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px">[[IS480_Team_wiki:_2018T1_ analyteaka_projectscope | <font color="#35332E"><b>PROJECT SCOPE</b></font>]]  
 
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px">[[IS480_Team_wiki:_2018T1_ analyteaka_projectscope | <font color="#35332E"><b>PROJECT SCOPE</b></font>]]  
 
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px"> [[IS480_Team_wiki:_2018T1_ analyteaka_xfactor | <font color="#35332E"><b>X-FACTOR</b></font>]]  
 
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px"> [[IS480_Team_wiki:_2018T1_ analyteaka_xfactor | <font color="#35332E"><b>X-FACTOR</b></font>]]  
 
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px"> [[IS480_Team_wiki:_2018T1_ analyteaka_technologies | <font color="#35332E"><b>TECHNOLOGIES</b></font>]]
 
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px"> [[IS480_Team_wiki:_2018T1_ analyteaka_technologies | <font color="#35332E"><b>TECHNOLOGIES</b></font>]]
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:1px"> [[IS480_Team_wiki:_2018T1_ analyteaka_research | <font color="#35332E"><b>RESEARCH</b></font>]]
+
| style="vertical-align:top;width:16%;" | <div style="padding: 0px; font-weight: bold font-family:Century Gothic; text-align:center; line-height: wrap_content; font-size:85%; border-bottom:3px solid #7D5B53; ">[[IS480 Team wiki: 2018T1 analyteaka ProjectOverview Description | <font color="#35332E"><b>RESEARCH</b></font>]]  
 +
 
 
|}
 
|}
 
<!--SUB MENU-->
 
<!--SUB MENU-->
Line 42: Line 41:
  
 
<!--CONTENT-->
 
<!--CONTENT-->
 +
 +
<!-- [[File:Analyteaka Research.png|1000px|center]] -->
 +
 +
 +
[[File:Analyteaka_Research_dataSecurity.png|1000px|center]]
 +
 +
 +
Under PDPA’s guidance, we are not legally obligated to care for personal data. However, we would follow the best practice tips by exploring 
 +
 +
1. Set out how the personal data in custody may be well-protected.
 +
 +
2. Classify the personal data to better manage housekeeping
 +
 +
3. Set clear timelines for the retention of the various personal data and cease to retain documents containing personal data that is no longer required for business or legal purposes.
 +
 +
4. For the transfer of personal data overseas, including the use of contractual agreements with the organizations involved in the transfer to provide a comparable standard of protection overseas.
 +
 +
 +
The above classification is based on our interpretation of  [http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.199.pdf Federal Information Processing Standards (FIPS) publication 199] published by the National Institute of Standards and Technology as stated by [https://www.cmu.edu/iso/governance/guidelines/data-classification.html Carnegie Mellon University] to reflect the level of impact to the company if confidentiality, integrity or availability is compromised.
 +
 +
 +
<b> Potential Impact table </b>
 +
 +
{| class="wikitable"
 +
 +
|-
 +
| Security Objective || Low  || Moderate  || High
 +
|-
 +
| Confidentiality  || Leakage of information could be expected to have a <b>limited</b> adverse effect on the company’s operation, assets or individuals.  || Leakage of information could be expected to have a <b> serious </b> adverse effect on the company’s operation, assets or individuals. || Leakage of information could be expected to have a <b> severe or catastrophic adverse </b> effect on the company’s operation, assets or individuals.
 +
|-
 +
| Integrity || Unauthorized modification or destruction of information could be expected to have a<b> limited </b> adverse effect on the company’s operation, assets or individuals. || Unauthorized modification or destruction of information could be expected to have a <b> serious adverse </b> effect on the company’s operation, assets or individuals. || Unauthorized modification or destruction of information could be expected to have a <b>severe or catastrophic adverse </b> effect on the company’s operation, assets or individuals.
 +
|-
 +
| Availability  || The disruption of the information or system could be expected to have a <b>limited </b> adverse effect on the company’s operation, assets or individuals. || The disruption of the information or system could be expected to have a <b>  serious adverse </b> effect on the company’s operation, assets or individuals. || The disruption of the information or system could be expected to have a <b>severe or catastrophic adverse </b> effect on the company’s operation, assets or individuals.
 +
|}
 +
 +
Based on the above tips and impact. We decided to split the data into 5 different class.
 +
 +
* Class 1 contain at least 2 high impacts
 +
* Class 2 contain at least 1 high impacts
 +
* Class 3 contain at least 1 moderate impacts
 +
* Class 4 contain 0 impacts 
 +
* Class 5 contain 0 impacts with easily accessible public data
 +
 +
{| class="wikitable"
 +
|-
 +
! CLass Level !! Description !! Example  !! Action
 +
|-
 +
| 1 || Highly confidential data || CVV code, credit card number || Never stored or process.
 +
|-
 +
| 2 || Uniquely personally identifiable information.  || Fingerprints, eye scan, session token, NRIC, password || Never stored, process and discard.
 +
|-
 +
| 3 || Personally identifiable information|| DoB, email, address || Store only hashed value.
 +
|-
 +
| 4 || non-Personally identifiable information || State, city, region, subzone || Can be stored as is it
 +
|-
 +
| 5 || public website available content || Item details, category, item price || Can be stored as is it
 +
 +
|}
 +
 +
[[File:Analyteaka_Research_Analytics.png|1000px|center]]
  
 
Data Analytics is the process of examining data sets in order to draw conclusions about the information they contain, increasingly with the aid of specialized systems and software.  
 
Data Analytics is the process of examining data sets in order to draw conclusions about the information they contain, increasingly with the aid of specialized systems and software.  
Line 97: Line 156:
 
*Analytics and reporting module
 
*Analytics and reporting module
  
[[File:Analyteaka_Footer.png|1000px|center]]
+
[[File:Analyteaka Research ML.png|1000px|center]]
 +
 
 +
<b> What's Machine Learning? </b>
 +
 
 +
In a nutshell, using algorithms to <b> parse data, learn </b>  from it, and then make a  <b> determination or predictions.</b> To be specific, it’s a field of computer science that use statistical techniques to give computer system the ability to “learn (e.g progressively improve performance on a specific task) with data, <b> without being explicitly programmed. </b>
 +
 
 +
[[File:Research MachineLearning.png|600px|center]]
 +
 
 +
 
 +
 
 +
<b> Misconceptions</b>
 +
 
 +
However, there are some misconceptions about machine learning.
 +
 
 +
- It's not logic based, its stats based.
 +
 
 +
- It's not a solution without proper understanding and expectations.
 +
 
 +
- AI versus ML vs Deep learning [http://larshorsbol.com/the-difference-between-machine-learning-deep-learning-and-artificial-intelligence/ Source]
 +
 
 +
  - AI: Human intelligence exhibited by Machines
 +
  - ML: An approach to achieve AI
 +
  - Deep learning: A technique for implementing Machine learning
 +
 
 +
- Lastly, there's nothing new about the concept of machine learning (it exist as early as 1950s). It just became much more relevant due to the rise of IOT devices and the potential to store endless data.
 +
 
 +
 
 +
[[File:Research comparsion.jpg|400px|center]]
 +
 
 +
What we would like to achieve out of machine learning for this project would be the predictive analytics (predict the outcome based on historical and current data). To do so, there are a few potential techniques we can use.
 +
 
 +
- Classification (Decision tree/hierarchical/forest logistic/linear regression etc).
 +
- Clustering (EM, kMeans, Canopy, Hierarchical, CowWeb etc)
 +
- Recommendations (Filtered Association, Apriori etc
 +
 
 +
To better understand how we can apply these techniques, we would need to better understand the different categories of machine learning.
 +
 
 +
 
 +
<b> The type of machine learning algorithms </b> [https://towardsml.com/2018/02/17/machine-learning-an-overview-and-the-essential-algorithms/ Source]
 +
 
 +
 
 +
[[File:Machine-learning-bubble-chart.png|700px|center]]
 +
 
 +
Machine learning algorithms can be broken down into three main categories.
 +
 
 +
<b> 1. Supervised learning </b>
 +
In supervised learning. the input training dataset contains both the input and the desired output, called labels (wrong, correct). e.g. In other words, dataset that contains examples of the answer we desired. An example would be the spam filter, it's being provided with many example email along with their label (wrong or correct), as it learns to classify new emails.
 +
 
 +
It's also usable for prediction of numeric value based on a set of features ( potential variables that affect the end result). An example would be the sales price, the sale price is dependent on the season, location, targeted segments, and cost. There, the training set would require both the sales price and the features. The training process is continued until the model achieves the desired level of accuracy on the training data. For our case, we adopt the dataset into 70/15/15 split of training/testing/validating.
 +
 
 +
 
 +
<u>Example of supervised learning algorithms: </u>
 +
 
 +
1. Linear regression
 +
 
 +
2. Logistic regression
 +
 
 +
3. Support vector machines
 +
 
 +
4. Decision trees and random forest
 +
 
 +
5. k-nearest neighbors
 +
 
 +
6. Neural network
 +
 
 +
 
 +
 
 +
<b> 2. Unsupervised learning </b>
 +
 
 +
For unsupervised learning, the dataset has no labels (no right or wrong answer). Rather, the goal is to look for the relationship/ correlation between the data. For instance, [https://tdwi.org/articles/2016/11/15/beer-and-diapers-impossible-correlation.aspx diapers and beer] has a  statistically significant correlation (in some cases). The significant correlation leads to store promoting cross-selling for beer and diapers. Thus similarly, we make use of unsupervised learning to look for such correlation even if it sounds absurd.
 +
 
 +
<u>Example of unsupervised algorithms: </u>
 +
 
 +
[https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68 Clustering]:
 +
 
 +
 
 +
- <b> k-Means </b>- This is the most well-known clustering algorithms. Commonly taught in various introductory data science and machine learning class (e.g. IS424). It's relative easy to understand and implement.
 +
 
 +
[[File:KmeanPattern.gif|300px|center]]
 +
 
 +
<u>Steps for performing k-mean </u>
 +
1. Select a value (known as k-value) and randomly select their respective center points. In the gif above, there's 3 distinct cluster as the k value is set as 3. (to determine the k-value, there are a few potential techniques such as [https://bl.ocks.org/rpgove/0060ff3b656618e9136b elbow method].
 +
 
 +
2. Each data points is then calculated based on the distance between that point and each group's center. The point will then be classified to be in the group whose center is closest to it.
 +
 
 +
3. Based on the newly classified points, we recompute the group center by taking the mean of all the vectors in the group.
 +
 
 +
4. Repeat these steps for a set number of iterations or until the group center doesn't change much between iteration (for our case, we use 100 iterations).
 +
 
 +
<b>Advantage </b> :
 +
 
 +
- very fast, linear complexity O(n).
 +
 
 +
- Suitable for large dataset
 +
 
 +
<b>Disadvantage </b>
 +
 
 +
- You need to calculate the optional k-value.
 +
 
 +
- Random choice of cluster center could produce a different result every run. Thus, the result could lack consistency.
 +
 
 +
 
 +
<i>A potential alternative for smaller dataset would be to use k-medians (Due to the increase in computational calculation needed). As it uses the median vector of the group instead or recomputing the mean value of the cluster. </i>
 +
 
 +
 
 +
- <b> mean-shift</b>
 +
 
 +
Mean shift clustering a sliding windows-based algorithm that attempts to find the densest area of data points. In other words, this centroid-based algorithm's goal is to locate the center point of each cluster (As shown in the gif).
 +
 
 +
 
 +
 
 +
[[File:Meanshift.gif|300px]]Step 1  [[File:Meanshift2.gif|300px]] Step 2 and 3
 +
 
 +
 
 +
 
 +
 
 +
 
 +
<u>Steps for performinng mean-shift </u>
 +
 
 +
1. It starts with a random point and surround itself with a radius and slowly shifts itself to a higher density region. It continues this process until it reaches the point where the number of points is the highest possible density.
 +
 
 +
2. The process is repeated multiple times till every data point lies within that radius. If multiple windows overlap, the one with the most point is preserved.
 +
 
 +
3. The data point then get clustered based on the circle they reside in.
 +
 
 +
 
 +
<b>Advantage </b> :
 +
 
 +
- No k-value needed. Auto discover.
 +
 
 +
- Relatively fast
 +
 
 +
- Suitable for large dataset
 +
 
 +
<b>Disadvantage </b>
 +
 
 +
- The selection of the radius size can be non-trivial.
 +
 
 +
 
 +
- <b> Density-Based Spatial Clustering of Applications with Noise (DBSCAN) </b>
 +
 
 +
DBSCAN is a density-based cluster algorithm similar to mean shift but with a couple notable advantages.
 +
[[File:DBSCAN.gif|400px|center]]
 +
 
 +
<u>Steps for performing DBSCAN </u>
 +
 
 +
1. It starts with a random point that has not been visited. The neighborhood of this point is being grouped together so long the distance is within the value stated in epsilon(epsilion:  A numeric distance value to determine the furthest possible location a point can be considered part of the cluster).
 +
 
 +
2. If there's a sufficient number of point (according to minPoint). The neighborhood will be grouped with other neighborhood. If in any chance the distance is further than the value stated in epsilion or number of points falls below the minPoint. It will be labeled as noise.
 +
 
 +
3. Step 1 and 2 are repeated until every point has been visited and label as a cluster or noise.
 +
 
 +
<b>Advantage </b> :
 +
 
 +
- No preset number of cluster needed.
 +
 
 +
- Identifies outlier as noise.
 +
 
 +
- Able to find arbitrarily sized and shaped cluster quite well
 +
 
 +
<b>Disadvantage </b>
 +
 
 +
- Not suitable for a huge dataset (acceptable for our use case)
 +
 
 +
- distance threshold and minPoint would vary from cluster to cluster.
 +
 
 +
<b> Others </b>
 +
 
 +
[[File:OtherClustering.png|400px|center]]
 +
 
 +
There's plenty of clustering methods such as agglomerative hierarchical clustering, birch or gaussianmixture. However, for our project use case. We will stick to the top 3 most popular and common used algorithm.
 +
 
 +
<b> What can we use clustering for? </b>
 +
We can make use of clustering to :
 +
 
 +
1. To figure out what customer segment to target every quarter
 +
 
 +
2. Facebook targeted advertising 
 +
 
 +
Instead of asking store manager for feedback and recommendation, we can cluster customer into multiple category for targeted marketing.
 +
 
 +
 
 +
<U> Association rule learning: </U>
 +
- [http://pbpython.com/market-basket-analysis.html Apriori]
 +
 
 +
 
 +
 
 +
<b> 3.  Reinforcement learning </b>
 +
 
 +
Reinforcement learning is rather special - the learning system or agent needs to learn to make specific decisions. The agent observed the parameter it's being exposed to, it selects and perform actions (from a list of acceptable action) and get rewards in return (penalties for failing). The goal is to choose the action which maximizes reward over time. After countless iteration, the system learns the best strategy called policy on its own.  Example being DeepMind's AlphaGo. The system learns by observing the winning policy through millions of iteration (games) and apply their policy by playing against itself.
 +
 
 +
Reinforcement Learning is a bit special and more advanced category – the learning system or agent needs to learn to make specific decisions. The agent observes the environment to which it is exposed, it selects and performs actions, and gets rewards in return (or penalties in the form of negative rewards), and it’s goal is to choose actions which maximize the reward over time. So by trial and error and based on past experience, the system learns the best strategy, called policy, on its own.
 +
 
 +
 
 +
<b> Problem with machine learning </b>
 +
 
 +
Machine learning isn't the solution for everything. there are flaws involved. Fortunately, we've advanced much and develop solutions for resolving the flaws.
 +
 
 +
1. Developing the relevant ML algorithm to use for training and learning. How do we decide which algorithm to use?
 +
 
 +
[[File:MLWhatToUse.png|700px|center]]
 +
 
 +
2. Loss Mitigation: We have training data, but how to make model learn to keep the prediction loss to a minimum.
 +
 
 +
3. How to identify use case?
 +
 
 +
 
 +
 
 +
 
 +
[[File:Analyteaka CheatSheet.png|1000px|center]]
 +
[[File:MatPlotLibCheatSheet.png|700px|center]]
 +
[[File:NumpyCheatSheet.png|700px|center]]
 +
[[File:PandaCheatSheet.jpeg|700px|center]]
 +
[[File:PandaCheatSheet2.jpeg|700px|center]]
 +
[[File:PandaCheatSheet3.png|700px|center]]
 +
[[File:PythonCheatSheet.jpeg|700px|center]]
 +
[[File:SciKitLearn CheatSheet.png|700px|center]]
 +
 
 
<!--CONTENT-->
 
<!--CONTENT-->
 +
 +
 +
<b> Other reference </b>
 +
 +
 +
[https://medium.com/@lizzie_turner/lets-talk-about-machine-learning-ddca914e9dd1 Lets talk about Machine learning (30 mins)]
 +
 +
[https://developers.google.com/machine-learning/crash-course/ Google machine learning crash course (15 hours)]
 +
 +
[http://a.co/2oTTega Artificial Intelligence for Business – Doug Rose]
 +
 +
[http://a.co/0u9JV60 Machine Learning for Absolute Beginners]
 +
 +
[http://a.co/fceZ7TR Tensor flow for Dummies]
 +
 +
[http://a.co/idt7Y7I Deep Learning with Python (Highly Technical)]
 +
 +
[https://ai100.stanford.edu/2016-report/preface Stanford Article on 100 years of AI]
 +
 +
[https://a16z.com/2016/06/10/ai-deep-learning-machines/ AI, Deep learning and ML : A Primer]
 +
 +
[https://developers.google.com/machine-learning/crash-course/ Google Machine Learning Crash Course]
 +
 +
[https://towardsdatascience.com/machine-learning-for-beginners-d247a9420dab Machine learning for Beginners]
 +
 +
[https://www.quora.com/What-are-some-good-books-on-TensorFlow/answer/Abhilash-Awasthi-1?share=281c70b8&srid=XlQD Quora article on ML resources online]
 +
 +
[https://startupsventurecapital.com/essential-cheat-sheets-for-machine-learning-and-deep-learning-researchers-efb6a8ebd2e5 Machine Learning Cheatsheet]

Latest revision as of 09:04, 27 September 2018

Analyteaka Header.png


HOME

ABOUT US

PROJECT OVERVIEW

PROJECT MANAGEMENT

DOCUMENTATION





Analyteaka Research dataSecurity.png


Under PDPA’s guidance, we are not legally obligated to care for personal data. However, we would follow the best practice tips by exploring

1. Set out how the personal data in custody may be well-protected.

2. Classify the personal data to better manage housekeeping

3. Set clear timelines for the retention of the various personal data and cease to retain documents containing personal data that is no longer required for business or legal purposes.

4. For the transfer of personal data overseas, including the use of contractual agreements with the organizations involved in the transfer to provide a comparable standard of protection overseas.


The above classification is based on our interpretation of Federal Information Processing Standards (FIPS) publication 199 published by the National Institute of Standards and Technology as stated by Carnegie Mellon University to reflect the level of impact to the company if confidentiality, integrity or availability is compromised.


Potential Impact table

Security Objective Low Moderate High
Confidentiality Leakage of information could be expected to have a limited adverse effect on the company’s operation, assets or individuals. Leakage of information could be expected to have a serious adverse effect on the company’s operation, assets or individuals. Leakage of information could be expected to have a severe or catastrophic adverse effect on the company’s operation, assets or individuals.
Integrity Unauthorized modification or destruction of information could be expected to have a limited adverse effect on the company’s operation, assets or individuals. Unauthorized modification or destruction of information could be expected to have a serious adverse effect on the company’s operation, assets or individuals. Unauthorized modification or destruction of information could be expected to have a severe or catastrophic adverse effect on the company’s operation, assets or individuals.
Availability The disruption of the information or system could be expected to have a limited adverse effect on the company’s operation, assets or individuals. The disruption of the information or system could be expected to have a serious adverse effect on the company’s operation, assets or individuals. The disruption of the information or system could be expected to have a severe or catastrophic adverse effect on the company’s operation, assets or individuals.

Based on the above tips and impact. We decided to split the data into 5 different class.

  • Class 1 contain at least 2 high impacts
  • Class 2 contain at least 1 high impacts
  • Class 3 contain at least 1 moderate impacts
  • Class 4 contain 0 impacts
  • Class 5 contain 0 impacts with easily accessible public data
CLass Level Description Example Action
1 Highly confidential data CVV code, credit card number Never stored or process.
2 Uniquely personally identifiable information. Fingerprints, eye scan, session token, NRIC, password Never stored, process and discard.
3 Personally identifiable information DoB, email, address Store only hashed value.
4 non-Personally identifiable information State, city, region, subzone Can be stored as is it
5 public website available content Item details, category, item price Can be stored as is it
Analyteaka Research Analytics.png

Data Analytics is the process of examining data sets in order to draw conclusions about the information they contain, increasingly with the aid of specialized systems and software.

Typical mechanisms: Database (only Data)

Typical timeframe: Offline

The outcome of analytics is informed business decisions to verify or disprove scientific models, theories and hypotheses. The typical goals is to improve efficiency, optimize processes, increase revenues etc.

The hardest part of analytics project is asking the question. As Robert Half once mentioned, "Asking the right questions takes as much skill as giving the right answers." - Robert Half

Descriptive analytics Insight into the past:
  • Uses data aggregation and data mining to provide insight into the past and answer: “What has happened?”.
  • It is typically used to summarise raw data and make it interpretable by humans.

Data operations:

  • Report card of data, used for spotting potential issues when you need to understand at an aggregate level what is going on
  • When you want to summarize and describe different aspects of your business.
Predictive analytics Understanding the future:
  • Uses statistical models and forecasts techniques to understand the future and answer: “What could happen?”
  • Provides estimates about the likelihood of a future outcome
  • Foundation of predictive analytics is based on probabilities
Prescriptive analytics Advise on possible outcomes:
  • Uses optimization and simulation algorithms to advice on possible outcomes and answer: “What should we do?”
  • Attempts to quantify the effect of future decisions in order to advise on possible outcomes before the decisions are actually made
  • Uses a combination of techniques and tools such as business rules, algorithms, machine learning and computational modelling procedures
  • Anytime you need to provide users with advice on what action to take.

Based on the above details our modules are split into the respective section



Descriptive:

  • Customer Profile module
  • Store Profile
  • Staff profile

Predictive:

  • Machine Learning

Prescriptive:

  • Data visualisation module
  • Analytics and reporting module
Analyteaka Research ML.png

What's Machine Learning?

In a nutshell, using algorithms to parse data, learn from it, and then make a determination or predictions. To be specific, it’s a field of computer science that use statistical techniques to give computer system the ability to “learn (e.g progressively improve performance on a specific task) with data, without being explicitly programmed.

Research MachineLearning.png


Misconceptions

However, there are some misconceptions about machine learning.

- It's not logic based, its stats based.

- It's not a solution without proper understanding and expectations.

- AI versus ML vs Deep learning Source

  - AI: Human intelligence exhibited by Machines
  - ML: An approach to achieve AI
  - Deep learning: A technique for implementing Machine learning

- Lastly, there's nothing new about the concept of machine learning (it exist as early as 1950s). It just became much more relevant due to the rise of IOT devices and the potential to store endless data.


Research comparsion.jpg

What we would like to achieve out of machine learning for this project would be the predictive analytics (predict the outcome based on historical and current data). To do so, there are a few potential techniques we can use.

- Classification (Decision tree/hierarchical/forest logistic/linear regression etc). - Clustering (EM, kMeans, Canopy, Hierarchical, CowWeb etc) - Recommendations (Filtered Association, Apriori etc

To better understand how we can apply these techniques, we would need to better understand the different categories of machine learning.


The type of machine learning algorithms Source


Machine-learning-bubble-chart.png

Machine learning algorithms can be broken down into three main categories.

1. Supervised learning In supervised learning. the input training dataset contains both the input and the desired output, called labels (wrong, correct). e.g. In other words, dataset that contains examples of the answer we desired. An example would be the spam filter, it's being provided with many example email along with their label (wrong or correct), as it learns to classify new emails.

It's also usable for prediction of numeric value based on a set of features ( potential variables that affect the end result). An example would be the sales price, the sale price is dependent on the season, location, targeted segments, and cost. There, the training set would require both the sales price and the features. The training process is continued until the model achieves the desired level of accuracy on the training data. For our case, we adopt the dataset into 70/15/15 split of training/testing/validating.


Example of supervised learning algorithms:

1. Linear regression

2. Logistic regression

3. Support vector machines

4. Decision trees and random forest

5. k-nearest neighbors

6. Neural network


2. Unsupervised learning

For unsupervised learning, the dataset has no labels (no right or wrong answer). Rather, the goal is to look for the relationship/ correlation between the data. For instance, diapers and beer has a statistically significant correlation (in some cases). The significant correlation leads to store promoting cross-selling for beer and diapers. Thus similarly, we make use of unsupervised learning to look for such correlation even if it sounds absurd.

Example of unsupervised algorithms:

Clustering:


- k-Means - This is the most well-known clustering algorithms. Commonly taught in various introductory data science and machine learning class (e.g. IS424). It's relative easy to understand and implement.

KmeanPattern.gif

Steps for performing k-mean 1. Select a value (known as k-value) and randomly select their respective center points. In the gif above, there's 3 distinct cluster as the k value is set as 3. (to determine the k-value, there are a few potential techniques such as elbow method.

2. Each data points is then calculated based on the distance between that point and each group's center. The point will then be classified to be in the group whose center is closest to it.

3. Based on the newly classified points, we recompute the group center by taking the mean of all the vectors in the group.

4. Repeat these steps for a set number of iterations or until the group center doesn't change much between iteration (for our case, we use 100 iterations).

Advantage  :

- very fast, linear complexity O(n).

- Suitable for large dataset

Disadvantage

- You need to calculate the optional k-value.

- Random choice of cluster center could produce a different result every run. Thus, the result could lack consistency.


A potential alternative for smaller dataset would be to use k-medians (Due to the increase in computational calculation needed). As it uses the median vector of the group instead or recomputing the mean value of the cluster.


- mean-shift

Mean shift clustering a sliding windows-based algorithm that attempts to find the densest area of data points. In other words, this centroid-based algorithm's goal is to locate the center point of each cluster (As shown in the gif).


Meanshift.gifStep 1 Meanshift2.gif Step 2 and 3



Steps for performinng mean-shift

1. It starts with a random point and surround itself with a radius and slowly shifts itself to a higher density region. It continues this process until it reaches the point where the number of points is the highest possible density.

2. The process is repeated multiple times till every data point lies within that radius. If multiple windows overlap, the one with the most point is preserved.

3. The data point then get clustered based on the circle they reside in.


Advantage  :

- No k-value needed. Auto discover.

- Relatively fast

- Suitable for large dataset

Disadvantage

- The selection of the radius size can be non-trivial.


- Density-Based Spatial Clustering of Applications with Noise (DBSCAN)

DBSCAN is a density-based cluster algorithm similar to mean shift but with a couple notable advantages.

DBSCAN.gif

Steps for performing DBSCAN

1. It starts with a random point that has not been visited. The neighborhood of this point is being grouped together so long the distance is within the value stated in epsilon(epsilion: A numeric distance value to determine the furthest possible location a point can be considered part of the cluster).

2. If there's a sufficient number of point (according to minPoint). The neighborhood will be grouped with other neighborhood. If in any chance the distance is further than the value stated in epsilion or number of points falls below the minPoint. It will be labeled as noise.

3. Step 1 and 2 are repeated until every point has been visited and label as a cluster or noise.

Advantage  :

- No preset number of cluster needed.

- Identifies outlier as noise.

- Able to find arbitrarily sized and shaped cluster quite well

Disadvantage

- Not suitable for a huge dataset (acceptable for our use case)

- distance threshold and minPoint would vary from cluster to cluster.

Others

OtherClustering.png

There's plenty of clustering methods such as agglomerative hierarchical clustering, birch or gaussianmixture. However, for our project use case. We will stick to the top 3 most popular and common used algorithm.

What can we use clustering for? We can make use of clustering to :

1. To figure out what customer segment to target every quarter

2. Facebook targeted advertising

Instead of asking store manager for feedback and recommendation, we can cluster customer into multiple category for targeted marketing.


Association rule learning: - Apriori


3. Reinforcement learning

Reinforcement learning is rather special - the learning system or agent needs to learn to make specific decisions. The agent observed the parameter it's being exposed to, it selects and perform actions (from a list of acceptable action) and get rewards in return (penalties for failing). The goal is to choose the action which maximizes reward over time. After countless iteration, the system learns the best strategy called policy on its own. Example being DeepMind's AlphaGo. The system learns by observing the winning policy through millions of iteration (games) and apply their policy by playing against itself.

Reinforcement Learning is a bit special and more advanced category – the learning system or agent needs to learn to make specific decisions. The agent observes the environment to which it is exposed, it selects and performs actions, and gets rewards in return (or penalties in the form of negative rewards), and it’s goal is to choose actions which maximize the reward over time. So by trial and error and based on past experience, the system learns the best strategy, called policy, on its own.


Problem with machine learning

Machine learning isn't the solution for everything. there are flaws involved. Fortunately, we've advanced much and develop solutions for resolving the flaws.

1. Developing the relevant ML algorithm to use for training and learning. How do we decide which algorithm to use?

MLWhatToUse.png

2. Loss Mitigation: We have training data, but how to make model learn to keep the prediction loss to a minimum.

3. How to identify use case?



Analyteaka CheatSheet.png
MatPlotLibCheatSheet.png
NumpyCheatSheet.png
PandaCheatSheet.jpeg
PandaCheatSheet2.jpeg
PandaCheatSheet3.png
PythonCheatSheet.jpeg
SciKitLearn CheatSheet.png


Other reference


Lets talk about Machine learning (30 mins)

Google machine learning crash course (15 hours)

Artificial Intelligence for Business – Doug Rose

Machine Learning for Absolute Beginners

Tensor flow for Dummies

Deep Learning with Python (Highly Technical)

Stanford Article on 100 years of AI

AI, Deep learning and ML : A Primer

Google Machine Learning Crash Course

Machine learning for Beginners

Quora article on ML resources online

Machine Learning Cheatsheet