Toolkit for a business analyst

Have you seen how a doctor works? When you visit a doctor, he first asks you to explain your problem. He then examines you using his tools which are ready at hand. He then understands the problem and prescribes further course of action or medicines. If it is a common problem, he usually has a stock of medications which he can give. Else he has tools to write a prescription etc.

Similarly as a professional, a How to become a Business Analyst should have a toolbox that will make him more effective at work. The toolbox should have virtual tools in terms of skills and hardware and software tools.

Here we focus on the hardware and software tools that will enable you to do our job better –

1) Software – The Business Analyst must have desktop applications such as MS Word, MS Excel, MS PowerPoint and MS Visio or similar applications. These tools help in documentation, analysis, visualization and presentation.

2) Templates – A business analyst should have some templates that can be readily used. They provide a structure to get data and in gathering requirements and documenting them . Here are some document templates that will be useful for a business analyst –

  • Business Requirements Document – This template provides a structure for detailing out key issues, requirements and the business solution in the document. It should have the project scope detailed so that the BA knows how much functionality is to be developed.
  • Use Case document – The BA should be able to list all use cases their preconditions, post conditions, steps, alternate scenarios and link the use cases as required.
  • Change Request Template – It contains details of the change asked for and reasons for it. The impact on system functionality, code, test cases, cost and efforts is documented here. It also has a section for approvals.
  • Business Model document – This document captures existing business context and the current business processes. It documents modifications and new processes to be developed.
  • Traceability Matrix – The traceability matrix is useful to trace relationship between 2 entities. It can be used to check the connect between requirements or trace relationship from requirement to use case to code to test case.
  • Issues – The issues log is a log of all issues, their resolution, date of expected resolution and persons responsible and accountable to solve the issues
  • Requirements and Specification Meeting Notes – It will be helpful for the BA to have a structure for the meeting notes so that he can have clarity in thinking and pose questions in a structured manner.

3) Whiteboarding Tools – BAs spend a lot of time communicating with different teams involved in the project. They are involved with clients to get requirements. They have meetings with end users to understand functionality. They need to collaborate with the development team and test team to explain processes, features and functions that need to be developed. It will be helpful if the BA has the ability to use the whiteboard to put forth his points. Visual representation of issues and features will eliminate possibilities of misrepresentation. A BA must be confident enough to grab a pen and draw on the whiteboard or use virtual whiteboarding components.

4)Efficient Meeting Tools – One to the main responsibilities of the role of a Business Analyst is to collaborate with stakeholders. The business analyst gets into meetings with client team members or with project team members. It is important that the BA’s meetings are efficient and effective. As a Business Analyst, you should

  • Save relevant numbers such that they are easy to retrieve.
  • Know the organization’s process to set up face-to-face meetings, book conference rooms, set up virtual meetings and make conference calls.
  • Keep a reference checklist of whom to collaborate with for which kind of meeting with the contact details.
  • Be ready with tools to jot down notes and ensure that the minutes are sent to all participants. There are note-taking apps like OneNote, which can be used.

5) Mind mapping tool and Wire framing software – A Mind map is an excellent tool to explore ideas and get to the root cause of problems. It can be used by BAs in personal interviews and requirements workshops. Mind Mapping helps organize information, give direction to ideas and information presented in a meeting. Business analysts should use mind-mapping tools to visually represent information.

mind mapping

Example of Mindmap

You must have heard or read the saying, ‘A picture is worth a thousand words. This is true when building software applications. As a business analyst, you can develop wire frames, which can be mock representations of some high-level business requirements. They help to elicit new business requirements or detail out requirements. They help to define scope of the project. Wireframes help in finalizing data points, sections, attributes etc. Use of wireframes reduces rework in later stages of project development.

The above-mentioned tools will aide a business analyst to capture requirements in a better manner and design effective solutions. They will improve the quality of work and bring increased alignment within the project team.

How to Prioritize Requirements

business analytics

As a business analyst , you will interact with different stakeholders in the project and each of them will have their own business requirements. As a result, there will be numerous business requirements . Some of the business requirements may conflict with one another. On the other hand, the project team will have to manage the project within the constraints of time, cost, quality and risk. You will be pulled in different directions as regards to how many requirements can be fulfilled by the team within the constraints and the client wanting everything and more! Moreover, in many systems, there are features that are rarely used. You will have to bring the right balance so that the business objectives can be met.

