Login - Innhold



Login - Innhold
Faculty of Science and Technology
Study Program / Specialization
Spring Semester, 2014
Computer Science
Open / Restricted Access
Piyush Duggal
(Writer’s signature)
Faculty supervisor: Chunming Rong, (UiS)
External supervisor : Yann Chagourin, (Accenture)
Thesis title:
SAP PA: What is the Inside Chemistry?
Predicting future of Predictive Analysis
Credits (ECTS): 30
Key words:
Enclosure : CD
Stavanger 15/06/2014
SAP, Predictive analysis, Association, Apriori,
Regression, PAL, Cluster Analysis, K-Means,
SOM, ABC, Scaling
Front page for master thesis
Faculty of Science and Technology
Decision made by the Dean October 30th 2014
How Worth is Predictive Analysis?
Predicting the Future & Exploring Inside Chemistry of SAP PA
Uncovering value in the data
Piyush Duggal
Department of Electrical and Computer Engineering
University of Stavanger
E-mail: [email protected]
Thesis submitted in partial fulfillment of the
Requirements for MASTER DEGREE
In Computer Science
June 14, 2014
Business Intelligence
Business Intelligence Tools
Data Mining
Data Sources
Data Stream Management System
Data Warehouse
Enterprise Application Integration
Extract Transform and Load
High Performance Analytic Appliance
Key Performance Indicator
Online Analytical Processing
Predictive Analysis
Predictive Analysis Library
Predictive Modelling Markup Language
Relational Database Management System
Real Time
Self Organizing Maps
SAP Visual Intelligence Document
SAP Predictive Analysis Archive file
With enormous growth in analytical data and insight about advantage of managing future
brings Predictive Analysis in picture. It really has potential to be called one of efficient and
competitive technologies that give an edge to business operations. The possibility to predict
future market conditions and to know customers’ needs and behavior in advance is the area of
interest of every organization. Other areas of interest may be maintenance prediction where we
tend to predict when and where any equipment or component will break or fraud detection for
insurance and banking sector companies. SAP predictive analysis tool is sum of all efforts and
investments SAP has made through support of open source statistics language R, many inbuilt
predictive algorithms. This tool thus supports definition, visualization, processing and
deployments of predictive analysis processes in way it was never done or imagined so effectively
before. There are other tools available, like SAS, infinite insight in market for quite some time
now but SAP has now strategically came up with an impressive investment; a concept with Hana
(in-memory database) combined with PA gives them the edge to competitors as they have a
powerful selling case allowing business users to do predictive analysis on huge amounts of data,
with a user-friendly tool that still, via R support, offers the possibility for expert users to develop
their own algorithms
Decision support systems based on predictive models are increasing in popularity as
organizations collect more data than decision makers can handle manually. These predictive
models can be applied to find potentially valuable patterns in the data, or to predict the outcome
of some event. This report talks about PA as concept, understanding it’s necessity, the value it
adds to business and how can analytical users trying to predict future of their business
operations, algorithms involved, hot topics and trends, challenges & criteria of success and more.
Predictive analytics thus enables having an insight of future outcomes and trends based on
extracted information with a probability of outcome from existing data sets with help of models,
pattern recognition, statistical algorithms. Software for PA process can be deployed on-premises
for enterprise users or can be accessed via cloud and there are various solutions both proprietary
& ones based on open source technologies available in market for instance Angoss, IBM
Predictive Analytics, KXEN, Oracle Data Mining, SAP PA, Statistica etc.
I would like to thank Prof. Chunming Rong & Yann Chagourin, my supervisors for their
valuable advises, support and contributions in every phase of thesis work. My deepest gratitude
goes to Chunming for his relentless positive suggestions and insightful comments throughout. He
was always available whenever, I needed help. I would like to extend my sincere thanks to Yann
Chagourin, Analytics manager with Accenture having vast experience with data mining and
analytics for his support. The thesis would have never been possible without his help. I would like
to thank my friends Bikash Agarwal, Tormod Lea, Raji Khushi and Marina Samohvalova Wifi for
their inspirations and help. I would also like to thanks all my wonderful colleagues in Accenture
for their encouraging words.
Last but not the least, I would like to thank all my family and friends in Norway and India
for making my thesis completing successfully. I also greatly thank God for giving me the courage
and energy to finish my Master program despite my other responsibilities. Without his blessings,
I will never be able to reach the achievements I have until now.
Piyush Duggal
University of Stavanger
This thesis i submitted in partial fulfilment of the requirements to complete the Master
of Science (M.Sc.) degree at the Department of Electrical & Computer Engineering at the
University of Stavanger (UiS), Stavanger Norway.
The work can be seen as a case study trying to understand and explore the inner
mechanism of new tool from SAP called Predictive Analysis. Thanks to my supervisors and the
books I referred to achieve the goals set at time of starting the thesis. The report contains work
done from February 2014 to June 2014.
This might be helpful for those thinking of switching their IT skills towards data mining
and analytics. It might have a solid ground for the students and statisticians who are curious to
dive in this wonderful contribution from SAP to computer world. Data visualization, prediction,
exploration and analysis techniques are covered with focus on Apriori and K-means algorithms
implemented in PA. Self-growing Maps can also be area of interest for those who are new to
Piyush Duggal
University of Stavanger
Table of Contents
Chapter 1: Overview of Predictive Analysis ........................................... 11
Definition .......................................................................................................... 11
Potential and what value PA can bring ............................................................ 12
Five Kinds of Analysis for 5 questions .............................................................. 14
Time Series Analysis .................................................................................. 15
Classification Analysis ............................................................................... 16
Cluster Analysis ......................................................................................... 17
Association Analysis .................................................................................. 18
Outlier Analysis ......................................................................................... 19
Predictive Analysis as a process ....................................................................... 20
User’s Classification .......................................................................................... 22
Challenges & Criteria for Success ..................................................................... 22
Chapter 2: PA as a product from SAP .................................................... 26
Intro to SAP HANA (Based on 3rd Semester Project work)............................... 26
SAP HANA Predictive Analysis Library ............................................................... 28
2.3 R Integration ....................................................................................................... 29
Interface walkthrough of SAP Predictive Analysis as a tool ............................. 30
2.4.1 Step 1: Accessing and viewing the Data Source .......................................... 32
Preparing Data for Analysis ........................................................................ 34
2.4.3 Step 3: Applying Algorithms for data analysis ............................................ 36
Step 4: Running the model and viewing the Results................................. 40
2.4.5 Step 5: Deploying Model in Business Application ....................................... 43
Chapter 3: Predictive Analysis Applied .................................................. 46
3.1 Initial Data Exploration ....................................................................................... 46
Sampling .................................................................................................... 48
3.1.2 Scaling.......................................................................................................... 50
3.1.3 Binning.......................................................................................................... 52
3.1.4 Outliers ........................................................................................................ 55
3.2 Which Algorithm When ....................................................................................... 56
3.3. Challenges & Resolutions ................................................................................... 61
Chapter 4: Cluster & Association Analysis Explored............................... 65
4.1 Association Analysis ............................................................................................ 65
4.1.1 Applications of Association Analysis ........................................................... 66
4.1.2 Apriori Association Analysis ........................................................................ 67
4.1.3 Apriori Association Analysis in PAL ............................................................. 68
4.1.4 Strength & Weakness with Apriori Lite ....................................................... 69
4.2 Cluster Analysis ................................................................................................... 70
4.2.1 Introduction & Applications of Cluster Analysis .......................................... 70
4.2.2 ABC Analysis in PAL ...................................................................................... 71
4.2.3 K-Means Cluster Analysis in PAL .................................................................. 75
4.2.4 Silhouette ..................................................................................................... 78
4.2.5 Self-Organizing Maps ................................................................................... 80
Chapter 5: Conclusion ........................................................................... 88
5.1 Problem Set: Burn that Churn ............................................................................ 88
5.2 Results & Analysis ............................................................................................... 89
5.2.1 Clustering ......................................................................................................... 92
5.2.2 Decision Tree .................................................................................................... 94
5.2.3 Apriori............................................................................................................... 95
5.2.4 Neural Network ................................................................................................ 96
5.3 Discussion & Issues ........................................................................................... 100
5.3.1 SAP PA compared to Hadoop....................................................................... 100
5.3.2 Sharing your own R component................................................................. 101
5.3.3 Configuring HANA PAL to use with SAP PA ............................................... 101
5.4 Future Work ...................................................................................................... 102
5.5 Conclusion ......................................................................................................... 102
References .......................................................................................... 104
Table of Figures
Figure 1: PA utilizing approaches from many disciplines ............................................................. 12
Figure 2: Competitive Advantage goes well with Analysis ........................................................... 13
Figure 3: Five main questions of PA .............................................................................................. 14
Figure 4: Historic points as base for future points plot ................................................................ 15
Figure 5: Classification Analysis .................................................................................................... 16
Figure 6: Cluster Analysis .............................................................................................................. 18
Figure 7: Association Analysis ....................................................................................................... 19
Figure 8: Two Dimensional showing Outlier……………………………………………………………………………..20
Figure 9: Steps of PA Process…………………………………………………………………………………………………….21
Figure 10: SAP HANA Internal Architecture……………………………………………………………………………….27
Figure 11: R Integration of PA…………………………………………………………………………………………………..30
Figure 12: Welcome Screen for PA…………………………………………………………………………………………….31
Figure 13: Select Input Source for PA………………………………………………………………………………………..32
Figure 14: Window to search for database………………………………………………………………………………..34
Figure 15: Merge option in Step 1……………………………………………………………………………………………..34
Figure 17: Preparing Data for Analysis ………………………………………………………………………………………35
Figure 18: Possibility to apply and configure algorithms…………………………………………………………..36
Figure 19: Configuring the attributes for algorithms………………………………………………………………….38
Figure 20: An Advanced Analysis in PA……………………………………………………………………………………..40
Figure 21: Dialogue to create a new R Component for PA…………………………………………………………40
Figure 22: Predict Results Grid View………………………………………………………………………………………….41
Figure 23: Cluster Parallel Coordinate Chart……………………………………………………………………………..42
Figure 24: Scoring the saved model in PA………………………………………………………………………………….44
Figure 35: Share View in PA for outputs……………………………………………………………………………………45
Figure 36: Table versus Charts…………….……………………………………………………………………………………47
Figure 37: Input & Output Systematic Sampling………………………………………………………………..………50
Figure 38: The Sample Component in PA…………………………………………………….……………………………50
Figure 39: Scaling types and their results compared…………………………………………………………………51
Figure 40: Normalization Component in PA………………………………………………………………………………53
Figure 41: Input Output tables for Binning table in PAL.……………………………………………………………54
Figure 42: Algorithm Categories with tasks and examples…..……………………………………………………57
Figure 43: Four Data Sets in Anscombe’s Quartet...................................................................…...62
Figure 44: Process of Overfitting the models……………………………………………….……………………………63
Figure 45: Examples of Multicollinearity………………..…………………………………………………………………64
Figure 46: Apriori Principle.………………………………………………………………………………………………………66
Figure 47: Parameter Table Definition for Apriori………..……………………………………………………………67
Figure 48: An Example of ABC Analysis………………………………..……………………………………………………68
Figure 49: ABC Analysis Input & Output tables…...........................................................................73
Figure 50: Parameter Table Definition for K-Means….………………………………….……………………………76
Figure 51: Decision Tree Analysis of Clusters …..…….……………….……………………………………………….80
Figure 52: Data Set Records to the Map...…………………………………………………………………………………83
Figure 53: Four Clusters in the 4 * 4 Map……………………..……………………………………………………………86
Chapter 1: Overview of Predictive Analysis
1.1 Definition
SAP defines its predictive analysis tool as ‘SAP Predictive Analysis is a statistical analysis and
data mining solution that enables you to build predictive models to discover hidden insights and
relationships in your data, from which you can make predictions about future events by allowing
you to perform various analyses on the data, including time series forecasting, outlier detection,
trend analysis, classification analysis, segmentation analysis, and affinity analysis’. In most simple
words it is quantitative analysis supporting predictions and steps involved. It is a trending term
in computer science terminology but not a new topic as we in past few decades can find many
prediction attempts like product sales, costs, headcount, customer churn, advertising campaign
response, possible fraud etc. One can argue that it involves data mining in contrary to involving
knowledge discovery, whatever be end of debate, and it can prove to be business changing
methodology if skilled to best of its potential. It is essentially a process of finding meaningful
correlations, patterns and trends by interpreting and analyzing over through large amounts of
data stored in data repositories deploying statistical/mathematical techniques or pattern
recognition concepts. Inferential statistics and statistical sampling not only enforces requirement
of very large data sets for prediction but also provides possibility to analyze smaller data sets for
efficient sampling of correlations among datasets.
Wikipedia defines it to be an area of statistical analysis in which you extract information
from data to predict patterns and trends. This can then be used to predict an unknown, be it past,
present or future; for example identifying fraud that has been committed or as it is actually
occurring, through to forecasting future sales. The heart of predictive analytics is finding the
relationship between known variables and a predicted variable, using past occurrences. This
relationship is then used to predict an unknown outcome. Naturally, in such an analysis the
quality of the data analysis and the assumptions made, will greatly affect the accuracy and
usability of the predictions. Predictive analysis is a blend of multi quantitative analytics disciplines
and Venn diagram below may describe the contribution of these disciplines to PA. Predictive
analytics enriches decision makers and analysts with the potential to make accurate predictions
about future events based on complex statistical algorithms applied to data under investigation.
In other words, PA is synergy of interdisciplinary methodologies and prospective and
combination of useful approaches to problem solving from diff professions. Statisticians find
analysis methods like inferential statistics, regression and other multivariate methods as key
concepts while operational researchers prefer simulation & optimization methods contrary to
Chapter 1: Overview of Predictive Analysis
Artificial intelligence and information extraction approach followed by data miners. No matter
what approach one goes for, this will always be an analytics process which initializes with data
selection, acquisition and explorations using visualizations or sampling, finding validity of results,
possibly reiterate whole result set and then dissemination in end to implement improved
business processes. Predictive Analytics thus now can be seen as a broader term describing a
variety of statistical and analytical algorithms/techniques used in order to develop models that
can predict future behaviors or events.
Figure 1.1: PA utilizing approaches from many disciplines
1.2 Potential and what value PA can bring
White paper titled ‘The Business Value of Predictive Analytics’ by IDC research reported an
asset management firm increased its marketing offer acceptance rate by300%; an insurance
company identified fraudulent claims 30 days faster than before; a bank was able to identify 50%
of fraud cases within the first hour and a communications company increased customer
satisfaction by 53%. During the 2009 pandemic of H1N1 influenza virus or swine flu, Google was
able to leverage search term activities to predict the spread of the H1N1 disease two weeks
ahead of the government’s reports. This knowledge enabled state and local healthcare to ensure
the availability of medicine resources and treatment for patients. What can describe better the
advantage of being powered with information of what may happen in future depending on model
efficiency? Management becomes when you have an insight of future provided the
Chapter 1: Overview of Predictive Analysis
predictions are accurate. Better and accurate analysis of future happenings better is the control
over it. Figure below describes the competitive advantage we get progressing from simply
reporting the past to predicting the future and clearly advantage increases considerably.
SAP Predictive Analysis was launched in late 2012 as a supplement to SAP Lumira (formerly Visual
Intelligence), a tool to allow users to run R, HANA PAL, and HANA-R algorithms through a userfriendly interface. It will be quiet interesting to note here the results of a survey by Ventana
research titled ‘Predictive Analytics: Improving performance by making future more visible’ and
the results were as below
55% use predictive analytics to create new revenue opportunities.
68% who use predictive analytics claimed a competitive edge.
86% asserted that predictive analytics will have a major positive impact.
Measurement of benefit from PA is not easy to calculate as theoretically it is difference
between what happened from using PA to what would have been happened if PA was not used
and we don’t have value known for later but the fact that market for predictive analysis software
is estimated at over 2 billion dollar can give an idea about its potential, worth and relevance to
business today.
Figure 1.2: Competitive Advantage goes well with Analysis
Users for PA can be data scientists, data analysts or business users. Data scientists are less than
1% of an organization’s head count and generally create complex predictive models, validate
Chapter 1: Overview of Predictive Analysis
predictive requirements and publish results to management. Data analysts contribute to around
3% of head count and assists data scientists in transforming & enriching data sources, creating
simple models and visualize results to publish to BI tools. Rest 97% are direct or indirect
consumers of this analysis information and collaborate with each other for further business
actions. Data scientists generally encompasses traditional terms like data miner, statisticians or
data researchers and have deep knowledge & expertise to build predictive models for analysis,
data collection, validation, exploration, selection and finally prediction. Business users don’t have
technical knowledge and just need output of analysis.
1.3 Five Kinds of Analysis for 5 questions
Whatever be the business or reason to deploy Predictive Analysis in that business, technically PA
tries to find answers to following 5 questions as shown in figure below.
Figure 1.3: Five main questions of PA
Finding trends in historical data can be used to project future data by applying times series
analysis, by utilizing historical data points to see how they might continue. This can be applied to
predict demands or sales forecasting. Keeping track of key influencers of an event or an outcome
can prove to be worthy for churn analysis as we can try to follow purchasing trend of customers.
There can also exist significant segments or groups in data which are of more interest to us,
finding them can be a key for further analysis. Are there any clear groupings of data or some main
influencers? PA also tries to find associations or links between products by analyzing market
baskets to trigger recommendation engines and lastly what and why some anomalies exist in
Chapter 1: Overview of Predictive Analysis
data, are they errors or actual variations to be further analyzed. Off course PA is being deployed
for large set of applications in cross industry but the key questions to be investigated remain
same are thoroughly used. They are actually as basic to PA as a methodology that we can even
group classes of applications. Each of 5 question we discussed above correspond to one of 5
classes of Predictive Analysis helping to describe structure of data for analysis. We classify
predictive analysis applications to one of following 5 classes 1.3.1 Time Series Analysis
Time series analysis accounts for the fact that data points taken over time may have an internal
structure such as autocorrelation, trend or seasonal variation that should be accounted for where
Time Series is an ordered sequence of values of a variable at equally spaced time intervals. It
helps to obtain an understanding of the underlying forces and structure that produced the
observed data and it helps to predict a model and proceed to forecasting, monitoring or even
feedback and feed forward control. The intent is to discern whether there is some pattern in the
values collected to date, with the intention of short term forecasting. Past data points are used
as basis for predicting future ones. Time Series is an ordered sequence of values of a variable at
equally spaced time intervals which give an understanding of the underlying forces and structure
for data under observation. This is also a major weakness because it relies on the assumption
that past behavior will be repeated which may not be true always and thus should be used with
caution. There is actually no real argument to say that decision trees are a better algorithm than
neural networks to classify data but still very common. It will depend on the fit the data set at
hand, and also on the demands of the client as decision trees are easy to understand, and can
help with understanding data patterns, whereas neural networks are black boxes.
Figure 1.4: Historic points as base for future points plot
Chapter 1: Overview of Predictive Analysis
1.3.2 Classification Analysis
This is largest group of applications and tend to predict a variable using data of other variables
that is believed to affect the value of variable we want to predict. Prediction variable is also called
as output variable or target variable as it depends on few independent variables or input
variables. Studying churn analysis or target marketing is most used result. It is one of most
common data mining techniques for finding hidden patterns in data along with clustering
analysis. Classification is different to clustering as it also segments customer records into distinct
segments called classes but unlike to cluster approach classification analysis requires that the
end-user/analyst know ahead of time how classes are defined. A common approach to classify is
to use decision trees for segmenting & partitioning records when better records are obtained by
traversing the tree from the root via branches and nodes, to the leaf as it is a class instance. The
path takes through a decision tree is a rule, as in "Income<$30,000 and age<25, and debt=High.
Due to the sequential nature of the way a decision tree splits the records, it can result in a
decision tree being overly sensitive to initial splits. It is thus advisable to find error rate of each
leaf node.it is easy to express as paths can be shown as rules making it possible to use measures
for evaluating the usefulness of rules such as Support, Confidence and Lift to also evaluate the
usefulness of the tree. We don't use these values practically to measure the quality of a decision
tree model, they go more well with Apriori algorithms. On decision tree models you can just
check the accuracy of the model on known past data.
Figure 1.5: Classification Analysis
Chapter 1: Overview of Predictive Analysis
1.3.3 Cluster Analysis
Cluster analysis or clustering is the task of grouping a set of objects in such a way that objects
in the same group (called a cluster) are more similar (in some sense or another) to each other
than to those in other groups. Cluster analysis itself is not one specific algorithm, but the general
task to be solved. The greater the similarity (or homogeneity) within a group, and the greater the
difference between groups, the “better” or more distinct the clustering. Cluster analysis is a
classification of objects from the data, where by classification we mean a labeling of objects with
class (group) labels. Cluster analysis is distinct from pattern recognition or the areas of statistics
know as discriminant analysis and decision analysis, which seek to find rules for classifying objects
given a set of pre-classified objects and hence can be considered an alternative to Factor Analysis.
As the groups are not know in advance, it can be difficult as results don’t make sense in the
context of the research being conducted. Hierarchical Clustering is efficient and groups data over
a variety of scales by creating a cluster tree which not a single set of clusters, but rather a
multilevel hierarchy, where clusters at one level are joined as clusters at the next level. K-Means
Clustering is a partitioning method and partitions data into k mutually exclusive clusters, and
returns the index of the cluster to which it has assigned each observation. Unlike hierarchical
clustering, k-means clustering operates on actual observations rather than the larger set of
dissimilarity measures by creates a single level of clusters.
Gaussian Mixture Models form clusters by representing the probability density function of
observed variables as a mixture of multivariate normal densities. Mixture models of the Gaussian
mixture distribution class use an expectation maximization (EM) algorithm to fit data, which
assigns posterior probabilities to each component density with respect to each observation.
Clusters are assigned by selecting the component that maximizes the posterior probability and
often considered as soft clustering method. It helps to understand the attributes of smaller
subsets more effectively. Patterns in data or any further relationships are easy to find when we
focus on these clusters and it is also possible to cluster data in a way that allows us to focus on a
specific group within dataset. Cluster Analysis is actually pattern recognition without a priori
knowledge of the data set. When we have groups of similar customers, based on some attributes,
it can be utilized to improve the business processes. For example, if the algorithms find a cluster
of high value customers, there might be idea to target those with specific campaigns. Contrary
to the classification analysis where all observations are known to be a part one of a number of
groups and the objective is to predict the group to which a new observation belongs, cluster
analysis tries to find the number and composition of the groups.
Chapter 1: Overview of Predictive Analysis
Figure 1.2: Cluster Analysis
1.3.4 Association Analysis
Given a set of transactions, we try to find rules that will predict the occurrence of an item based
on the occurrences of an item based on the occurrences of other items in the transaction. The
purpose of association analysis is to find patterns in particular in business processes and to
formulate suitable rules, of the sort "If a customer buys product A, that customer also buys
products B and C". Thus association is a data mining function that discovers the probability of the
co-occurrence of items in a collection. The relationships between co-occurring items are
expressed as association rules. In transactional data, a collection of items is associated with each
case. The collection could theoretically include all possible members of the collection. For
example, all products could theoretically be purchased in a single market-basket transaction.
However, in actuality, only a tiny subset of all possible items are present in a given
transaction; the items in the market-basket represent only a small fraction of the items available
for sale in the store. In transactional data, a collection of items is associated with each case. The
collection could theoretically include all possible members of the collection. For example, all
products could theoretically be purchased in a single market-basket transaction. However, in
actuality, only a tiny subset of all possible items are present in a given transaction; the items in
the market-basket represent only a small fraction of the items available for sale in the store. The
associations necessarily don’t need to be products in shopping baskets, it can even be people in
social network or telephone calling patterns etc.
Chapter 1: Overview of Predictive Analysis
Figure 1.3: Association Analysis
1.3.5 Outlier Analysis
An outlier is a data point which is significantly different from the remaining data i.e. is an
observation which deviates so much from the other observations as to arouse suspicions that it
was generated by a different mechanism and can also be referred to as abnormalities, deviants
or anomalies. An outlier often contains useful information about abnormal characteristics of the
systems and entities, which impact the data generation process. Most outlier detection algorithm
output a score about the level of “outliereness” of a data point. This can be used in order to
determine a ranking of the data points in terms of their outlier tendency. This is a very general
form of output, which retains all the information provided by a particular algorithm, but does not
provide a concise summary of the small number of data points which should be considered
outliers. A second kind of output is a binary label indicating whether a data point is an outlier or
not. While some algorithms may directly return binary labels, the outlier scores can also be
converted into binary labels. This is typically done by imposing thresholds on outlier scores, based
on their statistical distribution. A binary labeling contains less information than a scoring
mechanism, but it is the final result which is often needed for decision making in practical
applications. Predictive model should be capable of differentiating between outlier caused due
to errors in data or genuine variations of data. It is mostly applied in fraud detection, clinical trials,
voting irregularity etc.
Chapter 1: Overview of Predictive Analysis
Data sets with multiple outliers or clusters of outliers are subject to masking and swamping
effects. Masking occurs when a cluster of outlying observations skews the mean and the
covariance estimates toward it, and the resulting distance of the outlying point from the mean is
small. Swamping occurs when a group of outlying instances skews the mean and the covariance
estimates toward it and away from other non-outlying instances, and the resulting distance from
these instances to the mean is large, making them look like outliers. This is the second main usage
for outlier analysis, i.e. "improving" the quality of a data set before running other algorithms on
it as algorithms that would "suffer" from the presence of outliers, like regression algorithms
should not be brought in.
Two Dimensional with an outlier point
1.4 Predictive Analysis as a process
Like every other process, Predictive analysis also is series of defined logical steps and can be
defined well with following steps.
1. Requirement Analysis – What is reason behind your prediction and what is motivation behind
this attempt to predict? What outcomes are expected and who are prospective participants,
timelines and resources. It is important step and requires on average around 20% of total
time to come up with good analysis of requirement. A flaw here will always affect the last
prediction output.
2. Data Identification - What are data requirements and what sort of data will support our
prediction model the best? What are various sources available and which one can be most
reliable? Validation of data after acquiring from various sources is also a good practice. Initial
Chapter 1: Overview of Predictive Analysis
data exploration is conducted and some data transformations like sampling, binning or
rescaling the data may be performed in preparation for model building. It will be interesting
to note here that data selection, acquisition and preparation is most time consuming step in
whole process. A lot of questions like what is needed, in what terms it should be measured,
where it can be obtained from, how good resultant data set is etc. determine data to be
captured and transformed. On an average this step accounts for 36% of total time spent on a
PA process.
3. Model Building – Here algorithms come in picture and they are applied to identify data along
with chosen parameters to find the best analysis. Training the model or testing the model on
one set of data and then reapplying on another or unseen part of data is generally done to
evaluate algorithm fit (how good is the algorithm at solving the problem at hand) for
particular case. This also gives an idea about model performance in terms of robustness,
usability and goodness. 20% time is average consumption in this step.
4. Deployment – Here comes the opportunity to apply selected models in various business
applications and is sometimes also referred to as model scoring. Business rules may
sometimes need to be integrated with business rules & fundamentals to get a better
prospective of business context. Here we also monitor model performance over time.
5. Reiterate – Predictive analysis requires iteration to any stage of process back thus making it
wrong to define as single pass through sequential well defined steps. It is because data is
needed further to transform data so as to alternate the analysis for better results and
provides an option to see a set of data from multi prospective scale.
Figure 1.9: Steps of PA Process
Chapter 1: Overview of Predictive Analysis
1.5 User’s Classification
We can have PA users classified in diverse categories with different skill sets and domain
experience ranging from data scientists to consumer of business applications. Data Scientists
form the minority group as they come under 0.01% of total users and are responsible to create
predictive models, validate predictive business requirements and publish results to management.
Models built by data scientists are used by data analysts through an interface like some wizard
to explore and analyze data related to a particular application say marketing campaign. They
generally have functional and business domain knowledge but generally don't want to get
engaged with technical process of applying algorithms and creating models. They generally need
guidance for understanding these models and basically are interested in output of these models
and most of times are market researchers, market campaign managers or analysts. People who
just want the benefits of predictive analysis simply embedded in their business processes are
classified as business users. They are only interested to analyses the output of algorithms for
decisions. With Service Pack 6 for HANA, SAP has now introduced the Application Function
Modeler tool, that is a graphical interface for running advanced algorithms & accessing results
from the Application Function Libraries and thus helping these business users be more effective.
1.6 Challenges & Criteria for Success
Before we look Predictive Analysis as a product from SAP and its potential, let’s talk about
some challenges of PA and myths involved. It has to be understood that PA don’t guarantee the
successful & consistent prediction of future. In classical business organizations, enormous
amount of data is collected without knowing where & when it will be used with an approach in
mind to save everything because you never know when you need something. But for analyzing
data, quality of data is more important than quantity of data. It may be interesting and efficient
if we store data with a metadata defining the purpose and possible decision making it may
support. Identifying the variable correctly that has biggest impact on prediction or output is most
of times very difficult. Objectives of analysis should be very clear in starting if we want a
successful predictive analysis project implemented. There are many myths about PA in market
and are propagated by innocent or biased parties. Below fiver are most common misconceptions
held about PA as per SAP published book on Predictive Analysis.
PA is all about algorithms.
PA is all about accuracy.
PA requires a data warehouse.
PA is all about vast quantities of data.
PA is done by predictive experts.
Chapter 1: Overview of Predictive Analysis
First myth that PA is all about algorithms is not totally wrong as algorithms form heart of this
process. Good and efficient algorithms are a part of story only. In previous section, we saw that
only 20% of this PA process is devoted to generating models. Other important things that make
core of PA other than algorithms are defining project goals, acquiring understanding and
manipulating data, analyzing, evaluating, modeling and presenting the results. Believing this
myth is something like driving a car that only has engine but no steering wheel, fuel or brakes.
Everyone wants the best model and thus there are various measures to model quality but that
doesn’t mean PA is always accurate. Spending continuous energy and time to refine a model in
order to get very last model of precision always creeps in extra cost. It is business decision that
how worth that extra efforts are to get more and more accurate analysis. A part of predictive
accuracy may discover an interesting pattern in data which will prove to be very crucial in
business decision, but this usefulness doesn’t depend on accuracy of model. Usefulness of PA
algorithms depend on understandability & deplorability of it in business model and not fully on
its accuracy. Third myth is based on assertion that we need to have a fully functional data
warehouse to start with predictive analysis process. It is not true but for sure PA process will be
more efficient and easy to implement if organizational data is relatively clean & easy to access.
While planning to start a data warehouse requisite data for any analysis should be considered.
Management reporting is basic purpose of data warehouse and not data analysis. That’s
why it is a considered a myth and having no data warehouse can’t stop anyone anyhow to start
predictive analysis. Its era of Big Data and thus computers memories, database sizes,
performance factors etc. All are many times bigger these days; but it is definitely a myth that we
cannot predict or analyze without having a vast dataset. We can't "predict" if there are no
patterns in the data, whatever the amount of data. The idea with "big data" is that the more data
you have, the more likely you are to see the patterns, but that pre-supposes the existence of
patterns. PA is equally relevant & successful for very small volume of data. As far as statistical
inference is concerned, data volumes can be small but yet of very high importance for analysis.
In most of cases like churn analysis, credit risks test, loan defaulting etc., even though we have
thousands of records in dataset, PA still depends on just very few key variables.
It is not wrong to say data analysis of bigger dataset is increasing in popularity but for sure
analysis of small data volumes may be equally beneficial and popular to next business decision.
Last myth is true bit not only case and hence PA can be done by Predictive experts as well as
newbies in this area. With tools like PA, the idea is that you do not need to be an expert in R, or
in the inner workings of the provided algorithms, in order to build predictive models. You still
need some knowledge in order to know how to use the algorithms, their strengths and
weaknesses, but yes actually the most important part might be business knowledge to be able to
interpret the results. It actually depends on what has to be done and complexity of this task.
When prospective borrower is browsing a bank website to analyze the bank rules for passing a
Chapter 1: Overview of Predictive Analysis
loan, he is doing his predictive analysis but definitely need not be an expert in this case. PA is best
performed by someone who has relevant business domain knowledge.
Soon we will be exploring how to use predictive analysis so it becomes wise to go through
common pitfalls that every user should avoid to help saving him from any unapparent source of
trouble. Firstly predictive analysis will make no sense by simply throwing in data without any
thoughts. Rational thinking treats it illogical which makes no sense to just dump all accessible
data but some data scientists prefer doing it and want to reply on some intelligent and reliable
algorithm that can work out to find important variables and ignore all irrelevant ones. It is
somehow related to myth 4 mentioned above that PA is all about vast quantities of data. It can
be a good practice to keep dumping all data if you believe on an algorithm that can sort out noise
from signal and has potential to reject some variables if algorithm thinks it to be irrelevant to
analysis. However experienced business users find this approach dangerous and counterintuitive.
Predictive analysis will off course be of no use if user don’t have basic to intermediate knowledge
of related business domain. Without business knowledge of application area it is ideally
impossible to guide predictive analysis process towards useful results and make a decision based
on that results once we have them. Thus it involves teams working together with diverse skillsets
from business knowledge to analysis knowledge working together otherwise neither results nor
variables and dependencies will sound understandable to someone with no business knowledge
when making prediction.
Lack of data knowledge is another common pitfall to be avoided and thus approach
should be to have detailed answers about data, data types, authenticity, source, provider,
measurements, and interpretation in terms of business rules etc. need to be found out at first
place. Has data come from sample or survey or was it unbiased, such questions have deep
significance. Irrelevant data or lack of data knowledge can be as worse as having no data. Without
data knowledge we can be misled even and tend to make erroneous invalid assumptions too.
Some assumptions need to be verified twice for an instance if a customer can hold multiple
accounts or if a class attendance is mandatory. In case of legacy and outsourced data, it is difficult
task as even data experts need to be sure about these assumptions. In Short, sources should
always be questioned and drilled before we finalize any assumption while data verification.
After these pitfalls and myths it would be easy to summarize and understand this section as
key factors for success for any predictive analysis process. Expectations should not be kept very
high and data mining does not guarantee finding gold. It depends on your expectations to see if
finding 10 when you promised 12 is a success or failure. It is always advisable to steer any
predictive analysis project after agreeing the first steps of setting objectives, business case and
desired outcomes and not to go other way to start process and wait for something to be found if
we are lucky. Working in team is also crucial with business domain knowledge experts available
at every step while data analysts supporting them and understanding their requirements.
Chapter 1: Overview of Predictive Analysis
Sensitivity analysis is to question the impact of assumptions made and to verify result of these
assumptions on analysis output. It is actually a very influencer of success. Solution can be
considered unstable or model is considered unhealthy if small changes in assumptions bring large
alterations in results.
Chapter 2: PA as a product from SAP
Intro to SAP HANA (Based on 3rd Semester Project work)
Before we talk about SAP HANA & Predictive Analysis library, here is a quick introduction
to SAP HANA and in-memory computing basics from report of 3rd semester work. An in-memory
database system also known as main memory database system contrast traditional systems
which rely on disk storage mechanism and are claimed to be faster relying on faster internal
optimization algorithms which eliminates seek time. SAP HANA is a powerful platform providing
libraries for predictive, planning, text processing, spatial and business analytics combining data
processing, application platform and database capabilities in memory. SAP HANA is a powerful
platform providing libraries for predictive, planning, text processing, spatial and business
analytics combining data processing, application platform and database capabilities in memory.
SAP HANA is an innovative in-memory data platform that is deployed on-premise as an appliance,
in the cloud or as hybrid of two. The key lies in its unique ability to converge database and
application logic within in-memory engine to perform advanced, real-time analytics. HANA stores
a table in column store as sequence of columns in consecutive memory locations maximizing
spatial locality of table columns. CPU execution speeds are high without need of internal waits
for memory address operations. Data is compressed in two-fold making it a less costly database
allowing speedy searches and calculations. Hana Database also called SAP in-memory database
follows hybrid approach and consists of two relational database engines. Column bases store
arranges data in columns and is optimized to hold huge amount of data, which can be aggregated
in real time. Row based storage is more optimized for insert and updates and stores data in rows.
To achieve the desired performance, in-memory computing follows these basic concepts:
Keep data in main memory to speed up data access.
Minimize data movement by leveraging the columnar storage concept, compression, and
performing calculations at the database level.
Divide and conquer leverage the multi-core architecture of modern processors and multiprocessor servers, or even scale out into a distributed landscape, to be able to grow
beyond what can be supplied by a single server.
All standard features expected from any relational database like views, triggers, indexes etc.
are supported by HANA database engines. At time of table creation, administrator can select
either of two options. It is always possible later to convert tables from one form to another. Both
engines share common persistency layer which is responsible for page management and logging.
Chapter 2: PA as a product from SAP
Logger saves every transaction committed on HANA database in a log entry written on persistent
storage. Log volumes use low latency flash technology for storage. Modeling capabilities to define
in memory transformation of analytical views from relational tables are also provided. Analytical
views always provide real time results as views are never materialized. In-memory computing
allows the processing of massive quantities of real time data in main memory to provide
immediate results from analysis and transaction. In order to support developers in creating
applications and services directly within this new SAP HANA Extended Application Services, SAP
has enhanced the SAP HANA Studio to include all the necessary tools. SAP HANA Studio was
already based upon Eclipse; therefore we were able to extend the Studio via an Eclipse Team
Provider plug-in which sees the SAP HANA Repository as a remote source code repository similar
to Git or Perforce. This way all the development resources (everything from HANA Views,
SQLScript Procedures, Roles, Server Side Logic, HTML and JavaScript content, etc.) can have their
entire lifecycle managed with the SAP HANA Database. These lifecycle management capabilities
include versioning, language translation export/import, and software delivery/transport.
SAP HANA Internal Architecture
Chapter 2: PA as a product from SAP
SAP HANA Predictive Analysis Library
More & more are getting aware of SAP huge efforts and contributions in the area of
predictive analysis ranging from SAP HANA (in-memory computing database) to modern user
interface for visualizing, defining and executing the whole process efficiently. SAP is also
recognized as a leader in big data predictive analysis by Forrester in their report ‘The Forrester
Wave: Big Data, Predictive Analysis Solutions’ just because of innovative solution and research
contributions providing business users with powerful predictive assets as data preparation, data
predictive algorithms, developer tools and a workbench to execute, visualize and share analysis
accelerating the business applications. SAP allows its predictive tool to support many data
sources like HANA or data from SAP BO along with non-SAP solutions like Hadoop (via SAP data
services), CSV or even normal excel files.
The fundamentals behind these PA assets will always be the powerful predictive analysis
algorithms and Predictive Analysis Library (PAL) in HANA which is C++ built in library to perform
in-database data mining and in-database statistical calculations. An enterprise class solution is
delivered by SAP Data Services for data integration, quality management, text analytics, data
profiling and metadata management. Unstructured data sources are also supported through
combination of data services. PAL contain a lot of defined predictive analysis algorithms that
execute in-database to process large datasets. Point here being data is not extracted out of SAP
HANA to another analysis placed somewhere and thus reducing data movement time allowing
performing calculations with in HANA server and database. These algorithms are called from
within HANA SQLScript procedures and are generally grouped together using following classes of
applications. Listed below are all algorithms provided by PA.
a. Association Analysis
- Apriori
- Apriori Lite
b. Cluster Analysis
- ABC Classification
- K-Means
- Kohonen Self Organized Maps
c. Classification Analysis
- C4.5 Decision Tree Analysis
- CHAID Decision Tree Analysis
- K Nearest Neighbor/(KNN)
- Multiple Linear Regression
- Polynomial Regression
- Exponential Regression
- Bi-Variate Geometric Regression
Chapter 2: PA as a product from SAP
- Bi-Variate Logarithmic Regression
- Logistic Regression
- Naïve Bayes
Time Series Analysis
- Single Exponential Smoothing
- Double Exponential Smoothing
- Triple Exponential Smoothing
Outlier Detection
- Inter-Quartile Range Test (Tukey’s Test)
- Variance Test
- Anomaly Detection
Link Prediction
- Common Neighbors
- Jaccard’s Coefficient
- Adamic/Adar
- Katz_
Data Preparation
- Sampling
- Binning
- Scaling
- Convert Categorical to Binary
Link prediction is emerging set of group of algorithms to analyze social networks finding links
between entities on social networks. It will not be wrong to consider PAL to be table based
because each algorithm PA supports, three tables are maintained for each algorithm, an input
table which contains data for analysis, a parameter or control table containing various parameter
combinations for particular algorithm and an output table for the output of the analysis. The
SQLScript which calls PAL contains code which first generates specific procedure followed by
definitions of table for input data, parameter settings & results and finally calls the procedure.
All these procedures are defined in AFL schema which stands for Application Function Library
2.3 R Integration
R, open source statistics language with around 3500 plus packages/algorithms, is one of
most used predictive analysis tool approximately used by 60% of data miners. Allowing use of R
from with HANA offer breadth of algorithms available for business calculations in addition to
specific algorithms defined in PAL. A high level architecture for SAP predictive assets and their
association with R can be shown as figure below. SAP HANA platform being core along with PAL
provides flexibility to involve R. HANA studio provides development environment while the client
tool SAP Predictive Analysis is used by business analysts and data scientists. R and SAP HANA
Chapter 2: PA as a product from SAP
resides on separate servers side by side and R servers takes in data from data stored in HANA
tables which is transformed by R into R vectors or R frames which is default data format used by
R. SQLScript embeds within R script code which is passed over to R for R processing on R server
and the results are transferred back. These results given by R server are again in data vectors
format and are thus needed to be converted back to HANA table. All these transformations and
transfer are performed by HANA Platform. SQLScript containing R script first calls code to initiate
specific procedure and calls parameters, input & output tables before calling the procedure. No
doubt, predictive analysis gets huge flexibility and comprehensiveness due to this R support &
Integration with HANA. If you want to use PAL algorithms you should know SQLScript similarly
like you need knowledge of R to use open source R algorithms and packages. SAP PA is a simple
tool with nice user interface allowing business users to get best benefit of predictive analysis
without knowledge of R or SQLScript. SAP PA capability increases to a great extent with this
feature to add R algorithms. With use of R in SAP PA, data mining capabilities can be extended
with many new algorithms. It also enhances further charts/visualization capabilities. Prerequisite
is off course R software to be installed on host machine with necessary libraries and R algorithms.
R Integration for PA
Interface walkthrough of SAP Predictive Analysis as a tool
SAP Predictive Analysis (PA) in most simple terms is a tool or solution from SAP that serves
like user interface which defines and executes all predictive analysis processes. These processes
can be on in-database PAL in HANA or on predictive algorithms in R or even traditional data
sources such as SAP BO, XLS or CSV. PA has another advantage of being fully integrated with
Lumira to enhance and ease of sharing the results after data acquisition, visualization and
manipulation is done. PA fully supports all analysis processes for prediction mentioned earlier in
this report. This section below gives a detailed description of SAP PA as a product with
Chapter 2: PA as a product from SAP
screenshots and functions possible explaining data preparation, applying algorithms and
deployment of models. All stages starting from accessing/viewing input data to performing
required data preparation and then to finally applying algorithms to analyze this data is covered
in following section of report. The first screen you get when you initiate or invoke PA is called
Welcome Screen. Immediately, a simple five-step getting Started guide comes up and displays
possible five steps. It is really simple by design and interface too as it seems to be in text.
Welcome screen also contains collection of SAMPLES to help new users learn and understand the
product and get used to the tool.
Connecting to a data source. Select a data source.
Prepare your data. Explore the input data.
Analyze your data. Click on the Predict View.
Visualize the analysis results. Click on Results.
Save the analysis: an optional step.
Chapter 2: PA as a product from SAP
2.4.1 Step 1: Accessing and viewing the Data Source
When we select NEW DOCUMENT button from PA welcome Screen, a new dialogue box
opens up giving us possibility to SELECT A SOURCE. PA supports seven different kind of data
sources and this list is populated under the NEW DATA SOURCE COLUMN while on right RECENT
DATA SOURCES column list recently acquired data sources for convenience and fast access.
Unique feature in this list of ‘New Data Source’ is SAP HANA ONLINE which acts as a data source
helping to acquire data from SAP HANA tables, views and analysis views to perform in-database
predictive analysis functions using PAL algorithms and R integration of SAP HANA. Rest all data
sources in list are off course non in-database and exclude PAL algorithms & R integrating for
HANA as analysis part runs outside HANA.
SAP HANA Source Input
Following seven different data sources appearing under New Data Source are
1. CSV file: This option gives the possibility to acquire data from comma-separated value
data file and perform in-process analysis using native PA algorithms and R integration for
2. Free hand SQL: This option helps to create user’s own data provider allowing manual
entry of SQL values to a target data source to perform in-process analysis with help of
native PA algorithms and R integration for PA.
Chapter 2: PA as a product from SAP
3. SAP HANA Offline: This option lets you to acquire data from SAP HANA tables, views and
analysis views and allows performing in-process analysis of data using native PA
algorithms and with help of integration R to PA. It is only option that allows the predictive
models to be run on the HANA database, all the other options have model run locally.
4. SAP HANA Online: This option can acquire data from HANA tables, views and analysis
views to perform in-database analysis using SAP HANA PAL algorithms and R Integration
5. MS Excel: Microsoft excel spreadsheet can be used as a data source and after acquiring
data from an excel spreadsheet, we can perform in-process analysis using native PA
algorithms with integrating R to PA.
6. Universe 3.x: This option allows you to acquire data from SAP BusinessObjects Universe
which are available on X1 3.x platform and perform in-process analysis using native PA
algorithms and by integrating R to PA.
7. Universe 4.x: This option allows you to acquire data from SAP BusinessObjects Universe
which are available on BI 4.x platform and perform in-process analysis using native PA
algorithms and by integrating R to PA.
Selecting SAP HANA online populates a dialogue box asking for SAP HANA connection
information and selecting desired table to fetch data as shown in figure above. Once user select
HANA table and gets a successful connection to HANA, PA directs to PREPARE view where you
can opt to PREDICT view by using all in-database PAL algorithms listed as shown in figure below,
with other data source components in the analysis editor. Data writer and preparation
components are always run in-database in HANA when you opt for SAP HANA online as your data
source and it is important to note that various PAL algorithms like Apriori, K-Means, CNR Tree or
Multiple linear regression are supported for R Integration in such cases. For other 6 data sources
other than HANA online, for an instance CSV file, prompt for data source selection looks like as
figure below where you can browse for data file located in hard disk of your machine. Once data
is acquired for analysis, similar to HANA Online case PA takes you to PREPARE view from where
you can opt PREDICT view and can utilize all the native PA algorithms and PA supported R
algorithms from algorithms section. All supported algorithms are listed under algorithms tab and
can be selected to use based on your requirement.
SAP PA also allows you to combine data from two different data sets from within PREPARE
view. You have two options for combining data sets, either you can merge or union data sets.
MERGE functionality creates a combined table to match a key column from two given data sets
while UNION appends to target dataset the selected columns of source data set based on an
identifier provided matching columns in two data sets have same data type. Figure below gives
you an idea of functionality to MERGE two data sets in the Prepare View of PA. Once you have
acquired input data from any of 7 possible data sources, you are ready to analyze and perform
initial data exploration along with preparation before applying any algorithm.
Chapter 2: PA as a product from SAP
Window to search for input file database
Merge Data in Step 1
Preparing Data for Analysis
Once data input is finished, PA moves to prepare view where we have possibility to review
data in grid format or apply to columns rich features like sorting, filtering, renaming, merging,
Chapter 2: PA as a product from SAP
creating as geographical hierarchy, creating a time hierarchy, reformatting or converting to a
different data type. Data in prepare stage can be viewed in both grid or facets display option as
shown in figures below. In facets view, the data is shown by distinct value equivalent to horizontal
bar chart but by value. It is useful in case we have few distinct values. Data manipulators available
are similar in both views.
Preparing Data for Analysis
A unique and useful functionality available in Prepare View is the Visualize view with help
of the available extensive chart library. After accessing the data and then exploring it using many
Chapter 2: PA as a product from SAP
visualizations and choosing one or more of extensive chart options, we get better control of data
and thus can perform further data preparation to apply PA algorithms in an effective way.
2.4.3 Step 3: Applying Algorithms for data analysis
After data preparation is over, all components that can be added to create an analysis are
grouped under tabs into Algorithms, Data Preparation and Data Writers are seen under the
Predict view of PA. Components available to use vary depending on whether you are building an
in-database analysis using HANA algorithms or alternatively adding an in-process analysis. Actual
construction of analyses is similar in case of both methods even when components available vary.
Building an analysis is quiet straight forward, simply select a component and then drag selected
component to analysis editor workspace and you will see it getting automatically connected to
component in focus. Second way is to double click desired next component instead of dragging
which also make it connect to component in focus automatically. Input and output anchors also
called as connection points are contained by each component and are useful to get connected to
other components. Data source output always have only single output connection point.
Connected data components always work in a fashion that data transmits from predecessor
component to their successor component or we can say output of predecessor component in a
connection acts as source of input to successor component in that connection. Structure of
component is shown in figure below and has options to rename, run, delete or configure its
properties. Figure below also shows different states a component can be in. ‘Not Configured’
refers to scenario when user drag a component on analysis editor workspace and it needs to be
configured before analysis can be run. ‘Configured’ refers to case when all mandatory properties
of components are configured and analysis can be run. ‘Success’ is displayed after successful
execution of analysis and ‘Failure’ refers to case when component causes execution of analysis
towards failure state.
Possibility to apply and configure Algorithms
Chapter 2: PA as a product from SAP
Now we will discuss both in-data base analysis with data sourced from HANA and algorithms
based on PAL along with case of in-process analysis with data sourced from a CSV file and
algorithms based on integrating R to PA using approach to building an analysis and with help of
Case 1: In-Database analysis using HANA tables and PAL
We start with selecting the data in SAP HANA and then choose predict view in PA to run this
analysis. Key difference and point to mention here is that in this case when data source is SAP
HANA online, the data does not leave SAP HANA i.e. whole analysis is run in-database. We take
an example to run analysis aiming to segment or cluster the retails stores data into similar groups
based on sales turn over, profit margins, staff numbers and store size and we choose to
implement HANA K-means algorithm for this analysis. Choosing component as explained in
previous step is simple and it requires just to drag and connect the component in analysis editor
workspace as shown in figure below.
PAL on HANA Data source
Next we proceed by configuring the properties of HANA K-means component as shown in figure
below and we are given options to change all primary properties. We can choose what variables
we want to use in the analysis e.g. Turnover, Size, margin etc. and the number of clusters that is
the value of K, which in this example is taken to be 5. Clicking the Advanced properties tab in
dialogue box will display rest of control parameters for this algorithm component as shown in
figure below which are clearly defined for business analysts contrary to writing SQLScript. Fields
marked with an asterisk are mandatory inputs. Generally default values for advanced properties
Chapter 2: PA as a product from SAP
are displayed and can be changed, for instance, the maximum no of literation’s should be
changed to some lower value than default 100 if data volumes are too large and processing time
is crucial factor. After primary and advanced properties are set, analysis is ready to run.
Configuring the attributes for algorithms
It starts with selecting the data in SAP HANA and then choose predict view in PA to run this
analysis. Key difference and point to mention here is that in this case when data source is SAP
HANA online, the data does not leave SAP HANA i.e. whole analysis is run in-database. We take
an example to run analysis aiming to segment or cluster the retails stores data into similar groups
based on sales turn over, profit margins, staff numbers and store size and we choose to
implement HANA K-means algorithm for this analysis. Choosing component as explained in
previous step is simple and it requires just to drag and connect the component in analysis editor
workspace as shown in figure below.
Case 2: In-Process analysis using CSV file and R Integration
Chapter 2: PA as a product from SAP
We start with selecting the data from a CSV file for this case of in-process analysis and
then go to predict view. To explain this case we refer to same example of aiming to cluster or
group the retail stores into similar groups based on sales, turnover, store-size etc. We similar to
previous case again proceed to select the R K-Means algorithm and drag to connect the
component in analysis editor workspace. Next we have options available to configure the
properties of the R K-means components which are very similar to editable properties in previous
case. We can select the variables for the analysis and value of K which represents the number of
clusters to be created during the analysis. Going to Advanced properties in dialogue box displays
rest of control parameters for R K-Means algorithm which are defined for business analysts as
opposed to writing R language script. Values displayed under advanced properties are default
values and can be left untouched by user. Analysis is now ready to be run as we have configured
right data source with required algorithms and given desired parameters.
Before we move on to next step when we describe how to run the analyses, let’s have a
look to a more advanced and more realistic analysis as compared to analyses we have built in
upper cases just by dragging in two components. In figure below which represents a realistic
analysis scenario, Stores.csv is data source which then runs the inter-quartile range test on each
variable to filter for outliers before running cluster analysis on data. Cluster analysis is then run
which results writing to a database table the source data with assigned cluster numbers, while
specific results for cluster one are under execution. Data as a result of cluster analysis is then
analyzed with help of a decision tree when target or dependent variable is from a set of
previously derived cluster number and independent variables still represent store turnover,
margin, staff and size giving us an insight to find specific rules and patterns explaining why such
cluster sexist. Finally the results are exported to a filtered subset. It is quiet beneficial as we have
an advantage of saving our decision tree models to reapply to a new data to predict a new stores
cluster assignment. Saving models offer an option to export it to another application using
Predictive Modeling Markup Language (PMML) standard which is explained more lately in this
We start with selecting the data from a CSV file for this case of in-process analysis and
then go to predict view. To explain this case we refer to same example of aiming to cluster or
group the retail stores into similar groups based on sales, turnover, store-size etc. We similar to
previous case again proceed to select the R K-Means algorithm and drag to connect the
component in analysis editor workspace. New feature added to PA is the ability to define and run
R algorithm from the PA analysis editor. GUI to add R script as new component in A is provided
by tool based on either R integration for PA or R integration for SAP HANA to run such scripts.
Even capability to add your own custom algorithm written in C++ or JAVA is available. Figure
below displays a part of wizard to write custom R script components which can later be included
in any analysis. This integration features SAP PA to thousands of algorithms from R libraries. An
expert R user can write new components or algorithms which another business user can then
easily embed into his analysis.
Chapter 2: PA as a product from SAP
An Advanced Analysis in PA
Dialogue to create a new R Component for PA
Step 4: Running the model and viewing the Results
Chapter 2: PA as a product from SAP
Running in analysis whether in in-database or in-process method is exactly same. Let’s
take an example when we run in-process analysis we developed in last step using CSV file to
explain the PA functionality using screenshots. We can run analysis after we generate it in two
ways. Either we can run using the ‘Run till here’ option or R K-Means component or we can also
invoke it from the RUN ANALYSIS icon on the analysis editor toolbar. Once analysis run is
completed successfully, we can switch to predict results view for tabular or grid output along
with specific charts of used algorithms and default ad hoc chart viewer for user defined
visualizations. Figure below shows a new column added corresponding to each record, its
assigned cluster number in the results view for first few records of our cluster analysis with input
data listed to left on new column.
Predict Results Grid View
If you click CHARTS option, just on right of Grid button, then for used K-Means algorithm
you can see cluster chart which provides four different visualizations of results of this cluster
analysis for further exploration of data by user and to get a better view of analysis. Vertical bar
chart compares each cluster by showing size of each cluster which can also be changed to a
horizontal bar chart or pie chart. There is also generated a cluster density chart with distance
chart where color code scale of dark to light for dense to sparse clusters is shown following the
fact that thicker line means closer the clusters. Small-sized clusters that seem to be close can be
entertained for combining while other small-sized clusters distant from other clusters may be
considered as outliers. Two chars generated at bottom can be used by user to compare clusters
based on any specific variable to differentiate properties of each cluster. For every algorithm
available, an algorithm summary is generated when it is used in an analysis, which in this example
can be shown as figure below representing output from R for this R K-means algorithm applied.
This summary includes the cluster center coordinates, the within cluster sum of squares which is
Chapter 2: PA as a product from SAP
like the squared sum of the distance between individual records in the cluster and the cluster
center for all records in the cluster and finally the size of each cluster.
Cluster Chart in PA
Under CHARTS option, a third chart is available with name CLUSTER PARALLEL COORIDINATES
CHART where each record is plotted as horizontal line connected by its value on vertical axis of
each displayed variable and then colored coded based on its cluster number. As with many of
visualizations in PA, we can drill down into specific data to examine it in more details. Each
algorithm has a default visualization which is discussed under algorithms sections of this report.
We can also use the visualize option for ad hoc user defined chart creation. In figure below, a
trellis chart is created showing each variable by cluster group of comparison. Going further we
have possibility to use the model to predict new data either with in PA or in an external
Cluster Parallel Coordinate Chart
Chapter 2: PA as a product from SAP
2.4.5 Step 5: Deploying Model in Business Application
We have several options available in SAP PA to deploy models:
Scoring models in PA and exporting the results.
Exporting the model as PMML.
Sharing the analysis in the Share View in PA.
Exporting and importing analyses between PA users.
Exporting an SAP HANA PAL model from PA as a stored procedure.
Most commonly used option of these possibilities is to use PA to predict new data or score the
model. PA provides this functionality to save the built model after you have built this model and
then when you want to make predictions using same model but with new set of data. Saved
model can be run again with new data from which the target or dependent variable can be
predicted. It got its name scoring models based on phrase of scoring a customer’s credit
worthiness or their probability to churn. You can extend the analysis by adding the decision tree
algorithms R-CNR tree to derive rules that describe why records have been assigned to specific
clusters. Independent or input variables are retail store turnover, margin, staff number and shop
size and target or dependent variable is cluster number. Figure below demonstrates this,
possibility of an option to save model with a model name and corresponding description. Saved
models are shown in a new tab, along with the Algorithms, Data Preparation and Data Writers
tab once the model is saved. It makes easy to build new analysis using saved models to predict
new data set. In prepare view, directly add saved model to predict along with new data set.
Alternative approach can be to export saved model from current analysis and after this to create
a new analysis with new data for scoring and importing saved model. Below two screenshots
show the saved model tab with name and description in PA tool and also how the scoring the
saved model can be done.
Above section explained the procedure to export the predictions of a model for reuse and
so in following section we will talk about exporting the model as PMML. PA gives you the
opportunity to export a saved model as the Predictive Modell ling Markup Language (PMML)
which is now seen as an industry standard for model sharing between various applications. The
option to export model as PMML appears when we right click on saved model component in PA
analysis editor where we can specify the output file to store the XML. Figure below is a screenshot
from such an XML of PMML generated for a saved model. PMML can then easily be read by
another application which describes the created model and then can exploit it to bring up
predictions. This was detailed view of exporting model as PMML and now in next section we will
see how to share the analysis with other users. Off course sharing the analysis is as important
step as developing analysis.
Chapter 2: PA as a product from SAP
Scoring the saved model in PA
There is a share view option given in PA tool which gives us the following functionalities
to use on data, chart of both of them together. We can share our charts, export our generated
data set to a file, publish generated data set for an analysis view to SAP HANA, publish generated
data set and charts to Stream work, and publish generated data set to SAP Lumira cloud or
publishing our data set to Business Objects information space to be accessed in SAP BO Explorer.
Diagram below gives an idea of how we can share the Customers.xlsx data along with associated
visualizations. Following section will cover exporting and importing analyses between PA users.
PMML Output for decision tree
Chapter 2: PA as a product from SAP
To Export a model for analysis by another PA user, .spar file can be generated in a SVID
document which can later be used in another SVID document once imported is successful. It can
be done with a series of simple steps. From PA tool in the predict view, choose ‘Export Model’
and provide name of .spar file when prompted and save it. This saved model in .spar file can be
reused by another SVID document by importing it from saved .spar file. To Import model is also
as straightforward as export model. Choose ‘Import Model’ under PA tool bar in Predict view of
PA tool and when asked choose the path and file of desired .spar file and click Open. This will
display the model in saved model tab after importing completes. SVID stands for SAP Visual
Intelligence Document where Visual Intelligence is earlier name of Lumira and was a product to
store data set along with visualizations generated by users. Saving model in PA automatically
makes a copy and stores it in SVID also. The purpose is to make it available to share with other
users or to share on Lumira cloud from where they can be accessed directly in PA or Lumira. SPAR
is an acronym for SAP Predictive Analysis Archive file and forms the proprietary format to export
models created in PA. Current scenario sees it mainly for transporting model purpose only but
eventually plans are to cover analysis and custom created components also in this format. It is
very helpful and core of business operations when one user creates the model and other uses it
or share it or modify it to his own needs.
To use a saved PA model in SAP HANA, it is possible to export saved model as SAP HANA
PAL model too. We can export and save model using wizard as shown in figure below after
creating an in-database SAP HANA model and saving it in correct format. Exported procedure
along with associated objects of tables, types, procedures appear under the selected schema in
Share View in PA for output
Chapter 3: Predictive Analysis Applied
It all starts from initial data exploration i.e. historic and current data sets form basis of all
predictions. Following section talks about importance and methods of initial data exploration
along with data preparation for predictive analysis. Quality of any analysis in general is directly
dependent on the quality of input data sets agreeing with age old concept of garbage n garbage
out. It don’t seem true that pushing algorithms on any collected data will give useful predictions
thus making data exploration very difficult and crucial step. Prediction depends on identifying
first what data might be useful, then finding out where it might be available, analyzing it,
reviewing it to understand and validate, to propose key element that effects the outcome etc.
3.1 Initial Data Exploration
There are two types of data: qualitative and quantitative. Qualitative data also called as
categorical data in statistics is mostly expressed by means of natural languages and not in terms
of numbers. Examples include text color is red, tallest in class is Anna, male elephant etc. These
categories generally are associated with some structure. Nominal categories are which has no
natural ordering like race, gender, religion while ordinal variables are ones which can have their
categories ordered in some way like small, medium and large. Numerical measurements
expressed in terms of numbers instead of natural languages are categorized as quantitative data.
Case can be some numbers which can’t be continuous or measurable like post codes and tax
codes. We can differentiate on fact that such numerical data can’t be added or subtracted.
Quantitative variables either are discrete such as number of students in class or continuous such
as weight, height salary etc. they are more like integers. There can be further categorization like
binary variables like 0 or 1, on or off etc. or date formats which look like numerical digits. In a
sense, categorical, string or text variables are qualitative while numeric which can go under
algebraic functions are quantitative variables.
Data type is crucial and important for any analysis as non-numeric values cannot be
predicted by linear regression while some decision tress need input data in a standard format.
Data types should be chosen before test as most statistical test and analysis are sensitive to data
types. Database types are generally reflected by data types in PAL. In PA there are string or
varchar data types for qualitative variables and only integer and double for quantitative variables.
‘Date’ data type is also supported by PA giving facility to convert data types, format them to
appropriate formats. There are functions available in PAL which converts data types, for an
Chapter 3: Predictive Analysis Applied
instance, CONV2BINARYVECTOR converts categorical input data to numeric data for use of
algorithms which accept only numeric data like K-Means.
Second way to convert categorical variables to numeric ones is to use Formula component
and clauses such as If (‘Name’ == ‘ANNA’) Then (1). Under data types, we may sometimes need
to construct new variables from existing variables. A case can be finding ratio of bank transactions
made on weekend compared to transactions made on weekdays may be more helpful than using
those two values independently. Missing value also forms a very considerable data type when
we talk about predictive analysis. There can be lot of reasons behind getting missing values in a
data set like mistakes, reluctance to provide confidential information or simply unavailable
values. We can approach these missing values with different ways, either ignoring them or
substituting them with some values based on similar records or can be interpolated from within
set of known data values. Data type is crucial and important for any analysis as non-numeric
values cannot be predicted by linear regression while some decision tress need input data in a
standard format.
Everyone will believe when you say that data is understood better when represented in a
visual form rather than through lists or tables of data. Following figure proves the power of
visualizing data makes understanding easy over tables or lists. Most frequently call pairing and
group of callers can clearly be analyzed with figure on right compared to same data represented
in table for call traffic. Credit to invent idea of line charts, bar charts, pie charts etc. goes to
William Playfair who published first version of these charts in 1786. Once data is explored and
visualized, we come to next stage of data preparation for predictive analysis: sampling, scaling
and binning in following section.
Table versus Chart
Chapter 3: Predictive Analysis Applied
Sampling refers to process of creating subsets of all of the date in order to produce inferences
about al of given data. All data is referred to as the population by statisticians and hence we also
refer this process as sampling from the population and is pushed where efforts to access and
interpret all data is too high. It also helps when some of data goes missing for any reason.
Generally speaking sampling is done mainly to explore data initially with different analysis points
before choosing one and focusing in detail, as it gives us an idea about which data is actually
unnecessary for the specific analysis. ‘Sample is representative of all data.’ Sampling when used
in predictive analysis technique is called as cross-validation and we can also sample because the
sheer amount of data makes running/training models on the complete data set too time
Simply it involves creating of subset of data to build a model and then use the left over
data to test this model; that implies a condition that test data has to be removed from initial
creation of model so that we can compare later to see how good our analysis and prediction is.
Most of times, model works poorly on new data as contrary to given data thus we need model
over fitting which means to adjust an excellent model using trading data and poor model for the
test data. Overfitting a model is the issue one could have by getting a predictive model that is too
good on the data set it was trained upon. That could render it useless on other samples of the
data. For example you have a 100 000 rows data set, take a sample of 10000 to train a model,
and get a predicted accuracy of 97%. You think it's pretty good, but when you run the model on
another (control) sample, you get an accuracy of below 50% => your model was over fit. Sampling
is easy to use with simple train before test splitting of data, called as holdout, through to k-fold
cross-validation where data set is composed of k subsets and hold method is called k times in
iteration. All k-1 subsets are amalgamated to form training set every time one of k subsets is used
as test set which helps to compute average across all k trials. A different approach to this
sampling can be to randomly distribute data into attest and training each set k times. In PAL,
there are eight sampling methods, invoked from function to sample data. It is thus easy but you
still have several available methods with the underlying issue when you're not looking at the
whole data set. What you gain in processing times, you lose in data coverage.
1. First N
2. Middle N
3. Last N
4. Every Nth
5. Simple random with replacement
6. Simple random without replacement
7. Systematic sampling
8. Stratified sampling
Chapter 3: Predictive Analysis Applied
Simple random with replacement method initiates random sampling of N or N% of all
records with replacement i.e. for potential further section selected record is allowed to come
back and join all left data. Simple random without replacement also works same as smile random
with replacement but a select record here cannot be returned back to all data for further
selection. In systematic sampling, little structure is required for random sampling. It is also called
as interval sampling sometimes. We first determine sampling interval (k) and then divide number
of units in the population by this k to create samples. For an instance, selecting from a population
of 600 a sample of 50, we would require a sampling interval of 600 ÷ 50 = 12. Therefore, k will be
set to 12, which allows you to choose one record from every 12 records to total as 100 records
in the sample. Given a random number between one and k, which would be the first number
included in your sample is referred to as random start.
The 25 records that comprise population or data which we will use in this example to select
samples are shown below in figure. Code below represents main elements of PAL Script for
This sampling is based on method 6 of eight methods mentioned above. When we select a
sampling size i.e. k as 5 output is sown in figure below with 5 records showing an increment of 5
as sampling interval when starting value was chosen randomly as 2.
// The procedure generator
Call SYSTEM.afl_wrapper_generator ('SAMPLING_TEST','AFLPAL','SAMPLING',PDATA);
// The Control Table parameters
//Assume the data as in figure below and calling the procedure
There is one more sampling method available in PAL called Stratified sampling which
targets to find out those attributes that may divide up a data set or population in subpopulations
or strata. This should be in a way that selected sample from population can still be considered as
representative of population. Stratified sampling takes samples from each stratum of population.
Requirement while sampling population in such case is that the proportion of each stratum in
sample be same as in population. These takes are applied more when population is
heterogeneous and dissimilar but still gives a possibility to find homogeneous subpopulations.
On other hand, when data is homogeneous, simple random sampling methods are more
Chapter 3: Predictive Analysis Applied
Input & Output Systematic Sampling
PA allows us to sample data both for in-database in SAP HANA or on non-SAP HANA data sources,
with sample component option available in Data Preparation tab of Predict view.
The Sample Component in PA
3.1.2 Scaling
Scaling of data is done before we run any of predictive algorithms with intention to be sure that
every variable in the model gets equal weight and emphasis as an input to the model which needs
Chapter 3: Predictive Analysis Applied
to define a common data scale for all these variables. For instance, we can scale all the data used
as input to be classified within a selected range, such as, -2.5 to 2.5, or 0.4 to 2.9. Another scaling
approach close to normalization or standardization the data use a z-score and a variable is
rescaled to have a mean of zero and a standard deviation of one. Calculation is thus in case taken
as the average of the variable subtracted from the value for each record, giving in result the mean
of the standardized variable of zero, divided by the standard deviation, which results in a
standard deviation of one. In simple words a value of 2 indicates that the value for that record is
two standard deviation above the mean, while a value of -3 indicates that a record has a value
three standard deviations less than the mean. Scaling or normalization plays a vital role to classify
algorithms which involve neural networks, or distance measurements such as nearest neighbor
classification and clustering, where independently scaled data, for an instance, few entities in
millions and some in tens or hundreds, can influence the analysis to a considerable value and
hence a need for a common scale among the numeric variables arises.
The PAL supports three methods, and these function can be called using SCALINGRANGE:
EE Min-max normalization.
EE Z-Score normalization
EE Normalization by decimal scaling
Let’s take an example of scaling assuming we have data table DATA_TAB in HANA as shown in
figure below. To scale this data in range A to B, formula we use is (B – A) * (Xi – Min Xi) / (Max Xi
– Min Xi) + A which when considering A as 0 and B as 1 simplifies to (Xi – Min Xi) / (Max Xi – Min
Xi). Procedure to scale can be called as with the following PAL SQLScript for scaling.
// Calling the procedure
Scaling types and their results compared
Chapter 3: Predictive Analysis Applied
Figure above shows us the result when we scale that data from 0 to 1 by setting the parameter
NEW_MAX to 1 and NEW_MIN to 0 i.e. maximum value 1 and minimum value 0.
Other method to scale in PAL is z-score normalization and can be called by setting scaling method
control parameter to value 1, and then choosing one of 3 possibilities which are ‘Mean and
standard deviation’, ‘Mean and mean absolute deviation’, ‘Median and median absolute
deviation’. Consider Z_Score_Method as Zero with same input table as in previous example
results are shown in figure above where scaling of data is on mean zero with standard deviation
of 1. We can scale with Normalization component in PA also with an interface available in Data
Preparation tab under Predict view. Scaling can be done on both HANA and non-SAP HANA data
sources. Below figure gives an overview of Normalization component is PA using inbuilt function
for normalization.
Normalization Component in PA
3.1.3 Binning
Binning of data is used to summarize or group for better visualizations when data volume to be
analyzed is large. To construct a histogram for an instance is not easy without data binning. To
visualize huge amount of data points need data binning first which can further ask for subsequent
interactive drill. Generally data binning is done prior to run any predictive algorithm as an
Chapter 3: Predictive Analysis Applied
attempt to reduce complexity of model. Complex models are no one’s cup tea as they are difficult
to understand and thus aim is to achieve concept of parsimony i.e. simplest model with very few
variants. Binning of numeric data is also called discretization of continuous data and it is
important to have it done effectively otherwise it will lead to complex models. You can imagine
a situation trying to construct decision trees based on variables with huge set of numbers where
each branch of tree is considering every number thus making a complex decision tree difficult to
implement. Before discussing binning functions available in PAL, it is good to know that PAL also
allows three methods of smoothing.
Noise is a random error or variance in a measured variable. Given a numerical attribute
such as, say, age, how can we “smooth” out the data to remove the noise? Data Smoothing uses
an algorithm to remove noise from a data set thus facilitating important patterns in dataset to
stand out. Random, random walk, moving average, simple exponential, linear exponential and
seasonal exponential smoothing are some common ways in data mining for smoothing Firstly
smoothing by bin where mean value of bin replaces all other values in bin, secondly smoothing
by bin medians where bin median replaces all other values in bin and lastly smoothing by bin
boundaries where closest boundary value replace each bin value and represents minimum or
maximum values in given bin. It is also trying to find threshold on continuous variables. For
example a person's income might have an effect on where the person is going on vacation and
maybe the threshold is on 500K a year. Those with less stay in Norway, those with more go
abroad etc and if you use a continuous variable in a decision tree the threshold will be difficult to
spot, but if you bin that data in "less than 500k" and "more than 500k" then it will be easier. The
problem is that often we would not be knowing beforehand what binning strategy should be
applied i.e. how many groups, and with what rules?
PAL supports following four methods to achieve binning.
Equal widths based on the number of bins
Equal widths based on the bin width
Equal number of records per bin
Mean/Standard Deviation bin boundaries
Let’s try to implement an example of this binning process on table DATA_TAB as shown in figure
below. Main elements of the SQLScript are shown in code below while full code is available in file
SAP_HANA_PAL_BINNING_Example_SQLScript on the SAP PRESS web site.
Chapter 3: Predictive Analysis Applied
Input Output tables for Binning table in PAL
// The procedure generator
Call SYSTEM.afl_wrapper_generator('BINNING_TEST','AFLPAL','BINNING',PD ATA);
// The Control Table parameters
//Assume the data as shown in table DATA_TAB from input table in figure below
//Calling the procedure
In this example of binning method, numbering starts from zero of equal widths depending
on number of bins here set to 4 and smoothing is done using smoothing by bin mean. The bin
widths calculated as (max – min) / k, which in this case becomes (38 – 6) / 4 equals 8, so the bin
ranges are >=6 to <14; >=14 to <22; >=22 to <30; >=30 to <=38 which makes first bin getting the
values 6, 12, 13 and 10, which has a mean of 10.25. Same way we can have second bin containing
the value of 15 only while the third bin possesses the values 23, 24 and 25, with a mean value of
24.The last bin fourth one, contains the values 30, 32 and 38and thus man value of 33.33. Results
are shown in figure up. We can choose binning method based on which one of us appeals most
in that particular scenario, most of times found by hit & trials. Best approach can be to try all
binning and smoothing methods to see individual impact of each on model. Binning method is
not important when model gets robust to changes with binning method. It is always practical to
analyze the reason behind variations by looking data in detail if model solution does vary
Chapter 3: Predictive Analysis Applied
3.1.4 Outliers
Outliers in data can always influence any algorithm’s performance, model’s parameters
and confidence in predictions to a significant level thus a crucial practice as a part of initial data
exploration is always to check existence of outliers or unusual values in given data set to
understand the cause and decide next action items concerning them. Some algorithms are more
sensible to outliers than others. An outlier is an observation which deviates so much from the
other observations as to arouse suspicions that it was generated by a different mechanism.
Outliers can easily be visualized in scatter plots, although difficult to scale for large data volumes.
Box plot as show in in figure is most popular used visualization approach for outlier
detections. Box plots are thus an excellent tool for conveying location and variation information
in data sets, particularly for detecting and illustrating location and variation changes between
different groups of data. Every value is specified in the box with upper and lower quartiles on y
axis scale, induced white line in the box representing median value. Fences on top and bottom
of box signifies a factor time’s interquartile range. A single box plot can be drawn for one batch
of data with no distinct groups. Alternatively, multiple box plots can be drawn together to
compare multiple data sets or to compare groups in a single data set. For a single box plot, the
width of the box is arbitrary. For multiple box plots, the width of the box plot can be set
proportional to the number of points in the given group or sample (some software
implementations of the box plot simply set all the boxes to the same width). All the dots plotted
outside these fences represent the outliers. Data volumes and dimensions affect the outlier
detection and visualization.
PAL offers specific algorithms for outlier detection namely variance Test, the InterQuartile Range Test, the K Nearest Neighbor Outlier Test, and Anomaly Detection using Cluster
Analysis. The Inter-Quartile Range test is a simple and popular test for outlier detection and is
the basis of the very useful box plot. It is also a robust test in that the outliers do not themselves
affect the statistics of the test, as opposed to the Variance test, where outliers clearly affect the
limits given that they are measured in terms of standard deviations. That is the weakness of the
Variance test, but, again, its simplicity makes it popular. K Nearest Neighbors looks for local
outliers, as opposed to global outliers, which is very useful as these are often harder to find
because they are not so obvious. The weakness of the test is that the value of K may affect the
solution, but this can be minimized by exploring the solution using several values of K. The other
weakness is that by specifying the number of outliers, you ensure that you get that number, and
some may not really be outliers.
Chapter 3: Predictive Analysis Applied
3.2 Which Algorithm When
In Chapter 2 of this report, we mentioned vast number of algorithms provided by PAL but an
interesting question is out of all many algorithms available, which one should be used when? It
seems to be a whole big task for new users to decide which algorithm will should be used by
them to get the result & analysis they want. The task become worse if we consider 3500 plus
packages or algorithms contained in R. Below section discusses the criteria and main factors to
consider before we select the right algorithm. Also we will talk here about accuracy factor of an
algorithm and trying to summarize with general set of rules to select efficient and right algorithm.
Basic questions that drive the decision of selecting an algorithm are
What is purpose of algorithm and what you want to see as an analysis result? For example:
group the data, look for associations in the data, or predict a series of data values.
What data do you have and what are the attributes of that data? For example: numeric,
categorical, Boolean, etc.
The answers to these questions help you finding the best algorithm to apply as you have a
better idea which algorithm fits best in your purpose. Below table lists some common tasks with
corresponding algorithm category and example algorithms as mentioned in SAP Predictive
analysis book which makes it to pick algorithm i.e. if we want to look for unusual values outliers
we can use variance test and inter-quartile range test. To build a predictive model on a variable
using data of second variable for model building we can use decision trees or neural networks
and regression models. Thinking about second main factor about kind of data and its attributes
is also crucial as some algorithms work only on numeric data while others on categorical data
while others can be modified to support both of data types. Off course the table above can help
but still we will try to classify algorithms based on five main classes of application in PA.
Algorithms in PA can broadly be classified in following 5 groups and this classification gives a
better understanding of purpose and use of algorithms.
1. Association analysis trying to find for associations or affinities in the data.
2. Segmentation or cluster analysis, trying to segment or group the data into similar clusters.
3. Classification analysis trying to classify or predict new data based on a model built by an
algorithm. It is the largest group of algorithms in PA to predict a variable using the data
of other variables that are believed to affect the values of the variable that we are trying
to predict
4. Time-series analysis trying to use data with an inherent periodicity to predict values for
future time periods.
5. Outlier analysis trying to find unusual values in the data.
Chapter 3: Predictive Analysis Applied
Task Example Algorithms
Algorithm Category
Example Algorithms
Summary statistics
Descriptive statistics
Mean, median, variance…
Outlier detection
Statistical tests
Variance test, IQR test, anomaly
Preparation of the data for
Data preparation
Sampling, scaling, binning…
Statistical inference
Sampling theory
T tests, F tests, ANOVA…
Relationships, cause and
Correlation and
Multiple linear regression, non-linear
Clustering or grouping data
Cluster analysis
ABC Analysis, K-Means, Kohonen SOMs…
Time series forecasting
Time series analysis
Exponential smoothing, regression…
Association or affinity analysis
Association analysis
Prediction, model building
Classification analysis
Decision trees, neural networks,
Social network analysis
Network analysis
Jaccard’s coefficient, common neighbors…
Linear and non-linear programming
Risk analysis, modelling
Monte Carlo analysis
Algorithm Categories with tasks and examples
In Association analysis, most common and powerful algorithm is Apriori which is
discussed in detail later in this chapter. In second group of segmentation most popular one is KMeans algorithm and it is known for simplicity and positive correlation. Classification analysis has
largest group of algorithms indicating its importance in PA and are further sub classified in 3
groups: regression algorithms, decision trees algorithms and neural network algorithms.
Regression algorithms is essentially fitting of a model either linear or non-linear, of the form Y is
a function of X1, X2…XN, where Y is the dependent variable and Xi are the independent variables,
which minimizes the difference between the fitted data and the actual data. Bivariate linear and
non-linear, multiple linear, polynomial & logistic regression are main regression algorithms.
Decision trees recursively part the data, initializing with the most divisive split of the input
variable values compared to the target variable, and keep doing same till any of many stopping
criteria is met. Result then defines the relationships between input & target variables.
Chapter 3: Predictive Analysis Applied
Class of Problem and
Algorithm Group
Input or
Output or Target or Dependent
Categorical : Association rules with
support, confidence and lift
Apriori, Apriori Lite
NA : Cluster groupings, cluster quality
Classify - Regression
Numeric : Best fit regression equation
Multiple Linear &
Non-Linear Regression
Classify- Regression
Numeric/Categorical : Best fit logistic
curve, probabilities of outcomes
Logistic Regression
Classify -Decision Trees
Numeric/Categorical : Decision tree
and rules with confidence level
Numeric/Categorical : Black box model
for prediction
Neural Network
Numeric/Categorical : Classification of
new data
K Nearest Neighbor
Numeric : Best fit and projected values
NA : Detected outliers
IQR, Variance Test,
Anomaly Detection
Classify -Other
Time Series Analysis
Outlier Detection
Neural network algorithms are closer to the way human brain processes information. Two
neural network algorithms, sourced from R namely Monmlp package and Nnet package are
supported by PAL. Functionally they work by simulating huge number of interconnected simple
processing units which are arranged in layers; input, hidden and output layer attached with
varying connections strengths or weights. The network adapts by analyzing individual records, to
give prediction for each record, and adjusting the value of weights whenever it sees an incorrect
prediction. K-nearest neighbor is final sub category under classification algorithms which predicts
or classifies objects based on their similarity or closeness to other objects with prediction
calculated as average classification. Time series algorithms are significant as business applications
need advantage of time series forecasting. Data is generally constant, trending or seasonal and
thus smoothing goes hand in hand here. Outlier analysis algorithms come under last group and
seek unusual values. Best known algorithm here is Inter-Quartile range test which is also ground
of Box Plot. Variance test is also commonly used following the simple concept that unusual data
Chapter 3: Predictive Analysis Applied
is distant from average of data. With this much knowledge, we can start applying algorithms on
hit & trial basis to find out best suitable for our purpose but still it is advised to simply try all
algorithms under same group to see which provides best fit for your analysis. Table below
summarize what we just discussed.
To check and analyze which algorithm is working best with our problem set, easy and
logical approach is to apply and run all algorithms on input data and choose the best one but
what factors will decide what is best and how to measure it? Answer to this question will be
different for each group as we can’t compare two algorithms in different groups. For association
analysis, the choice of algorithms is between Apriori and Apriori Lite. Apriori lite being a subset
of the Apriori, is restricted to find single pre and post rules. The choice thus depends on rule
requirements and performance, as Apriori Lite will be faster than the generic Apriori but is
restricted in terms of the rules extracted from the data. For cluster analysis, finding better
algorithm is difficult as for example in ABC Analysis, different values of A, B or C can’t be judged
good or worse. User can only find the best value and thus no model is best. The K-Means
algorithm may be poorer to analyze cluster better than Kohonen Self Organizing Maps (Kohonen
SOM) but is easier to understand & flexible while Kohonen SOMs lack functionality to determine
the number of clusters in advance. It is thus logical to try both K-Means and Kohonen SOMs, with
varying cluster numbers, to explore the solutions in order to decide which is the most appropriate
for the application. For time series analysis, numeric predictions as in classification analysis
assume to have same measure of model quality, except that the analysis is done based on time
The Variance test and Inter-Quartile Range (IQR) test help to find overall outliers in the
data set for the outlier tests. The Variance test is trivial and well-known but the outliers
themselves influence the analysis. So an algorithm using the median and quartiles is more
popular IQR test, measuring in a way that an identified outlier is not affected by the actual
outliers anyhow. Local outliers in the data set can easily be found by the Anomaly Detection
algorithm. The Variance test and Inter-Quartile Range (IQR) test help to find overall outliers in
the data set for the outlier tests. The Variance test is trivial and well-known but the outliers
themselves influence the analysis. So an algorithm using the median and quartiles is more
popular IQR test, measuring in a way that an identified outlier is not affected by the actual
outliers anyhow. Local outliers in the data set can easily be found by the Anomaly Detection
For classification models, it is more logical to compare algorithms based on their input
being numerical or categorical. For numeric predictions, the residual error which is the sum of
square of actual minus fitted for each data point is the most common measure along with another
common way of presenting as MSE that is Mean Square Root. MSE scales back to original data
RMSE on associations. Statistical measure of goodness of fit like R Squared, analysis of variance
Chapter 3: Predictive Analysis Applied
or F value are used to produce numeric predictions for regression analysis. Classifier confusion
matrices which are how often each category correctly predicts and how often incorrectly,
generally evaluate categorical prediction. Model quality measure can then be made based on
these matrices and measures of quality like Sensitivity or true Positive rate and Specify or True
Negative rate. Gain and lift charts are plotted to compare model and algorithm performance in
case of binary classification models. Based on this discussion in section above, we can have
following rules as a base to start o compare algorithms their performance and applications based
on user requirement as follows.
If objective is to find associations in the data,
Use Apriori. If all multiple item associations are required.
Use Apriori Lite if only single pre and post item rules are required
Use Apriori Lite sampling if performance with Apriori is too slow
If objective is to find clusters or segments in the data,
Use ABC Analysis if the cluster sizes are user defined.
Use K-Means if the desired number of clusters is known.
Use Kohonen SOMs if the number of clusters is unknown.
If objective is to find outliers or unusual values,
Use the Variance and IQR tests if you are looking for global outliers.
Use IQR test if there are significant outliers.
Use Anomaly Detection If you are looking for local outliers.
If objective is to classify data when the target variable is numeric and only one independent
numeric variable exists,
Use Bivariate Linear Regression if a linear relationship is considered.
Use Bivariate Exponential or Geometric or Natural Logarithmic Regression if a non-linear
relationship is considered.
Use Multiple Linear and Non-Linear Regression for linear and non-linear models
respectively if more than one independent numeric variable is considered.
If objective is to classify data when the variables are categorical or a mixture of categorical and
Use either C4.5 or CHAID or CNR and choose the best fit if Output of decision tree rules is
Use Logistic Regression when preference is to find output of the probability.
Chapter 3: Predictive Analysis Applied
Use Neural Networks and choose the best fit if model quality is of primary concern.
If objective is to predict time series data,
Use Single Exponential Smoothing when the data is Constant or stationary.
Use Double Exponential Smoothing when the data is trending.
Use Triple Exponential Smoothing when the data is seasonal.
Use K Nearest Neighbor when objective is to classify data with simple easy to understand
approach and the target variable is numeric or categorical in case of numeric input variables.
3.3. Challenges & Resolutions
This section will discuss and elaborate following four common difficulties faced in any predictive
analysis process.
Cause & effect
Lies, dammed lies & statistics
Model Over fitting
Correlation between independent variables
We cannot always conclude a relation to be a cause & effect relationship if we find out a
good mathematical relationship between variables as it is not always easy to interpret every
mathematical relationship as cause & effect relationships. If we plot a graph between numbers
of jobs in market to number of cars newly bought in city, we can see a mathematical relationship
but we cannot summarize it that with every car sold in market there is a new job created. We can
understand second challenge of lies & statistics by an example which covers dangers of looking
only at statistical measures and is known as Anscombe’s quartet. He used 4 datasets having
simple similar statistical properties to prove the importance of plotting data before analyzing it
and impact of outliers as they all appear to be very different from one another when plotted.
First dataset appears as a well-behaved dataset having clean and well-fitting linear model and
can be plotted using y = 3 + 0.5x having mean of X as 9 and mean of Y as 10. Second dataset does
not have a linear correlation strangely has same equation y = 3 + 0.5x but with R squared value
of 0.67. Third dataset does have linear relation but the linear regression is thrown off by an outlier
which means if the outliers were spotted and removed before plotting it would have been easy
to fit a correct linear model. Last dataset does not fit any kind of linear model but the single
outlier makes keeps the alarm from going off. This implies that it is wise to understand data
before applying any algorithm. Graphs and 4 data sets used are shown in figure below.
Chapter 3: Predictive Analysis Applied
10.0 8.04 10.0 9.14 10.0 7.46 8.0 6.58
8.0 6.95 8.0 8.14 8.0 6.77 8.0 5.76
13.0 7.58 13.0 8.74 13.0 12.74 8.0 7.71
9.0 8.81 9.0 8.77 9.0 7.11 8.0 8.84
11.0 8.33 11.0 9.26 11.0 7.81 8.0 8.47
14.0 9.96 14.0 8.10 14.0 8.84 8.0 7.04
6.0 7.24 6.0 6.13 6.0 6.08 8.0 5.25
4.0 4.26 4.0 3.10 4.0 5.39 19.0 12.50
Four Data Sets in Anscombe’s Quartet
12.0 10.84 12.0 9.13 12.0 8.15 8.0 5.56
7.0 4.82 7.0 7.26 7.0 6.42 8.0 7.91
5.0 5.68 5.0 4.74 5.0 5.73 8.0 6.89
Overfitting signifies a condition when data under analysis fits a model “too good” that it
can be thought to describing your sample nearly perfectly and is too rigid to fit any other sample.
This condition thus makes it loose enough to serve our predictive needs by fitting badly on new
data. Over fit specifically needs to be watched when you’ve got small sample sizes or your data
is too small & limited in some way and defining as phenomenon where the predictive model may
well describe the relationship between predictors only but may fail to provide valid predictions
in new data. It is generally due to high expectations and need for accuracy requiring an extra
good job to fit the sample data by introducing too many input variables. Most of times it is case
when a model has to many data points compared to number of data points. Including test data
and analyzing it from every angle set is crucial when building a predictive model to have it more
accurate and stable over time. Figure below explains the context with help of two figures
representing two graphs based on same data points. Left graph off course is doing a decent job
Chapter 3: Predictive Analysis Applied
as it captures general nature & characteristic of the relationship between the X and Y variables.
While right hand side graphs is clearly attempting too hard to capture every subtle change in the
relationship between the two variables; It makes model on left outperforming model on right
when new data points are fed into the model as the right hand side model will not be able to
generalize well the data it has not seen before. To avoid Overfitting, words of advice is to use a
proportion and balance of the available data to train the model and the rest of the data which is
unseen or hold out data to test the model. This is a key methodology in PA and definitely an
important one in classification analysis and time series analysis.
Process of Overfitting the models
‘Multicollinearity’ is problem & comes in picture when you’re trying to fit a regression
model or other linear model. It indicates a case of predictors correlated with other predictors in
the model. Unfortunately, the effects of Multicollinearity can feel unsure and intangible, which
makes it unclear about how to fix if you are able to decide that it should be fixed. Statisticians
define multicollinearity as a strong correlation between two or more independent variables. It is
quite difficult to remove effects on dependent variables because of linear relation making model
easily assuming the existence of multicollinearity in dataset. Estimates made on parameter may
alter significantly in response to small changes in the model or the data which means
Multicollinearity effects the calculations regarding individual predictors without minimizing the
predictive power or reliability of the model as a whole specially at least within the sample data
itself indicating that a multiple regression model with correlated predictors can definitely show
you the degree of relation between bundle of predictors predicts the outcome variable, but will
not produce always a valid results about any individual predictor and about extent of redundancy
of predictors with regards to each other. Multicollinearity to an extent is normal but if it has
higher value it becomes a problem because i the variance of the coefficient estimates increase
which make the estimates very sensitive to minor changes in the model. Following can be seen
as main sources of multicollinearity; method used for data collection, constraints pushed in the
population, Model specification or an over fitted over defined model. Removing multicollinearity
Chapter 3: Predictive Analysis Applied
fully is not possible but can be reduced by several remedial measures such as collecting the
additional data or new data, re-specification of the model, ridge regression or by using data
reduction technique like principal component analysis.
Examples of Multicollinearity
Figure above shows two graphs X1 & X2 that are highly positively correlated and value of
correlation coefficient between them is 0. 9771 as computed by data on left. Trying to find a
model now that describe the relationship between Y and independent variables X1 & X2 is
difficult because we can merely differentiate because of them being so close and hence higher
value of multicollinearity becomes a problem because i the variance of the coefficient estimates
increase which make the estimates very sensitive to minor changes in the model. Mitigation,
adding more data sampling gives an advantage can’t solve it completely. Omitting one of
correlated variables can be another interesting approach if you can decide which variable to
ignore risking the danger of ignoring real casual variable.
Chapter 4: Cluster & Association Analysis Explored
Although all groups of algorithms supported and analysis techniques used by PA are crucial and
have their own importance. Keeping time limit in mind, I thought to go through in detail of only
two classes of Analysis techniques instead of covering all briefly. It was quiet interesting to go
through code behind and implementation of these algorithms so neatly on SAP PA interface.
4.1 Association Analysis
As name suggests, Association Analysis looks for associations between objects and also
known as affinity analysis. Output of this analysis is generally in form of rules like ‘if item A is
purchased by customer A, he has a very high probability to purchase item B and item C’, ‘75% of
those who buy comics on-line also buy music on-line’, ‘60% of those who have high blood
pressure and are overweight have high levels of cholesterol’ etc. Following the original definition
by Agrawal the problem of association rule mining is defined as:
Let I = {i1, i2, ..., in} be a set of n binary attributes called items. Let D = {t1, t2... tn} be a
set of transactions called the database. Each transaction in D has a unique transaction ID and
contains a subset of the items in I. A rule is defined as an implication of the form X→Y where X,
Y ⊆ I and ∩ = ∅. The sets of items (for short item sets) X and Y are called antecedent (left-handside or LHS) and consequent (right-hand-side or RHS) of the rule respectively. Quality of these
rules can be calculated by finding the number of cases when this rule was proved to be true
divided by total number of sales from that store and is referred as rule support. Support of an
item set is defined as the percentage of the data set which contains that particular item set. Rule
confidence is related important statistical measure and calculates the efficiency of rule to
calculate prediction of right hand side of rule, here item B in our example when left hand side of
rule, item A in this example is triggered thus giving number of baskets in which A & B both exist
divided by number of baskets with only expressed in percentage. Confidence of combination of
items divided by support of result is called as lift and gives a ratio of how often B is bought along
with A to how often B is bought independent. This is nice calculation as it gives better picture to
association than rule support as we can see clearly that B is more often bought with A when lift
value is more than one otherwise not. We will elaborate more about these statistical terms and
their calculations in detail with help of examples later in this report.
As calculations are simple, the challenge comes with performance as generally data under
analysis is huge. Even to interpret results is difficult without deep business domain knowledge as
you can lead in wrong impression of rules to be either trivial associations or apparent nonsensical
Chapter 4: Cluster & Association Analysis Explored
associations. It is most often called as market bucket analysis based on its most common
application of finding out rules of products getting sold together in a supermarket. Using the data
gathered from baskets, list of products sold together, we can have an analysis of patterns or
strong relations between products to recommend product placement in store, suggest additional
product purchases to buyers or identify unusual combinations of fraud management. Different
objective measures define different association patterns with different properties and
applications. For instance, the purchase of an electronic device that does not include batteries
often implies the purchase of batteries or charger.
Apriori principle: If an itemset is frequent, then all of its subsets are frequent.
4.1.1 Applications of Association Analysis
Netflix based on previous rating of movies compared to other users watching patterns predicts
for you movies of interest to you. Associations generally depend on finding patterns that can be
evaluated through subjective arguments. It is considered uninteresting for data analysis if it don't
reveal unexpected information about the data or give some new unknown information that can
lead to profitable actions. To include subjective knowledge into pattern evaluation needs lot of
efforts and knowledge from domain experts and an extensive amount of prior information from
historic data. Pattern evaluation gets more challenging when partial associations among items
within the pattern are also present. For an instance, few associations & relationships keep
appearing and disappearing when conditioned with the value of certain items.
Support(X) = no. of transactions which contain the itemset X / total no. of transactions
Confidence (X>>Y) = Support(X U Y) / Support (X)
Lift (X>>Y) = Support(X U Y) / Support (Y) * Support (X)
Chapter 4: Cluster & Association Analysis Explored
4.1.2 Apriori Association Analysis
It is an influential algorithm to find associations in market basket data or sales transaction data
giving some Boolean association rules as an output based on is calculations of three statistical
values, support, confidence and lift. It continues to identify the frequent individual items and
extend them to larger data sets till these item sets appear sufficiently often in the analysis. Apriori
is designed to handle databases that hold transactional data like list of items bought by customers
or details of a website frequentation. Apriori algorithm works on following general process by
splitting association rule generation into two separate steps:
1. Minimum support is applied to find all frequent itemsets in a database.
2. These frequent itemsets combined with minimum confidence constraint are considered to
output rules.
Chapter 4: Cluster & Association Analysis Explored
Let’s take the example dataset as shown above to illustrate these three terms and algorithms.
Support is calculated as ratio of total number of baskets that support rule i.e. a
combination exists to total number of baskets expressed in percentage. Note that support is
bidirectional that is 'if 10 then 20' will be similar to 'if 20 then 10' as both will have same rule
percentage. Confidence is defined as ratio of number of baskets in which both items 1 & 2 exist
divided by the number of baskets with only item 1 in them expressed as percentage. Confidence
is not bidirectional as support. Both support & confidence give an idea about rule’s validity but
cases exist when value of both of them is high and concluded rule is of no use. This shortcoming
of these 2 measures bring into picture one more measure to find accuracy association called a
lift or improvement and is defined by the ratio of how often when item 1 is bought item 2 is also
bought divided by how often item 2 is bought independent. Value less than one indicates item 2
is more often bought independently on own while value greater than one tells item 2 is often
bought with item one. Calculations are as shown in figure and it is not challenging to conclude
that Support can be used to see most popular rules, Confidence gives you most useful rules while
overall most useful & popular rules are given by Lift. Now as we understand terms to measure
and compare associations in a dataset, we will now talk about how to implement Apriori
association analysis.
4.1.3 Apriori Association Analysis in PAL
In PA library for SAP, the function name to perform Apriori association analysis is
APRIORIRULE and the algorithm name is Apriori. The input is always of two variables, first being
the transaction ID representing Basket ID and second being Item ID signifying the product name.
Data types for both these variables can be Integer, varchar or char. The output is comprised of
two tables where first one contains the association rules with leading items or pre-rule or lefthand side in the first column and dependent items also called as post rules in the second column.
Some applications allow and demand combining the pre-rule & post-rule item columns in order
to construct the total rule i.e. table will now display support, confidence and lift values. Second
table shows PMML definition of Apriori model which are forced to be the calculated rules and
their measures. Following figure shows the definition of Parameter table for Apriori algorithm.
Chapter 4: Cluster & Association Analysis Explored
Parameter Table Definition for Apriori
The following text displays main components of the SQLScript for Apriori. The full code can be
accessed from the file SAP_HANA_PAL_Apriori_Example_SQLScript on the SAP PRESS website.
// The procedure generator
// The Control Table parameters
// Assume the data has been stored in the table PAL_TRANS_TAB
// Calling the procedure
// Merging Prerule & Postrule
As discussed, we get two output tables one containing the measures and one showing
associations in PMML file. This PMML output can be used to transfer model rules to a business
application such as recommendation engine.
4.1.4 Strength & Weakness with Apriori Lite
Apriori Lite can be considered as an alternate to Apriori but actually is a specific instance
of Apriori algorithm in a way that it looks pre-rule and post-rule rules only for a single item. This
makes it more efficient and faster but can be applied only when we try to seek one-to-one rules
instead of getting all associations. Another plus point of this algorithm is the possibility to sample
data. LITEAPRIORIRULE is the function name to call it in SAP Predictive analysis library and the
input to this algorithm is exactly same as Apriori full. In parameter table of Apriori Lite,
Chapter 4: Cluster & Association Analysis Explored
MAXITEMLENGTH does not exist but include two extra parameters namely OPTIMIZATION_TYPE
Reason behind association analysis being so popular is the ability to produce clear results.
Calculations are most of times so straightforward that anyone in management position without
detailed technical knowhow can understand it easily and thus speeding up faster and better
decision making. One of biggest drawback with Apriori is its heaviness and it requires more and
more computations exponentially with increase in data. Apriori lite thus is an alternate when
one-to-one rules have to be found. Sometimes results are of no value and misleading. No matter
how many weakness we can count for this association analysis and related algorithms, we can
never utilize PA to fullest without them in most of cases. There may be cases and problem sets
that can be best solved with regression analysis & never use Apriori.
4.2 Cluster Analysis
This chapter involves the concepts around cluster analysis and how it is being
implemented in PAL, R and SAP PA. Cluster analysis is also referred to as segmentation analysis
and is a very popular application of SAP PA. We start this section explaining simplest of all
algorithms i.e. ABC Classification which groups records in data set based on specific parameter
into top X % then top Y % and all remaining in Z % to total up to 100%. We will also talk about
popular and efficient statistical analysis algorithm for comparing, machine-learning clustering,
self-organizing maps etc. and is called K-Means cluster analysis. Task of grouping and
classification started since days of early man who needed to distinguish between edible &
poisonous food, pet & wild animals and we still do in daily life by grouping students at university
by country of origin, previous studies aggregates, age, gender etc. giving us a reason to do it. It is
clear that we have a better understanding of data even when data size is large if we break it down
in groups. Attribute values which describe the objects are used for assessing the dissimilarities
among clusters.
4.2.1 Introduction & Applications of Cluster Analysis
Cluster Analysis intends to organize and segment data into groups with close
characteristics and features in a way that data within a group is closely matching to other data in
same group and is different from data in other groups in some respect. In other words, objects
within one cluster are shortly distant and compact within cluster while distance between intracluster objects & clusters is more as they look disparate. Cluster analysis or clustering thus can
be defined as the job of grouping a set of objects in such a way that objects in the same group
(called a cluster) are more similar (in some sense or another) to each other than to those in other
groups (clusters). We may need to do this clustering for many reasons, for an example, identifying
Chapter 4: Cluster & Association Analysis Explored
people with similar shopping pattern to find better marketing strategies, grouping movie shows
into similar categories based on viewer ratings, making task of cluster analysis considered as
intellectually satisfying, profitable, and sometimes both. Cluster analysis is a concept, a method
which do not represent or identify a particular statistical method or model, as factor analysis, and
regression. There can be many ways to cluster data into groups and the choice depends on
various factors and requirement. Cluster analysis encompasses a variety of algorithms and
methods to classify objects of similar kind into given categories. Cluster analysis as on output
finds for you structures in data without knowledge of why they exist.
Cluster analysis can be seen as most widely used class of predictive analysis methods with
diverse applications including criminal pattern analysis, medical research, social services,
psychiatry, education, archaeology, astronomy, and taxonomy making it indeed ubiquitous and
significant for data analysis. Market segmentation is one of most talked about application and
helps to make better decisions by making different business plans for different group of buyers
with different promotional offers. A nice example to highlight the importance of clustering is that
there is an exponential decrease in number of different sizes of clothes available in stores
because we after analyzing many measurements of body size and came up with a generalized
system of body measurements whereby individuals are allocated to specific sizes/clusters.
4.2.2 ABC Analysis in PAL
Cluster Analysis intends to organize and segment data into groups with close
characteristics and features in a way that data within a group is closely matching to other data in
same group and is different from data in other groups in some respect. In other words, objects
within one cluster are shortly distant and compact within cluster while distance between intracluster objects & clusters is more as they look disparate. Cluster analysis or clustering thus can
be defined as the job of grouping a set of objects in such a way that objects in the same group
(called a cluster) are more similar (in some sense or another) to each other than to those in other
groups (clusters). We may need to do this clustering for many reasons, for an example, identifying
people with similar shopping pattern to find better marketing strategies, grouping movie shows
into similar categories based on viewer ratings, making task of cluster analysis considered as
intellectually satisfying, profitable, and sometimes both. Cluster analysis is a concept, a method
which do not represent or identify a particular statistical method or model, as factor analysis, and
regression. There can be many ways to cluster data into groups and the choice depends on
various factors and requirement. Cluster analysis encompasses a variety of algorithms and
methods to classify objects of similar kind into given categories. Cluster analysis as on output
finds for you structures in data without knowledge of why they exist.
Chapter 4: Cluster & Association Analysis Explored
ABC Analysis, K-means and self-organizing maps are three cluster analysis algorithms
supported by SAP Predictive analysis library. Three user defined clusters are given by ABC Analysis
while K-means creates K clusters based on data memberships. Self-Organizing maps use a map,
usually an M*N matrix, to map the given data item to some coordinates on the map which later
takes form of clusters when multiple records get mapped to specific coordinates.
ABC which stands for Artificial Bee Colony Analysis clusters data depending on what that
particular data item contributes to total to find top X % of items based on characteristic A or top
Y % of items based on characteristic B etc. was first proposed by Karaboga. ABC classification
hence gives functionality to an organization to segregate units into three groups: A, the most
important; B, important; and C, the least important. The intention behind such classification of
items into groups is to have a better control and understanding over each item based on their
group. The ease of use and simplicity to understand make it more popular. Data generally is
initially sorted in descending numeric order and then grouped into first A %, the second B % and
finally remaining C % to total up as complete hundred. It can be considered as one weakness of
this algorithm as it don’t support more than 3 groups.
The Artificial Bee Colony (ABC) algorithm treats the search space representing data set as
it were a foraging environment, and each point in this search space relates to a food source which
we take as solution and has to exploit by the artificial bees. This can be useful but basically the
algorithm just sorts the data based on a continuous variable i.e. is my customer in the 20%, 50%,
80% most spending customers for an example? The fitness of the solution is represented as the
nectar amount of a food source. According to this algorithm, there are 3 kinds of bees employed
bees, onlooker bees, and scout bees. Specific food sources are first exploited by Employed bees
before and then forwarded for the quality information of the food sources to the onlooker bees.
Information about the food sources is received by onlooker bees who then will exploit
particular food source based on the information of nectar quality will be chosen by them. The
more nectar the food source contains, the larger probability the onlooker bees will choose it [23]
[24]. “Limit” is the quality parameter controlling the employed bees whose food should be
abandoned. Food sources is responsibility of scout bees by searching & analyzing whole
environment. ABC algorithm can be defined as below steps:
1. Initialization phase when each food source X i,j available in environment is initialized by
scout bees after setting up the control parameters. The number of food sources equals to
half of the colony size. D the dimension represents the number of parameters to be
2. Employed bees phase when Employed bees start searching for more food sources having
more nectar i.e. increased fitness value in the neighborhood of the food sources in their
memory. Once a neighbor food source is encountered, these employed bees calculate its
Chapter 4: Cluster & Association Analysis Explored
fitness. Greedy algorithm is applied on the new food source to the original food source
and the best will be placed in memory. If the food source is improved, the trials counter
of this food will be reset to zero else incremented by one.
3. Onlooker bees phase when Onlooker bees resting till now in their hive are given all this
food source information from employed bees which based on their probabilistically
calculations on fitness values on given information choose their food sources. An
onlooker bee chooses a food source depending on its probability value which may allow
multiple onlooker bees choosing a same food source if that food source has a higher
fitness. Once food sources have been selected by onlooker bees, each of onlooker bee
will now find a new food source in the neighborhood and will compute Fitness values of
these new food sources same way as the employed bees did in their phase. That means
more onlooker bees will be used to find richer food sources.
4. Scout bees phase is last phase when the value of trials counter of each food source is used
to decide. If the value is more than the limit parameter, the food source will be
abandoned and the bee there will become a scout bee going back to initialization phase
and a new food source will be produced randomly in the search space for these new scout
bees and the trials counter will be reset to zero for them. The first three phases will be
repeated until some end criterion is met and the best food source showing the best
optimal value will be considered as final solution.
An example is shown in figure below where values of A, B and C are 20%, 30% and 50%
respectively which help us to visualize that A segment being 20% of total is accounted for 5 items
out of 70 or 7.1% of all items. Segment B being 30 % of total is accounted by 9 items and this
being 12.9% of all items whereas last segment of 50% is accounted by 56 items and thus relates
to 80% of item population.
An Example of ABC Analysis
Chapter 4: Cluster & Association Analysis Explored
Algorithm name to call it for grouping in PAL is ABC ANALYSIS and corresponding function
name is ABC. There are two columns in input able when item or record names are contained in
first column while numeric values to be used for analysis are stored in second column. Item name
has data type as char or varchar while corresponding value is inputted as Double always. The
parameter table contains four parameters namely ’PERCENT_A’ having data type as Double
representing Interval for A class, ’PERCENT_B’ having data type as Double representing Interval
for B class, ’PERCENT_C’ having data type as Double representing Interval for C class and
’THREAD_NUMBER’ having data type as an integer value representing the total number of
threads. Values of ABC always should add up to 100 and is a check done by PAL before calling the
algorithm. Output table has 2 columns again holding assigned values of A, B or C to items and
other one holding item name in output table as shown in figures below.
ABC Analysis Input & Output tables
The main elements of the SQLScript are as follows, with the control parameters set as A=35%,
B=20% and C=45%. The full code is available in the file SAP_HANA_PAL_ABC_Example_SQLScript
on the SAP PRESS website.
// the procedure generator
Call SYSTEM.afl_wrapper_generator ('PAL_ABC','AFLPAL','ABC', PDATA);
// The Control Table parameters
//Assume the data has been stored in table TESTABCTAB
Chapter 4: Cluster & Association Analysis Explored
//Calling the procedure
4.2.3 K-Means Cluster Analysis in PAL
The K-Means algorithm is one of the best known predictive analysis algorithms and very
famous for cluster analysis as it efficiently clusters the records or observations into K clusters
such that each record belongs to the cluster with the nearest mean. This algorithm works over
continuous data and can be applied in different kinds of domains. As k-means needs initial
partitions to initialize the task, best results can be expected only when the initial partitions keep
getting closer to the final solution. This algorithm tries to identify relatively homogeneous groups
of values in given dataset based on chosen parameters and the specified number of clusters. This
algorithm processes a set of data to cluster them into a predefined number of clusters
represented by K. k-means initialize itself with random cluster centroids as a starting point and
as it progresses it keeps replacing the data objects in the dataset to cluster centroids depending
on closeness between the cluster centroids and the data objects. This reassignment procedure
and algorithm terminates As soon as the any of finishing convergence criterion like the number
of iterations, or the cluster results being unchanged even after a certain number of loops) is
encountered. Performance is dependent significantly on random selection of centroids to
initialize the process.
The k-means clustering process can be seen as by the four following steps:
1. Randomly picking K centroids to give an initial dataset partition, which most of times is
struggle to find, how to choose value of K, and calculate centers with distances?
2. Placing each value from the dataset under analysis to the closest cluster centroid. The
measure nearest can be looked differently as there can be several inter-object distance
ways to it which can affect the assignment.
3. Recalculating the centroid of each of K clusters to get new mean.
4. Repeating above two steps until exit criteria is met.
In Predictive Analysis Library, associated function name is KMEANS and algorithm name is KMEANS. Input table is not fixed in structure but there is always a column for initial ID and then
subsequent columns to contain variables for analysis which are always numeric in nature. This is
because clusters are calculated based on inter-object distance measures which don’t make sense
for non-numeric data type.
The table represents the definition of the parameter table for K-means algorithm in PAL.
Value of K is simply an integer signifying the quantity of clusters or segments we wish to derive.
Manhattan distance which is also called city block distance calculates distance between two
points horizontally or vertically on a grid. Euclidean distance is unique shortest path and is used
Chapter 4: Cluster & Association Analysis Explored
as most common approach to calculate distance between any two points for clustering.
Murkowski generalize both of above mentioned Euclidean and Manhattan distances. Maximum
number of iterations can be used to define an exit criteria thus giving some control over
processing time and complexity of algorithm and saving from process going relatively very long.
For initialization or seeding, first K records method takes first K records as initial cluster centers
and makes illogical processing if data is sorted. Random with replacement method selects
randomly K records from data set to be used as initial centers. SAP patent method to find K
random clusters is based on max-min approach where initial center is chosen very close to
minimum point and then subsequent centers chosen. Threshold value indicates when iterative
process should end and default value is set as 0.00001.
Data Type
The value of K, the number of clusters.
Computes the distance between the item
and cluster center, can be Manhattan
distance, Euclidean distance or Murkowski
The maximum number of iterations.
Center initialization method: 4 options First
K, Random with replacement, Random
without replacement or one which is SAP’s
patent for selecting the initial centers
Normalization method with three options
No, Yes for each point or Yes for each
The threshold (actual value) for exiting the
The number of threads.
Parameter Table Definition for K-Means
To save our analysis from a situation where very large numbers dominating very small numbers,
it’s a good practice to normalize or standardize data which ensures all variables having equal
weight in subsequent calculations. The output for K-Means is in form of two tables. The first table
holds results of the analysis, which maps each record or item in the data set to an assigned cluster
Chapter 4: Cluster & Association Analysis Explored
number along with the distance from that item to the cluster center this data item is part of. The
co-ordinates of each cluster center are listed in second table as the Center Points row. This
distances between item & cluster centers for all data items gives a way to measure the
compactness of the clusters and to identify unusual values or outliers.
The main elements of SQLScript to call PAL K-Means algorithm are as follows with defined
SAP_HANA_PAL_KMEANS_Example_SQLScript on the SAP PRESS website.
// the procedure generator
Call SYSTEM.afl_wrapper_generator ('PAL_KMEANS','AFLPAL', 'KMEANS', PDATA);
//The Control Table parameters
//Assume the data has been stored in table PAL_KMEANS_DATA_TAB
//Calling the procedure
Chapter 4: Cluster & Association Analysis Explored
The results of running the SQLScript are shown above with input data, which show the
assignment of each record to a specific cluster and the data points for each cluster center.
4.2.4 Silhouette
The cluster viewer window in SAP PA displays four charts. A horizontal bar chart showing the size
of each cluster and A cluster density and distance chart with a color coded scale of dark to light,
for dense to sparse clusters. Thicker the line, the closer are the clusters. Other two charts at the
bottom allow the user to compare clusters by user chosen variable for better customized
understanding and analysis.
How to choose value of K is a key question as it impacts performance and output of
analysis. In some business cases we can think of a value based on requirement and application
like t shirt size groups for sale in stores, still for many cases the value of K is difficult to pre-set
before analysis. One of commonly used approaches is to use the square root of N halved where
N is total number of records in dataset. This becomes challenging when data set is too big as an
instance we would need 700+ clusters to cluster a million records based on this approach and
this big number of clusters can’t be considered easy to manage. In that case, data visualization is
a big aid and stored can be seen and plotted in a bubble plot. Cluster Analysis comes under
undirected data mining as here is no target or dependent variable to be predicted, so another
quantitative approach can be to determine value of K which measures cluster quality is
silhouette. Silhouette is thus a practical way to measure quality of cluster analysis without which
it is not possible as we can never compare or find the output of analysis. Good clusters can be
thought of groups where cluster members are close to each other as well as far from members
of other clusters.
The average for all the records in the dataset of (b−a) / max (a, b), is calculate here by
silhouette method where a is the average distance of the record to all other records within the
same cluster i.e. cohesion while b is the average distance of the record to all the other records in
the nearest cluster center that it does not belong to i.e. separation. This calculated value indicates
all records to be located directly on cluster centers when value is 1 while indicating all records to
be located on cluster centers of some other cluster when value is -1. When records will be
equidistant from their own cluster center as well as cluster center of nearest other cluster, it will
have silhouette coefficient set to 0. These values off course are ideal values but still can help to
summarize a general guide as per which value less than 0.2 means very poor clustering while
value of 0.5 or above is considered good and meaningful.
In PAL, it can be called with function name VALIDATEKMEANS and has two input tables to
run. First table is required for cluster analysis while second one is used to assign cluster numbers
to each record. For table 1, the first column which is for Record ID can either hold Integer or
Chapter 4: Cluster & Association Analysis Explored
String as data type while all other columns in table one which represent attribute data store
values either in integer or double value. For table 2, the first column which is again used to store
Record ID here hold only Integer values while second columns in table two which represent
assigned cluster number store values integer form only. Parameter table and output table for
Validate K-means when called in PAL are defined below. The silhouette measured value will
increase and, finally, when K = N it will become equal to 1, as the value of K approaches the
number of records (N).
Data Type
The number of variables
The number of threads
Data Type
Result 1
Varchar or
Result 2
The Silhouette value
Parameter Table Definition for Validate K-Means
The SQLScript to call Validate K-Means in the PAL is as follows while the full code available in the
file SAP_HANA_PAL_VALIDATEKMEANS_Example_SQLScript on the SAP PRESS website.
// the procedure generator
Call SYSTEM.afl_wrapper_generator
// The Control Table parameters
// Calling the procedure
To choose the initial cluster center for K-means algorithm is second key question and is
answered by seeding strategy applied. Generally many different seeding strategies are applied
and solutions are compared for robustness to see if the solution change or remains constant with
change in values. Clusters need to be understood and analyzed again to check reason of
differences if solution is changing frequently. This was a discussion when data set to be clustered
Chapter 4: Cluster & Association Analysis Explored
was all numeric but imagine a scenario when we have to cluster categorical data. Does PA allow
us to handle it? For sure, categorical data cannot be clustered based on inter-object distances as
we cannot say the difference between sun and moon. An approach can be to convert each
category into a new variable in binary format. Once we have them we can rescale them by
multiplying by SQRT (0.5) to reduce influence when we have binary variable mapped with
categorical data items. It is also a good practice to merge categories when there are many
categorical variables and within each variable more sub categories exist or alternatively we can
consider other non-distance based clustering algorithms. Decision tress to associate analysis
close to clustering is a win situation.
Decision Tree Analysis of Clusters
4.2.5 Self-Organizing Maps
Self-Organizing Maps or SOMs also called as Kohonen SOMs after their inventor professor Teuvo
Kohonen, of the Academy of Finland, are a type of neural network that can be used to cluster a
dataset into distinct groups. One or two dimensions in a vector or matrix, known as a map are
generally used to represent multi-dimensional data in much lower dimensional space. Once
network gets trained records in data set that are different will appear far apart while records
which are similar will appear close together on the output map. More populated units are shown
by the number of records or observations captured by each cell or unit in the map indicating
groupings of the records or segments initializing the existence of a sense of the appropriate
number of clusters in the dataset. The value of ‘K’ is not predetermined as in K-Means cluster
analysis. They are based on unsupervised learning, which means that no human intervention is
needed during the learning and that little needs to be known about the characteristics of the
input data.
Chapter 4: Cluster & Association Analysis Explored
A network created from a 2D lattice of “nodes”–the map is shown in figure below which is fully
connected to the input layer. A small SOM network of 3 * 3 nodes connected to the input layer
of a two dimensional vector i.e. a two-variable dataset is also shown below. Generally specific
topological position is assigned to each node, an x, y coordinate in the lattice or map, which also
contains a vector of weights of the same dimension as the dimensions of input vectors. In the
input vector/dataset there are 2 dimensions/variables in our example which means each node
will have a corresponding weight vector W, of 2 dimensions: W1, W2 there to represent
adjacency we have lines connecting the nodes but they do not signify a connection.
3*3 SOM connected to a 2-variable Dataset
Following steps occurring over many iterations represent training of the SOM:
1. Each node in the map gets its weights initialized with random values between -0.05 and 0.05
set by PAL.
2. From inside the set of training data, a vector is chosen generally starting with the first one and
is presented on the map.
3. The ”winning” node or the Best Matching Unit (BMU) is calculated such that nodes’ s weights
are most similar or closest to the input vector using any distance measure such as the Euclidean
distance for each and every node in set.
4. The radius of the neighborhood of the BMU is then calculated which represents a value that
starts large, typically chosen to the radius of the lattice but decreases with each iteration and all
nodes found within this radius are deemed to be inside the BMU’s neighborhood.
Chapter 4: Cluster & Association Analysis Explored
5. Weights of each neighboring node’s found in step 4 are adjusted to make them more similar
to the input vector. Weights get altered more when node is closer to the BMU.
6. Steps 2 to 5 are repeated for the next vector in the data set and then for N iterations or until
the weights stop changing. Figure below highlights with an example the size of a typical
neighborhood when its time near to the commencement of training. The area of the
neighborhood shrinks with time, which is accomplished by making the radius of the
neighborhood shrink too with help of decay function, a unique characteristic of the Kohonen
Decreasing Neighborhood Size during SOM Iterations
Eventually with time, the neighborhood shrinks to the size of just one node which we call
as the BMU. The goal is to discover some underlying structure of the data. Thus we can say that
SOMs have two phases: Learning phase when map is built and network organizes using a
competitive process with help of training set and secondly Prediction phase when new vectors
are quickly given a location on the converged map, easily classifying or categorizing the new data.
The weight vector of node is adjusted as follows when a node is found to be within the
neighborhood, else it is left alone.
W (t+1) = W (t) + λ (t) * (V (t) – W (t))
Where T represents the iteration and λ, which is a small variable and called the learning rate,
reduces with each iteration that means the new adjusted weight for the node gets equal to the
old weight (W) when added to a fraction of the difference (λ) between the old weight and the
input vector (V).
Λ (t) = λ0 exp (–t / λ)
λ0, denotes the width of the lattice at iteration t = 0 and the Greek letter lambda, λ, denotes a
constant. λ0 is set to 0.5 by default in PAL.
Chapter 4: Cluster & Association Analysis Explored
The effect of learning should also be proportional to the distance of a node from the BMU
with every decay in leering rate over time. The learning process should barely have any effect at
all at the edges of the BMUs neighborhood. The quantity of learning generally fades with distance
same way as it do in the Gaussian decay which is shown below:
λ(t) = exp (–dist2 / 2λ2(t))
With each iteration, records from the training data set are allocated to cells on the map, and
closely related records grouped together, as shown in figure below. Self-organizing maps are
different from other artificial neural networks in the sense that they use a neighborhood function
to preserve the topological properties of the input space.
Assignment of the Data Set Records to the Map, Showing the Clusters
We can call this method by associated function name ‘SELFORGMAP’ In the Predictive
Analysis Library where it comes under set of algorithms and the algorithm name is Self-Organizing
Maps. The Input table consists of an initial ID column, and all subsequent columns contain the
variables to be used for the cluster analysis. These variables must be numeric to be used with the
cluster analysis. It’s because SOMs cluster data objects using the inter object distance which
cannot be computed if the input variables are not-numeric. The Parameter Table Definition for
Self-Organizing Maps is shown in table below. There can be 3 methods to normalize the data as
discussed below:
1. The data stays as default setting and the parameter is set to 0.
Chapter 4: Cluster & Association Analysis Explored
2. For each variable X (x1,x2,...,xn), the minimum and maximum value of X is found and
then X[i] = (X[i]-min)/(max-min) is calculated to rescale the data between 0 (min value)
and 1 (max value) and and the parameter is set to 1.
3. For each variable X (x1,x2,...,xn), the normalized values depend on the mean and
standard deviation of X. x1, is normalized to X’ by computing X’ = (xi – Mean(X)) /
S.D.(X) for each X when the parameter is set to 2.
Data Type
The self-organizing map is made up of n × n
unit cells. This parameter defines the value n.
The maximum number of iterations.
Normalization method with 3 methods : No or
Transform to new range (0.0, 1.0) or Z-score
Number of threads.
The Parameter Table Definition for Self-Organizing Maps
Self-Organizing Maps outputs two tables. The first table is called SOM Map & holds the
final weights corresponding to each of the map cell IDs, along with the number of records or
tuples assigned to each map cell ID i.e. cluster size. It is stored in last column of table and is always
integer type. The weight vectors to stimulate original tuples are always outputted as double in
middle column. The second output table is called SOM Assign row and maps each Cell ID assigned
to each record displaying the membership of the clusters. ID for tuples can be integer or string.
Data Type
1st column
Unit cell ID.
Other columns except
the last one
The weight vectors used to simulate the
original tuples.
Last column
The number of original tuples that every unit
cell contains.
Output Tables Defined for Self-Organizing Maps
See below an example of self-organizing maps in the PAL implemented on same data set as shown
in figure above on which we implemented K-Means and thus an interesting attempt to
Chapter 4: Cluster & Association Analysis Explored
comparison of the two cluster analysis algorithms also. The PAL SQLScript to call for Self
Organizing Maps is as follows while full code available in the file
SAP_HANA_PAL_SELFORGMAP_Example_SQLScript on the SAP PRESS website.
// PAL set-up
Call SYSTEM.afl_wrapper_generator('PAL_SELF_ORG_MAP', 'AFLPAL', 'SELFORGMAP',
// Preparing application data for calling procedure
//Assume the data has been stored in table PAL_SOM_DATA_TAB
// Calling the procedure
Select * from PAL_SOM_MAP_TAB;
This script outputs two tables as shown below. The final weights assigned to each of the map cell
IDs along with the number of records or tuples corresponding to specific map cell ID (represents
the cluster sizes) is shown in first output table. Cell ID assigned to each record which is the
membership of the clusters is output shown in second table. E.g., Cell ID 0 has 2 records with
trans_id 11, 12 and Cell ID 13 has 2 records again with trans_id 18, 19 and Cell ID 15 has 5 records
(Trans ID 0,1,2,3,4)etc.
Chapter 4: Cluster & Association Analysis Explored
Generally after this the results are presented in a visualization to understand and analyze the
clustering of the data, for instance, cell 7 has five records, cell 8 has two records, and so on. We
can run this SOM in N*N grid. Smaller the number of N, more close the cells and hence more
closed grouping can be seen. Comparing the outputs of SOM with K-Means give most of times
same number of clusters but in K-Means algorithm user predetermines the value of K prior to
running the algorithm but this is not case with Kohonen SOMs as we allow the data suggest the
value of K. SOM if have less variables than number of cells, it will result a sparse output with lot
of empty regions in middle of classified objects while in alternate case, cells will be forced to
share with variables and thus giving groups or clusters. Following figure show the visualization of
results when we run SOM on input data in figure XX and plot the table data for 4 clusters in 4*4
The Four Clusters in the 4 * 4 Map
Cluster analysis definitely is capable to be called one of most popular methods of
predictive analysis but is more involved for business operations because of its uniqueness in
splitting down huge amounts of data into smaller manageable clusters giving better
understanding compared to analyzing data for predictions. Most commonly used application is
market segmentation based on fact that focused marketing is more effective than a generic
approach. Biggest strength of cluster analysis in general is it's easiness to understand as intention
in this step is not to make predictions but to cluster existing data. Each cluster analysis algorithm
discussed above has individual pros 6 cons. ABC Classification is very simple, very practical and
therefore very popular but limited to 3 grouping seven when a user wants more groups which
maybe not necessarily add up to 100% like finding the top 15%, second 10% and third 40%.
Chapter 4: Cluster & Association Analysis Explored
K-Means is also easy to understand and to apply if we choose value of K in advance and
detection to be undirected and it being data driven. K-Means is clearly driven by the choice of K
which depends on user experience and skills but if chosen wrong will make whole clustering a
bad experience. In K-Means the results generally vary dependent on the choice of distance is
sensitive to the initial choice of cluster centers and measure. We can never try to optimize value
of K as it don’t involve maximizing or minimizing some function. Input data is assumed to be
numeric from idle run but Non-numeric data can be aliased to numeric using some approaches
to initiate cluster analysis such as using decision trees and association analysis to find groups in
the data.
Self-organizing maps find its application to create an order visualization of multidimensional data which simplifies complexity and reveals meaningful relationships and thus can
be compared to a non-parametric regression technique which converts multi-dimensional data
spaces into lower dimensional abstractions. They are popular and beneficial as they provide quick
and concise model creation even for voluminous data sets and have outstanding prediction
accuracy due to patented procedure for the extraction of non-linear relations. They can work
well only if clusters exist, but they can also not work i.e. it can’t find clusters for user if there are
no clusters.
Chapter 5: Conclusion
Chapter 5: Conclusion
5.1 Problem Set: Burn that Churn
To implement and have a hand on experience for SAP PA, I decided to have data predictive
analysis on a telecom data for last few years and then compare the efficiency and trueness of
predictions by comparing the model correctness applying same model to different data sample
subsets. Huge volumes of customer data is analyzed in order to identify business factors like new
revenue opportunities, reduce churn which can help make informed decisions. Customers
become “churners” when they discontinue their subscription and move their business to a
competitor. Credit card issuers, insurance companies and telecommunication companies always
are keen to predict churning i.e. process of customer turnover. If they predict the laving customer
at right time, they can always try to hold him with better offers as it is always cheaper to retain
a current customer than to gain a new one. In this work, we have only considered customerinitiated churn and ignored operator-initiated churn because mostly latter is because of
payments problems from customers and are of no interest.
All telecom service providers must be able to respond and react in timely manner to
customer’s preferences for their survival in this competitive world. They must be able to predict
and prevent subscriber churn by understanding reasons of already churned customers as well as
expectations of current customers. All telecom operators store enormous size of data about
subscribers and their behaviors. In this thesis part of work, this data has been attempted to
analyze and find some valuable insight for business decision makers. For this objective there are
many approaches to begin like customers segmentation based on location, demographics,
purchase history etc., understanding which market campaigns and new products were able to
add in most customers and more. As it is not practical to understand personal preferences for
each and every subscriber, but it is possible to make visualizations and understand patterns based
on historic data in repositories to predict probability of churn in each segment. Following
variables were taken in main consideration as they appear to be having highest effect on churn.
Customer demographics, i.e., age, gender, marital status, location, etc.
Call statistics: length of calls at different times of the day, no of long distance and local
Billing information for each customer – what the customer is paying for local and long
Extra service information, that is, what extra plan the customer is registered on, e.g.
special long distances rates.
Chapter 5: Conclusion
Complaint information: how many customer service calls are made for disputed billing,
dropped calls, slow service provisioning, non-working special services, and so on.
Credit history.
5.2 Results & Analysis
I got the data set for this work from TERADATA CENTER FOR CUSTOMER RELATIONSHIP
MANAGEMENT AT DUKE UNIVERSITY which they used for NCR Teradata 2003 Tournament. The
data represents a major wireless telecommunication service. Data holds records for more than
100,000 customers who have minimum of 6 months of service history with them. I found data
quiet good for churn modeling and predictions to get results and analysis for this thesis report.
Dataset was named tourn_1_calibration.csv’ and is copied to attached CD. Using normal Excel
program, firstly I removed noise by deleting all rows with missing or null or strange appearing
values for variables that were most appealing to me to influence prediction and modelling. These
variables from data source are:
Age of Handset
Calls to customer care in last 3 months
% change in monthly outgoing calls on previous 3 months average
Age of Customer
Current Handset Price
Income of customer
Total number of months as customer
Credit History
New dataset after removing noise is named as tourn_1_calibration _thesis.csv and is also
copied to CD. Binning is implemented too on this data set to improve the analysis results and
to have data read in group’s clusters instead of integer values. New columns I introduced to
the dataset under binning process are:
1. range_handprice which has 3 possible values ‘low end’, ’medium’ & ‘high end’
representing the cost group of headsets. Mobile phones costing below 79 are
classified as low end, costing more than 170 as high end while remaining come under
medium group.
2. range_income which again has 3 possible values ‘low’, ’medium’ & ‘high’ representing
the income bracket of users. Customers earning less than or equal to 3 on index are
classified as low income group, earning more than or equal to 7 as high income group
while remaining come under medium group.
3. range_agemob which has 3 possible values ‘less than 1 year’, ‘around 2 years’ and
‘very old mobile’ depending on duration of handset used. As name signifies, group
called less than 1 year holds all entries where handset is used less than 12 months. 13
Chapter 5: Conclusion
to 30 months of handset use comes under around 2 years group and all others more
than 30 months old are classified under very old mobile group.
4. A new column is also inserted in dataset with column name ‘range_churn’ simply
representing value of churn flag in a readable text format for quick analysis. Churn
value 0 which represents customer still active has been shown in this new column as
‘Remained’ while value 1 is shown as ’churned’ stating that customer has already
5. range_custcare is a new column grouping the number of customer care calls a user
has made in last 3 months and has 3 possible values ‘less than 20’,’20 to 60 calls’ &
’more than 60’. Values under these 3 groups are easy to guess based on the group
names. Same way all crucial columns that I thought to have a major influence on churn
have been held in new columns and replaced by same bracket value with help of excel
program. All these new columns are named as range_xxx to quickly select them from
list of variables in PA.
The process starts with importing this modified data set with added columns and noise
removed to PA. In PA interface you can acquire the data source file from File menu. Select
New, search csv file option and navigate to dataset in question.
Once the dataset got imported, I run sample function to create 4 sample datasets of 7500
records each to make modelling faster. These 4 diff samples also helped to verify correctness
of any model by applying models repeatedly and comparing results for these four samples
individually. I named them as ‘churnsample1.csv’, ‘churnsample2.csv’, and
‘churnsample3.csv’ and ‘churnsample4.csv’ .All 4 sampled datasets were taken by random
selection in PA and are copied in attached CD.
Chapter 5: Conclusion
Next step is to start applying algorithms on each dataset and compare the calculated
predicted value of churn flag with the actual value of churn flag. Following subsections hold
the results for 4 algorithms categories and comments on how we can get an idea of future
churning behavior based on the results of these algorithms on datasets. All the models
created to get the below results are saved in .pmml format and are copied to attached CD for
Under Predict tab, PA Interface allows you to drag and drop the required algorithm in front
of data set and before running you can configure the settings of each algorithm by left clicking
on settings icon on algorithm itself, as shown in figure below. Subsections 5.2.1 to 5.2.4 are
results for analysis and calculated values by PA on 4 different datasets for four different
classes of algorithms. Some algorithms allow you to predict value for a particular variable say
churn in our example by letting us dependent variable under configuration settings while
others don’t. In that case we cannot have direct analysis for model efficiency by comparing
the correctly predicted values to total number of values, but we still can have some
understanding of patterns and behavior based on visualizations and comparisons.
Chapter 5: Conclusion
5.2.1 Clustering
Algorithm Used: R-K-Means (MacQueen)
Number of clusters: 5
Dependent variables: change_mou, months, no_of_cars, income, eqpdays and custcare_mean
No of Iterations: 100
As this algorithm don’t allow us to calculate a value to specific variable based on other dependent
variables, we can still find clusters and common patterns based on some independent variables.
As clear from result sets (visualizations) below that cluster 5 is most dense while cluster 1 is
smallest. From cluster density & distance chart, we can see strong connection between cluster 2
and cluster 5. Cluster center representation diagram reveals that cluster 1, 3 and 4 are more
inclined on handset price variable while biggest one cluster 5 is based on 2 values equipment age
and income bracket. Parallel coordinate chart displays calculated_churns for all 5 clusters while
scatter matrix chart plots relations between different chosen independent variables against each
other. The summary is as change_mou months hnd_price eqpdays income custcare_mean
1 2391.470 19.55148 7998999023 431.2059 5.913963 1.7418900
2 3313.584 24.77475 3026621144 639.8905 5.955474 0.8334206
3 2213.295 18.43822 5997563536 465.2371 5.928161 1.1652299
4 1932.428 19.43715 9995865138 308.0222 5.407119 1.9365962
5 1896.514 16.94159 1556729838 304.7009 5.701856 1.7578339
Chapter 5: Conclusion
Cluster Analysis for first dataset
Chapter 5: Conclusion
5.2.2 Decision Tree
This algorithm allows us to make calculations for a chosen variable or target variable and thus we
can easily find the efficiency and correctness of model after running the model.
Algorithm Used: R-CNR Tree (Regression)
Output Mode: Trend
Dependent variables: range_income, range_custcare, range_months, range_handprice, range_agemo
Target variable: churn
New output column: calculated_churn
The output chart shows the probability of churn based on above mentioned dependent variables.
By analyzing in detail, we can predict customers with high churning possibility based on rules.
Example, customers with more than 20 customer calls and more than 23% decrease in overall
revenue over past 3 months have 69% probability to churn or customers with expensive handsets
and more use of mobile data compared to voice calls have 78% probability to churn, may be they
use handsets for internet gaming or browsing more and thus latest handsets are only interest to
them. This analysis also under result grid view give you a calculated predicted value of each
customer to churn as shown in figure below.
Decision Tress showing probability and classification of dependent variables.
Chapter 5: Conclusion
Calculated churn value for each customer based on dependent variables
5.2.3 Apriori
Here also we can’t calculate value for a particular variable based on other independent variables
in dataset, so we rely on visualizations analysis and rules summary. Although it is not a favorable
algorithm to apply in this problem set but business decisions can be made better just by some
small piece of new information.
Sort Type: Ascending Transaction Size
Output Mode: Rules
Dependent variables: range_income, range_custcare, range_months, range_handprice, range_agemo
Support: 0.1
Confidence: 0.8
Below output figure is a set of rules generated by Apriori and can be very useful for decision
making if dived in. This analysis based on 5 dependent variables gave us a set of 37 rules.
Interestingly, changing the values of support and confidence brings change in number of
generated rules as well as value of lift for each rule comparatively.
Chapter 5: Conclusion
Apriori rules output for first dataset
5.2.4 Neural Network
This algorithm according to my experience fits best in this problem set and allows us to prepare
a model to be reused with new data to predict values for target variable. Using this approach, we
run a model based on training data and keep fitting it unless the drop in correctness when applied
to another dataset is not huge. When we run this model, it adds a new column in the table which
according to model should be the value for that target variable (churn) based on previous
patterns and behavior. This allows us to compare the value of target data in real to value of target
data predicted by PA.
Algorithm: R-MONMLP
Target Variable: Churn
Output Mode: Trend
Dependent variables: income, months, custcare_mean, handprice,
Hidden Layer 1 Neurons: 5
Predicted column name: predicted_value
The following screenshot shows the insertion of new column predicted_value when we run this
algorithm with values 0 and 1 which represents the customer churning or not churning according
to this model and configuration settings for chosen dependent variables.
Chapter 5: Conclusion
New column ‘Predicted value’ in result set
We can easily find how many of the values are predicted right by PA by comparing the output
values to real churn values in dataset. Total number of right findings divided by total number of
rows will give the percentage correctness of the model.
In first attempt, I got the following figures for the predicted values compared to churn values in
Confusion Matrix for predicted churn variable
That means out of 3780 correct one values, our model predicted ones correctly 2082 times i.e.
approx. 55% correctness. I then tried to put new values by hit & trial method, combinations of
variables to configure algorithm until I got the results and a model which is relatively better. In
PA any model with 80% or above correctness is considered to be good. No model can be 100%
accurate and applicable in all problem sets. It needs business processes understanding and
domain knowledge to plan and implement predictive analysis solution for a problem set.
Chapter 5: Conclusion
Output model with 65% correctness
Output model with 96% correctness
This improvement in model can also be an outcome of model Overfitting, so to confirm the
possibility of model Overfitting, I applied the same model run on other 3 datasets. The
correctness percentage of model din fluctuate to large values, so I considered this to be a good
model. To save a model, using interface click on save as model under predict tab. Once saved
models appear under component pane as shown in diagram below. This model is one which gave
us 96% correct values for churnsample1. Saving a model makes it easy to reapply it to other
datasets as we don’t need to worry about configuring algorithm settings again.
Chapter 5: Conclusion
Saving a model with high correctness
Following steps show the results and figures for same model ‘neuralnetwork’ when applied to
other 3 datasets.
Confusion matrix for data set 2, correctness 99%
Confusion matrix for data set 3, correctness 98%
Chapter 5: Conclusion
Confusion matrix for data set 4, correctness 79%
As we don’t see a big fall or deviation in correctness when this model was applied to other 3
sample sets, we can conclude it to be a good configured model and can use it to predict churn
variable for customers who are still active. That’s the potential of modelling and PA.
5.3 Discussion & Issues
5.3.1 SAP PA compared to Hadoop
SAP Predictive Analysis tool as per date is designed to predict and analyze structured data
only, that means user should have structured data either in xls, csv, txt or HANA database tables.
If data is not in structured format then user cannot proceed further for analysis and prediction
using PA while Hadoop is leveraged to analyze the unstructured and semi structured data as well.
Hadoop is often used to store and process big data volumes of semi structured or binary data.
But it looks feasible to pass results from Hadoop to PA with 2 steps. Firstly Hadoop doing first
selection and aggregation to output reduced dataset. Take a case of text documents stored in
Hadoop and it returning only list of words with frequency to PA and after that SAP Predictive
Analysis when inputted this information from Hadoop can then apply data mining algorithms on
the Hadoop result set.
Comparing them makes no sense as they drive different purposes. Hadoop is a file system
which stores variety of data like Big Data i.e. Structured, Unstructured and semi-structured data;
while PA being an advanced analytical tool reads the historical data from above data sources and
projects the predicted results for a business query where data can be picked from any data
sources like HANA, HADOOP, BW, BO. It can be a next big approach from SAP to provide
possibilities of SAP & Hadoop integration to ease the customer, either by merging PA with
InfiniteInsight to PA which allows this Hadoop integration or some other innovative module
Chapter 5: Conclusion
5.3.2 Sharing your own R component
It is possible to share with colleagues or customers your own created R components and
just involves few simple steps. Depending on whether you need a new library or not with your
component, library has to be added first under C:\users\Public\R-3.0.1\library and then can be
shared. Remember to close PA program at time of sharing components. In the folder
C:\Users\piyush\SAP Predictive Components\RScript you can see all your R components created
by you and this folder is to be used to paste component shared to you by someone else. Rename
the components to more meaningful names from default names given by PA. After renaming, it
is crucial to modify the name of folder in the ‘component.xml’ file. With help of simple text editor
replace ‘automatically created’ name by your new folder name. That’s all required to make your
R created components being reused by your colleagues by simply sharing the folder. Logic is
encapsulated in so called “Custom R Components”, allowing users even without R skills to use
Connecting R and PA
5.3.3 Configuring HANA PAL to use with SAP PA
SAP PA while connected to HANA in an online mode; facilitates users to leverage the
HANA Predictive Analysis Library with help of a user friendly interface that push all the processing
operations to the HANA server. The PAL is not installed on HANA by default. To connect them,
Install AFL (Application Function Library) at first place on HANA server with help of below
commands. Login to Root of HANA server. Extract the files using SAPCAR - SAPCAR -xvf
IMDB_AFL100_60_1-10012328.SAR and then navigate into the SAP_HANA_AFL directory which
was created in step 2 and execute 'hdbinst' as ~/tmp/SAP_HANA_AFL #./hdbinst
It can be downloaded from http://service.sap.com/swdc and once installed you can verify
the AFL installation success with commands below:
Chapter 5: Conclusion
Add the afl_wrapper_generator and afl_wrapper_eraser procedures if they don't exist. On
<instance_number>/exe/plugins/afl/ directory and execute the afl_wrapper_generator.sql
and afl_wrapper_eraser.sql scripts as HANA user SYSTEM. (An easy way to do this is to open
the files in a text editor on the Linux server and copy the code back to HANA studio for
execution as the SYSTEM user in a SQL console).
You now have two procedures - AFL_WRAPPER_GENERATOR and AFL_WRAPPER_ERASER
which are owned by SYSTEM.
system.afl_wrapper_eraser to your predictive analysts.
For example, if the user name is MyHANAUser, run the commands: GRANT EXECUTE ON
system.afl_wrapper_eraser to MyHANAUser.
5.4 Future Work
SAP traditional Predictive Analysis tool allows to run data analysis activities but they are
manual and thus repetitive and prone to human errors. SAP InfiniteInsight (formerly KXEN)
introduce automation to PA activities and allow users to concentrate more on business decisions.
It would be interesting to dive in and explore extra potential added to traditional PA. I wanted to
implement HANA server connectivity and running PA predictions on both HANA server and local
machine to show the difference in performance in figures, but couldn’t because of expensive
licenses fees for HANA server. Developing mobile applications to integrate PA results and charts
to other applications for better and faster business making. A predictive model which is as an
equation, algorithm, or set of rules needed to predict an outcome depending on the input
dataset; can simply be a set of business rules based on past observations, and can be developed
more accurately using statistically rigorous predictions and statistical algorithms. Future work
can also consider making a standard for these models to be used by business communities again
just by importing.
5.5 Conclusion
In normal daily life even, everyone takes advantage of predictive analytics, in the form of
anything from weather forecasts to insurance premiums. Predictive analytics will be used more
& more as businesses understand and appreciate the business benefits that this prediction tools
Chapter 5: Conclusion
bring. Predictive analytics is a subset of data mining but indicates a focus on making predictions.
SAP in 2012 announced the launch of SAP Predictive Analysis 1.0, their new solution in the
predictive analytics portfolio as a replacement to the classical offering of SAP BO Predictive
Workbench. With PA, HANA and HANA native predictive library (PAL) enables the execution of
predictive algorithms in-database that is making the procedures running in the DB layer and then
exporting just the result set, instead of exporting the whole dataset for the algorithms to run in
the application layer. This gave SAP a leading edge and made SAP a big contender in the Big Data
Predictive Analytics space. But in actual terms, SAP's actual portfolio was very small. HANA no
doubt brought a lot of modern and ground breaking technologies to the game that weren't
available before, but in terms of actual functionalities related to analytical models, it was still
behind its main competitors SAS, IBM, and Tibco etc. Only a couple of dozen algorithms in PAL
were available and definitely were not enough to compete.
But the game changed since day SAP announced the R integration which means more than
3500 algorithms are part of library set. This HANA R integration, although powerful, still had
disadvantage as it required a very specific set of development skills in order to deliver actual
analytical models to the business users. To support these users with very little or almost none
technical knowledge, SAP PA 1.0 latest version 11 allows implementing custom R functionalities
(i.e. algorithms that weren't built in standard PA) without having to resort to developing HANA
SQLScript/R procedures. Users can share their existing R scripts (just adapting it to a function
model and can now visually create their analytical models with the most complex algorithms. PA
interface and possibility to run analysis on in-memory databases allows analysis of very large
amount of data with better performance.
The basic working character for predictive analysis is the predicator, that variable whose
measured value for an individual or entity gives idea about future behavior. For example, an
insurance company could consider age, income, credit history, insurance claims history and other
demographics as predictors when issuing an insurance policy to determine an applicant’s risk
factor. Predictive model is combination of such multiple predicators which may be helping factor
to forecast future possibilities or behaviors with an acceptable value of reliability when they are
subjected to an analysis. Model must be kept re-validated and revised as additional data become
available for further predictions based on collected data, formulations of statistical models and
previous properties of models. PA always go hand in hand with business knowledge and statistical
techniques for its full exploitation and prediction objective/insight must be clear before starting
the process. It's a good practice to keep ready multiple related predictive models available to be
run and applied to dataset for better strategic company decisions.
[1] J. MacGregor, Predictive Analysis with SAP®, SAP Press, 2013.
[2] C. Mankala og G. M. V, SAP HANA Cookbook, Packt Publishing, Packt Publishing.
[3] I. Gordon, Managing the New Customer Relationship: Strategies to Engage the Social
Customer and Build Lasting Value, 2013: Wiley.
[4] E. Siegel, Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or Die, Wiley,
[5] A. Bari, Predictive Analytics For Dummies, For Dummies, 2014.
[6] T. W. Miller, Modeling Techniques in Predictive Analytics: Business Problems and Solutions
with R, Pearson FT Press, 2013.
[7] B. Ratner, Statistical and Machine-Learning Data Mining: Techniques for Better Predictive
Modeling and Analysis of Big Data, Second Edition, CRC Press, 2011.
[8] C. Carlberg, Decision Analytics: Microsoft Excel, Conrad Carlberg , 2013.
[9] M. Kuhn, Applied Predictive Modeling, Springer, 2013.
[10 M. Zaki, R. U. N. U. Dept. of Comput. Sci., S. Parthasarathy, W. Li og M. Ogihara, «Evaluation
of sampling for data mining of association rules,» Research Issues in Data Engineering, 1997.
Proceedings. Seventh International Workshop, 1997.
[11 G. P.-S. P. S. Usama Fayyad, «From Data Mining to Knowledge Discovery in Databases,»
Association for the Advancement of Artificial Intelligence (www.aaai.org), 2014.
[12 J. S. Park, M.-S. Chen og P. S. Yu, «Efficient parallel data mining for association rules,» CIKM
'95 Proceedings of the fourth international conference on Information and knowledge
[13 C. Rygielski, J.-C. Wang og D. C. Yen, «http://www.sciencedirect.com/,» Elsevier Science Ltd,
http://www.sciencedirect.com/science/article/pii/S0160791X02000386. [Funnet 2014].
[14 V. K. J. R. Q. J. G. Q. Y. H. M. G. J. M. A. N. B. L. P. S. Y. Z.-H. Z. M. S. D. J. H. D. S. Xindong Wu,
«Top 10 algorithms in data mining,» Springer-Verlag, 2006.
[15 P. J. R. Leonard Kaufman, «Finding Groups in Data,» i An Introduction to Cluster Analysis,
John Wiley & Sons, 2009, pp. 47-55.
[16 P. J. Rousseeuw, «Silhouettes: A graphical aid to the interpretation and validation of cluster
analysis,» http://dx.doi.org/10.1016/0377-0427(87)90125-7, p. 467.
[17 A. Sturn, J. Quackenbush og Z. Trajanoski, «Genesis: cluster analysis of microarray data,» i
Oxford University Press 2002.
[18 C. Fraley og A. E. Raftery, «How Many Clusters? Which Clustering Method? Answers Via
Model-Based Cluster Analysis,» The Computer Journal (1998), nr. 41 (8): 578-588.
[19 A. J. S. a. M. Knott, «A Cluster Analysis Method for Grouping Means in the Analysis of
http://www.ime.usp.br/~abe/lista/pdfXz71qDkDx1.pdf. [Funnet 2014].
[20 T. W. H. M. Akihiro Inokuchi, «An Apriori-Based Algorithm for Mining Frequent
Substructures from Graph Data,» Springer Link, nr. Department of Computer and
Information Science, Norwegian University of Science and Technology, pp. 13-23.
[21 C. B. ([email protected]), «Efficient Implementations of Apriori,»
[Internett]. Available: http://www.intsci.ac.cn/shizz/fimi.pdf.
[22 Y. Ye, A. Corp. og C.-C. Chiang, «A Parallel Apriori Algorithm for Frequent Itemsets Mining
10.1109/SERA.2006.6».Software Engineering Research, Management and Applications,
2006. Fourth International Conference.
[23 F. E. H. J. G. J. B. M. E. Y. V. J. F. H. Ewout W Steyerbergemail address, «Internal validation
of predictive models,» Journal of Clinical Epidemiology, nr. Volume 54, Issue 8, 2000.
[24 H. Bliss, «SAP BI Blog, All things Business Intelligence,» [Internett]. Available:
[25 D. W. T. H. a. R. T. Gareth James, «Linear Regression,» i An Introduction to Statistical
Learning with applications in R, Springer.
[26 D. Alahakoon, S. Halgamuge og B. Srinivasan, «Dynamic self-organizing maps with
controlled growth for knowledge discovery,» IEEE, 2002.
[27 A.
[28 F. Y og J. B. Partovi, «Emerald Insight :Using the Analytic Hierarchy Process for ABC
[29 A. Tanwari, A. Lakhiar og A. Ghulam, «ABC Aanlysis as a Inventory Control Technique,»
[30 I. Ben-Gal, «OUTLIER DETECTION,» http://www.eng.tau.ac.il/~bengal/outlier.pdf.
[31 «Outlier
[32 C.
[33 M. N. M. S. M. O. Mansur, «Outlier Detection Technique in Data Mining: A Research
[34 http://scn.sap.com/docs/DOC-32651, «Official Product Tutorials – SAP Predictive Analysis,»
[35 S.
http://arxiv.org/ftp/cs/papers/0507/0507065.pdf, China University.
[36 C. C. A.-N. 4. I. License, «Linear Least Squares Regression,» [Internett]. Available:
[37 O. Torres-Reyna, «Getting Started in Linear Regression using R,» [Internett]. Available:
[38 H. C. H. J. A. W. A. K. S. a. M. J. v. d. W. Robert A van den Berg*, «Centering, scaling, and
transformations: improving the biological information content of metabolomics data,» BMC
Genomics, [Internett]. Available: http://www.biomedcentral.com/1471-2164/7/142.
[39 «Data Collection,» i Centering, scaling, and transformations: improving the biological
[40 D. K. a. B. Basturk, «Artificial bee colony (ABC) optimization algorithm for solving
constrained optimization problems,» Lecture Notes in Computer Science, pp. 789-821, 2007.
[41 B. A. a. C. O. D. Karaboga, «Artificial bee colony (ABC) optimization algorithm for training
feed-forward neural networks,» Lecture Notes in Computer Science, pp. 318-329, 2007.
[42 D. V. H. D. Morris, «T h e B u s i n e s s V a l u e o f P r e d i c t i v e A n a l y t i c s by IBM,»
[43 R. D. Kugel, «Business Planning and Predictive Analytics,» [Internett]. Available:
[44 L. M. 8, «Mining Frequent Itemsets – Apriori Algorithm,» [Internett]. Available:
[45 I. Tudor, «Association Rule Mining as a Data
http://bmif.unde.ro/docs/20081/7%20ITudor.pdf, Romania.

Similar documents