Machine Learning by Andrew Ng --- K-means

K-means is a kind of cluster algorithm, It allows us to find characteristics in the No characteristic data.
The two important steps of K-means : One is that clustering every example to its right centroid . Another is that computing every example of each centroid’s average,then move the correspond cenroid to the average point.

Here are the whole steps of K-mean:

  • random initialize K(it is better to choose K from the exit examples).
  • repeat{ 1.clustering every example to its right centroid 2. computing every example of each centroid’s average,then move the correspond cenroid to the average point. }

    Something more important already mentioned in the lecture notes.

The solution (U should do it by yourself,i am just recording so i can review it future)

  • findClosestCentroids.m
     
    minvec=zeros(K,1);
    for index = 1:size(X,1)
    for i = 1:K
    minvec( i , 1 ) = sum( ( X(index,:)-centroids(i,:) ).^2 ) ;
    end
    [m , n] = min( minvec );
    idx(index , 1) = n;
    end
  • computeCentroids.m
    for index = 1:K 
    m1 = find(idx==index);
    centroids(index,:) = ( sum(X(m1,:)) )/size(m1,1);
    end

你可能感兴趣的:(machine)