In the best interest of the success of the project it is imperative for you to prioritize requirements. Prioritization of requirements will –

  • Reduce development costs
  • Shorten the project duration
  • Ensure that the most important requirements are taken care of
  • Manage project better
  • Help in trade-offs

Prioritization helps in streamlining work and bring everyone to the same plane regarding the business objectives. There are different techniques of prioritizing requirements –

1) MoSCoW

It is a technique where the requirements are categorized as –

‘Must’ Mandatory Requirements critical to the system
‘Should’  Important Requirements and are valuable to the customer
‘Could’ Desirable Requirements but not the most important functionalities
‘Won’t’ Not required for now. They can be planned for in future releases.

The MoSCoW matrix will help to understand what are the key requirements of the customer for successful completion of the project. It helps in trade-offs as the project team is aware of what is more important and what is less important. It also helps in managing scope later on in the project if there is risk to schedule and cost.

The different terms should be clearly explained to all stakeholders else there can be confusion.

Let us look at some requirements for an e-commerce site and prioritize them using the MoSCoW method –

Requirements Priority
User should be able to sign up and log in Must
Payment Integration Gateway Must
Track Order Must
Show Purchase History Should
Print Order Could
Post Review of Products bought Could
Share your purchase on Facebook Won’t

2) Objective Alignment

This is a technique where the requirements are mapped to key business objectives. If a requirement cannot be mapped to a business objective, it is considered out of scope. Here the key business objectives are defined. It is then assessed if implementation of each requirement can be aligned to the business objective. The requirements that cannot be aligned are omitted.

In the e-commerce website example, the key business objectives could be –

1) Increase customer visits and increase number of registered customers

2) Increase sales on the website

In this case, the following requirements will be of higher priority –

  • Customer Sign Up
  • Features such as Deals and Freebies to be regularly updated
  • Search and Showcase of latest products
  • Multiple Payment Mechanisms like electronic payment, Cash on Delivery with a good payment gateway integrated

The following requirements may not be of high priority as they are not directly related to the business objectives and can be developed in future releases –

  • Provision of blog functionality
  • Detailed ‘About Us’ page

3) 100 Dollar or 100 Points Method

In this method all client representatives are given an imaginary sum of 100 dollars or 100 points. These are to be distributed among the listed requirements. The client representatives assign points or dollars to each requirement. The requirements that have been allocated a higher amount on a ratio basis are considered within the application scope. The other requirements are postponed for future releases. This technique is good if there are limited number of requirements. If the list of requirements is long, 100 units are not enough.  A higher amount should be considered or requirements should be grouped and the the groups should be allocated dollars/points.

100 dollor or 100 points method

There are some other ways of prioritizing requirements such as ranking the requirements on criticality or assigning weightage to requirements.

There are some challenges to prioritization of requirements that a BA has to handle. Some customers may want all requirements incorporated. Others might feel if they give some requirements a lower priority, they would not be implemented. Project leads or BAs try to avoid conversations in which they have to reject requirements of clients. But it is important to rank requirements. Requirements prioritization finalizes project scope and ensures the most important functionality is implemented.

Let us know, what techniques do you use for prioritizing requirements.

How to become a Business Analyst?

If you are an aspiring business analyst, then I am sure that you’d be searching on Google for the answer and by the end of this article I assure you that you’ll definitely get that answer. Well becoming a business analyst is no rocket science, just follow the simple steps mentioned below and you’ll be ready to take up the role of a Business Analyst in any reputable company.

how  to become a business analyst

Know what you are getting into

Getting into business analytics only because you read good things about it or because your friend is into it won’t help. Research about it, know what will be your roles, responsibilities and salary as a Business Analyst and if you are convinced then move to the next step. Many times people take up business analytics and after reaching the halfway, they realize that this not what they were looking for; So you don’t commit the similar mistake. You can find out about business analytics by:

  • Reading Business Analytics blogs
  • Reading books on business analytics
  • Talking to someone who is already in this field
  • Talking to a course counselor

This will not only help you to make the correct decision but will also enhance your knowledge about analytics.

See if you are the right candidate for analytics field

