字幕列表 影片播放 列印英文字幕 Hello My name is Thales Sehn Körting and I will present very breafly how the kNN algorithm works kNN means k nearest neighbors It's a very simple algorithm, and given N training vectors, suppose we have all these 'a' and 'o' letters as training vectors in this bidimensional feature space, the kNN algorithm identifies the k nearest neighbors of 'c' 'c' is another feature vector that we want to estimate its class In this case it identifies the nearest neighbors regardless of labels So, suppose this example we have k equal to 3, and we have the classes 'a' and 'o' And the aim of the algorithm is to find the class for 'c' If k is 3 we have to find the 3 nearest neighbors of 'c' So, we can see that in this case the 3 nearest neighbors of 'c' are these 3 elements here We have 1 nearest neighbor of class 'a', we have 2 elements of the class 'o' which are near to 'c' We have 2 votes for 'o' and 1 vote for 'a' In this case, the class of the element 'c' is going to be 'o' This is very simple how the algorithm k nearest neighbors works Now, this is a special case of the kNN algorithm, is that when k is equal to 1 So, we must try to find the nearest neighbor of the element that will define the class And to represent this feature space, each training vector will define a region in this feature space here And a property that we have is that each region is defined by this equation We have a distance between each element x and x_i, that have to be smaller than the same distance for each other element In this case it will define a Voronoi partition of the space, and can be defined, for example, this element 'c' and these elements 'b', 'e' and 'a' will define these regions, very specific regions This is a property of the kNN algorithm when k is equal to 1 We define regions 1, 2, 3 and 4, based on the nearest neighbor rule Each element that is inside this area will be classified as 'a', as well as each element inside this area will be classified as 'c' And the same for the region 2 and region 3, for classes 'e' and 'b' as well Now I have just some remarks about the kNN We have to chose and odd value of k if you have a 2-class problem This happens because when we have a 2-class and if we set k equal to 2, for example, we can have a tie What will be the class? The majority class inside the nearest neighbors? So, we have always to set odd values for a 2-class problem And also the value of k must not be a multiple of the number of classes, it is also to avoid ties And we have to remember that the main drawback of this algorithm is the complexity in searching the nearest neighbors for each sample The complexity is a problem because we have lots of elements, in the case of a big dataset we will have lots of elements And we will have to search the distance between each element to the element that we want to classify So, for a large dataset, this can be a problem Anyhow, this kNN algorithm produces good results So, this is the reference I have used to prepare this presentation Thanks for your attention, and this is very breafly how the kNN algorithm works