Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
Knn Example

Knn Example

Ratings: (0)|Views: 5|Likes:
Published by Ajju Purohit

More info:

Published by: Ajju Purohit on Sep 20, 2012
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





K-nearest-neighbor algorithm
Paul Lammertsma, #0305235
The K-nearest-neighbor (KNN) algorithm measures the distance between a query scenario and a setof scenarios in the data set.Suppose we have a data set of 14 scenarios, each containing 4 features and one result as displayedinTable 1. 
Scenario Outlook Temperature Humidity Wind PlayTennisDay 1
Sunny Hot High Weak
NoDay 2
Sunny Hot High Strong
NoDay 3
Overcast Hot High Weak
YesDay 4
Rain Mild High Weak
YesDay 5
Rain Cool Normal Weak
YesDay 6
Rain Cool Normal Strong
NoDay 7
Overcast Cool Normal Strong
YesDay 8
Sunny Mild High Weak
NoDay 9
Sunny Cool Normal Weak
YesDay 10
Rain Mild Normal Weak
YesDay 11
Sunny Mild Normal Strong
YesDay 12
Overcast Mild High Strong
YesDay 13
Overcast Hot Normal Weak
YesDay 14
Rain Mild High Strong
Table 1
We can compute the distance between two scenarios using some distance function , whereare scenarios composed of features, such that .Two distance functions are discussed in this summary:Absolute distance measuring:
Equation 1
Euclidean distance measuring:
Equation 2
Because the distance between two scenarios is dependant of the intervals, it is recommended thatresulting distances be scaled such that the arithmetic mean across the dataset is 0 and the standarddeviation 1. This can be accomplished by replacing the scalars with according to thefollowing function:
Equation 3
Where is the unscaled value, is the arithmetic mean of feature across the data set (seeEquation 4), is its standard deviation (seeEquation 5), and is the resulting scaled value. The arithmetic mean is defined as:
Equation 4
We can then compute the standard deviation as follows:
Equation 5
Distance functions
As stated previously, we are only considering absolute(Equation 1)and Euclidean(Equation 2)  distance functions . However, we may choose to provide the original unscaled values, or usetransform them using the scaling function inEquation 3. 
Now that we have established a measure in which to determine the distance between twoscenarios, we can simply pass through the data set, one scenario at a time, and compare it to thequery scenario.We can represent our data set as a matrix , containing scenarios , where eachscenario contains features . A vector with length of output valuesaccompanies this matrix, listing the output value for each scenario .It should be noted that the vector can also be seen as a column matrix; if multiple output valuesare desired, the width of the matrix may be expanded.
KNN can be run in these steps:1.
Store the output values of the nearest neighbors to query scenario in vectorby repeating the following loop times:a.
Go to the next scenario in the data set, where is the current iteration within thedomainb.
If is not set or :c.
Loop until we reach the end of the data set (i.e. )d.
Store into vector and into vector2.
Calculate the arithmetic mean output across as follows:3.
Return as the output value for the query scenario
Demonstration application
This paper was accompanied by ademonstration application written inVisual Basic that visualizes theworkings of the KNN algorithm.The examples below can becomputed using the respectiveevaluation buttons, or a customquery can be assembled. The threenearest neighbors are highlighted inthe table and the results of evaluations appear on the right-hand pane.
Example 1
In our PlayTennis data set, we can calculate the KNN to the following query situation:We will use Absolute, unscaled distances to investigate the three nearest neighbors to : sothat . Running the algorithm as described in the previous chapter should result in thefollowing vector and accompanying output vector :

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->