After being sure that business analytics is the right choice for you, you’ll have to see if you are the right candidate for business analytics. There is no major eligibility criterion that you must pass to become a business analyst but small things that will help you to find whether you are the right candidate for analytics are:

  • You belong to Finance/Marketing/Economics/Statistics/IT/Computer Science/Mathematics field
  • You have basic knowledge about Mathematics
  • You have good Analytical Skills or are an analytical thinker
  • You love working on data and are comfortable working with people as well

If you can connect with all or most of the above mentioned points then you are the right candidate for having a career in business analytics.

Take up a Business Analytics Course

To develop the analytical skills, it is imperative to get trained in business analytics. Good training means increased chances of getting a good job in a good company. If you are a working professional and cannot spare time for the classroom training, then try search for institutions that provide online courses. Before taking up the course just check the following:

  • Research about the good institutes that provide business analytics training
  • Check their course curriculum and see if it matches your expectations
  • Check what value the certificate holds
  • Check if any placement assistance is provided
  • Check the reviews

If you are happy with all the above mentioned points of a particular institute then don’t wait more and start with your training right away.

Time to find your dream job

business analyst job

After completing all the above mentioned steps comes the crucial one that is finding the right job. According to a survey by LinkedIn 5 of the top 25 hottest skills that people got hired for in 2014 were related to Business Analytics and the numbers have only increased. So, if you see there is no dearth of opportunities in the analytics field, you just have to search a little harder for your dream job.

Once again you’ll have to do a lot of research work. Check the websites of the companies that you are interested to work for. These days most of the websites have a career page where you can find about the vacancies and the contact person. Try to contact them through mail and phone and see if you fit anywhere in their organization.

One other important step is to create an effective LinkedIn profile as many recruiters search for the right candidate through LinkedIn. You too can search for the HRs of the companies and connect with them but before that just make sure that your profile is complete and it highlights all your achievements.
If you are going for an interview for the job of business analyst, you can check the commonly as questions and their answers.

So these are the four steps that will surely help you in becoming a successful Business Analyst. As mentioned above, if you are looking for Business Analytics Training , you can always take up the course offered by EduPristine as it will provide you with best training with practical approach.

Measuring Distance for Categorical Data

In this post, we will talk about measuring distance for categorical observations. Categorical dimensions can always be translated into numeric dimensions, and numeric distance metrics continue to be meaningful. However, for purely categorical observations there are some special metrics which can be used.

There are two cases for purely categorical data: where number of dimensions is not constant across observations, and where they are. Example of former is text documents where number of words is number of dimensions in each document. Finding distances among documents is one the most common tasks in text analytics and Natural Language Processing. Example of later is from bio-informatics where gene-sequence is constant length categorical sequence of genotypes.

For purpose of demonstrations in this post, we shall use following three sentences as three observations among which we want to compute distances. Metrics discussed shall apply equally well to cases where number of dimensions are constant.

  • I think, therefore I am
  • Can you think?
  • I don’t think, therefore I don’t know who I am

Let xiw refer to count of word w in sentence i. Using “bag of word” approach (That is, we ignore order of words in the sentence) we can transform these sentences into following vectors:

  I think therefore am Can you don’t know who
“I think, therefore I am” 2 1 1 1 0 0 0 0 0
“Can you think?” 0 1 0 0 1 1 0 0 0
“I don’t think, therefore I don’t know who I am” 3 1 1 1 0 0 2 1 1

Distance Metrics

Cosine similarity is measure of number of common words in two observations, scaled by length of sentences. Cosine distance is computed as

Cosine distance between sentence 1 and sentence 2 is computed as…

Number of common words: 1 (“think”)

Length of sentence 1: 4 (“I” repeated twice)

Length of sentence 2: 3

Similarly,

Thus sentence 1 and 3 are closest, but sentence 1 is closer to sentence 2 than sentence 3.

Tanimato coefficient extends idea of Cosine distance and changes the normalization figure in denominator. Tanimato distance is computed as

Tanimato distance between sentence 1 and 2 is

Jaccard distance is one minus Jaccard similarity, which is number of common words in two sentences divided by total number of unique words. This is particularly popular distance metric for text comparison, because it is fairly fast to compute as we are essentially counting number of common and unique words without complex mathematical computation.


Sorensen–Dice coefficient is variation of Jaccard’s and computed as

Hamming distance is most commonly used for equal length documents, and is equal to number of places changes are required to convert one document into another. This is computationally expensive metric as it also takes into account order of words. Sentence 1 can be converted into sentence 2 in following series of operations –

Action Sentence Step number
I think therefore I am 0
Drop first “I” think therefore I am 1
Drop “therefore” think I am 2
Drop second “I” think am 3
Drop “am” think 4
Insert “can” Can think 5
Insert “you” Can you think 6

Thus, hamming distance d12 = 6, and d13 = 4 (insert “don’t”, “don’t”, “know”, “who”) and d23 = 11 (drop “can”, “you”; insert “I”, “don’t”, “therefore”, “I”, “don’t”, “know”, “who”, “I”, “am”).

String Edit distance is generalization of Hamming distance and is O(n2)computational operation. While Hamming distance permits only ‘insert’ and ‘drop’ operation, String Edit distance permits third operation of ‘replace’ which is equivalent to one ‘insert’ and ‘drop’ combined. Further, Hamming distance computation weighs each operation (insert or drop) equally, String Edit distance can weight insert, replace, and delete separately, in counting number of operations. However, commonly applied variant works with equal weight for all three actions. String Edit distance between Sentence 1 and sentence 2 is 5 as shown in table below.

Action Sentence Step number
I think therefore I am 0
Replace first “I” with “you” you think therefore I am 1
Drop “therefore” you think I am 2
Drop second “I” you think am 3
Drop “am” you think 4
Insert “can” Can you think 5

Remember that…

  • In our examples, we have used words as basic unit of observation, but same can be done at character level.
  • Tanimato and Cosine distance can also be computed consider xiw a binary number rather than word count.
  • Different distance measures give distance in different units and hence one must be cautious about subsequent use of distance number, and remember that distances only makes sense in relative terms, and not in absolute. Distance between A and B can be compared to that between A and C, but by itself has no meaning.
  • Most of these metrics do not follow triangle equality (can you prove?) and hence user is advised to remember if that is important.

Other Articles by the same author:

Measuring Distance in Hyperspace

Semi-Supervised Clustering

Other Related Links that you may like:

Overview of Text Mining

Role of Business Analyst

Measuring Distance in Hyperspace

Anyone cursorily familiar with analytic techniques would have noticed plenty of algorithms relying on distances among data points for their application. Each observation, or data instance, is usually represented as multi-dimensional vector, and input to algorithm requires distances between each pair of such observations.

Distance computation method depends on type of data – numerical, categorical, or mixed. Some of the algorithms apply to only one class of observations, while others work on multiple. In this post, we will discuss distance measures which work on numerical data. There are perhaps more ways distance can be measured in multi-dimensional hyperspace than those can be covered in single blog post, and one can always invent newer ways, but we look into some of the common distance metrics and their relative merits.

For purpose of rest of the blog post, we imply

to refer to two observations or data vectors.

First get the data ready…

Before we review different distance metrics, we need to prepare the data:

Transformation to numeric vector

For mixed observation, which contains both numerical and categorical dimensions, first step is to actually transform categorical dimension into numerical dimension(s). A categorical dimension with three potential values can be turned into two or three numerical dimensions with binary values. Since this categorical variable necessarily takes one of three values, one of three numerical dimensions will be perfectly correlated with other two. This may or may not be okay depending on your application.

If observation is purely categorical, such as text string (varying length sentences) or genome sequence (fixed length sequences), then some special distance metric can directly be applied without transforming data into numeric format. We will discuss these algorithms in next post.

Normalization

Depending on your use case, you may want to normalize each dimension on same scale, so that distance along any one dimension doesn’t unduly influence overall distance between observations. The same thing was discussed in k-Means algorithm . There are two kinds of normalization possible:

Range normalization (rescaling) normalizes data to be in 0-1 range, by subtracting minimum value from each dimension and then dividing by the range of values in that dimension.

First problem with range normalization is that an unseen value may be normalized beyond 0-1 range. Though, this is generally not a concern for most distance metrics, but if algorithm cannot handle negative values then this can be problem. Second problem is that this is highly dependent on outliers. If one observation has very extreme (high or low) value for a dimension, normalized value for that dimension for other observations will be huddled together and lose their discriminative powers.

Standard normalization (z-scaling) normalizes dimension to have 0 mean and 1 standard deviation, by subtracting mean from that dimension of each observation and then dividing by standard deviation of value of that dimension across all observations.

This generally keeps data in -5 to +5 range, roughly, and avoids influence of extreme value.

We have simulated z-scaling of two observations. Simulated, because we really need many more than two observations to compute mean and standard deviation of each dimension, and we have assumed both of these numbers for each dimension here.

Then compute the distance…

Euclidean distance – aka “as the crow flies” distance – is shortest distance in multi-dimensional hyperspace between two points. You are familiar with this in 2D plane or 3D space (this is a line), but similar concept extends to higher dimensions. Euclidean distance between vectors in n-dimensional space is computed as

For transformed data vector examples, this is

This is most common metric and often very suitable for most applications. A variant of this is squared-Euclidean distance, which is just sum of squared differences.

Manhattan distance – named because of East-West-North-South grid like structure of streets of Manhattan in New York – is distance between two points when traversing parallel to the axes.

Figure 1 – Manhattan vs Euclidean Distance (Source)

Manhattan vs Euclidean Distance

Manhattan Distance
Euclidean Distance

This is computed as

This may be useful in some application where distance is used in real, physical sense rather than machine learning sense of “dissimilarity.” For instance, if you need to calculate distance taken by fire-truck to reach a point then using this is more practical.

Canberra distance is weighted variant of Manhattan distance, and is computed as

L-norm distance is extension of above two – or you can say that above two are specific cases of L-norm distance – and is defined as

where L is a positive integer. I’ve not come across any cases where I needed to use this, but this is still good to know possibility. For instance 3-norm distance will be

Do note that L should generally be even integer since we don’t want positive or negative distance contributions cancelling out.

Minkowski distance is generalization of L-norm distance, where L could take any value from 0 to including fractional values. Minkowski distance of order p is defined as


Cosine distance is measure of angle between two vectors, each representing two observations, and formed by joining data point to origin. Cosine distance ranges from 0 (exactly same) to 1 (no connection), and is computed as

Figure 2 – Cosine Distance (Source)

Cosine distance

Cosine distance

While this is more common distance measure when working with categorical data, this can also be defined for numerical vector. For our numeric vectors, this will be

But mind the caveats…

You knew this was coming, don’t you? If analytics was just bunch of mathematical formulas, we won’t need smart folks like you to do it.

First thing to note is that distances computed by different metrics are different. You may be tempted to think that Cosine distance of 1.3 is smallest and hence indicates vectors are closest but this is not right way to interpret. Distances across different methods cannot be compared, and only distances between different pairs of observations under same method can be compared. Distances have relative meaning and no absolute meaning by themselves.

This leads to next question of how to select right distance metric. Unfortunately, there is no true answer. Depending on type of data, context, business problem, application, and model training method, different metric give different results. You will have to use judgment, make assumptions, or test model performance to decide on right metric.

Second caveat is my often repeated one about curse of dimensionality . In higher dimensions, distances don’t behave the way we intuitively think they do, and analyst must be extremely cautious when using any metric.

Third caveat is about relationship between distances among three observations. Some metrics support triangle inequality and while others don’t. Triangle inequality implies that it is always shortest to go from point i to point j directly, rather than via any intermediate point k. Mathematically,

Depending on your application, this may or may not be required property of distance metric.

Oh, one more thing, “distance” is opposite of “similarity.” Higher the distance, lower the similarity, and vice-versa. Clustering algorithms work on distances, and recommendation algorithms work on similarity, but essentially they are talking about same thing.

So, how can you transform distance number into similarity number?

Other Articles by the same author:

Curse Dimensionality

Semi-Supervised Clustering

Other Related Links that you may like:

Overview of Text Mining

Role of Business Analyst

Density Estimation using Kernels

By using Histograms for estimating Probability Density Function , we realized that we need to optimize on number of bins (or bin-width, as both are inversely related), and starting position of bins. Despite that, histograms suffer from discontinuity in estimation and require too many observations as number of dimensions grow.

Solution to these two problems lays in continuous density estimation methods. Recall that an observation contributes to density observation within its bin in histogram model, and not at all outside, even tiny bit outside. This can be made continuous by letting each observation contribute to density value in inverse proportion of distance between the observation and the point where density is estimated. A generalized form can be modeled as

where N is total number of observations, h is a parameter equivalent to bin-width,and K is kernel function representing impact of an observation x_i on density value at x. This can represent histogram if K is defined as

Various Kernel functions exist. However, to be meaningful, they all satisfy following requirements

First equation requires that function be symmetric around zero. Second equation requires that area under the curve of function sums to unity. Third equation requires that function is non-negative at all places. Further, Kernel functions are typically uni-modal functions (have single peak) and have values which drop when moving away from zero. Kernel functions are essentially symmetric probability distribution functions.
Following are some of the common Kernels.

More such examples are at Wikipedia page on Kernels.

Density Estimation using Kernels

Density Estimation using Kernels requires two parameter inputs: First, the shape of the Kernel function, from among many options; Second: bandwidth parameter,h.

Lower bandwidth means granular density representation, which is generally better, unless we overfit. Higher bandwidth means smoother density representation. Choice of bandwidth matters. Figure 1 and Figure 2 show different estimates by varying bandwidth.

Figure 1a – Original Data (Source)

Kernel density estimation

Figure 1b – Kernel Density Estimation using varying Bandwidth (Source)

Kernel Density Estimation using varying Bandwidth

Figure 2 – Impact of Bandwidth on Kernel Density Estimation (Source)

Impact of Bandwidth on Kernel Density Estimation

Shape of Kernel function isn’t so much important though! Figure 3a shows estimates from Gaussian, Epanechnikov, Rectangular, Triangular, Biweight, Cosine, and Optcosine overlaid on top of each other, for same bandwidth. You can notice that they are practically on top of each other. Same story holds even on sparse data (Figure 3b). Though impact of Kernel function is more visible here, it isn’t significant enough to warrant much consideration to method of selecting right Kernel function.

Figure 3a – Effect of Kernel Function on Density Estimation

Effect of Kernel Function on Density Estimation

Figure 3b – Effect of Kernel Function on Density Estimation

Effect of Kernel Function on Density Estimation

How to select right bandwidth?

There are different methods for selecting right bandwidth value.

Business judgement and visual inspection are handy if data in 1- or 2-dimensional only, and analyst can provide sufficient attention to each problem. Over years, some rules of thumb have also emerged. Scott’s rule of thumb provides optimal bandwidth

is sample standard deviation of training observations and N is total number of training data points. This assumes underlying true distribution to be multi-variate Normal and use of Gaussian Kernel. Since choice of Kernel doesn’t matter much, this can be used in other cases too. Silverman’s rule of thumb relaxes assumption of multi-variate Normal distribution and computes optimal bandwidth

and IQR is inter-quartile-range i.e. difference between 75%ile value and 25%ile value.

Rules of thumb go only so far, and if precise estimation is important, cross-validation method come handy, but are more complex. Even more complex variant involves varying bandwidth as function of X Both of these methods are beyond scope of this blog post but can be read in leisure in this document.

Conclusion

Kernel Density Eestimation (KDE) estimates density as sum of contribution of each training observation. However, that density function (model) must be exported and stored in suitable format. Outcome of KDE is collection of (x,y) pairs where y=f ̂(x) is density estimate at x. While more granular estimates are better, too many points make run-time scoring time-consuming.

Since KDE provides continuous and non-abrupt estimates, estimated values aren’t zero for bin where no observation falls, nor are they zero on left and right of data. Instead they asymptotically go to zero on both side of data range.

So play around with various parameters of KDE in R/Python (code below) and explore the methods.

Parting words: we have so far talked about density estimation in single dimensional data, but similar methods apply for multi-dimensional data too.

KDE in R

k <- density(data, bw=1, adjust=1, weights=NULL, kernel="gaussian", n=1024, cut=5, na.rm=T)
plot(k, xlim=c(0, max(data)))
k$bw # bandwidth
data.frame(x=K$x, y=k$y) # result
# other packages sm.density, KernSmooth.bkde

KDE in Python

from scipy.stats import gaussian_kde
k = gaussian_kde(d)
k.factor # bandwidth
k.evaluate(xgrid) # result
# area under curve using trapezoid rule
sum(k.evaluate(xgrid))/xgrid.size * (xgrid.max() - xgrid.min())
# alternate package
from sklearn.neighbors import KernelDensity
k = KernelDensity(kernel='gaussian', bandwidth=2)
k.fit(d)
k.score_samples(xgrid)

Other Articles by the same author:

Curse Dimensionality

Semi-Supervised Clustering

Other Related Links that you may like:

Overview of Text Mining

Role of Business Analyst