.


:




:

































 

 

 

 


Distance




ComputeCentroid Distance, , . , :

1. static double Distance(double [] tuple, double [] vector)

2. {

3. double sumSquaredDiffs = 0.0;

4. for (int j = 0; j < tuple.Length; ++j)

5. sumSquaredDiffs += Math.Pow((tuple[j] - vector[j]), 2);

6. return Math.Sqrt(sumSquaredDiffs);

7. }

, . . , , .

, k-, . , . 160.0, 67.0, , . , . . (m) (standard deviation, sd) , (v) nv = (vm)/sd.

, . Assign . 6.

. 6. Assign

1. static bool Assign(double [][] rawData,

2. int [] clustering, double [][] centroids)

3. {

4. int numClusters = centroids.Length;

5. bool changed = false;

6. double [] distances = new double [numClusters];

7. for (int i = 0; i < rawData.Length; ++i)

8. {

9. for (int k = 0; k < numClusters; ++k)

10. distances[k] = Distance(rawData[i], centroids[k]);

11. int newCluster = MinIndex(distances);

12. if (newCluster!= clustering[i])

13. {

14. changed = true;

15. clustering[i] = newCluster;

16. }

17. }

18. return changed;

19. }

Assign centroids . distances, . MinIndex distances, , , .

MinIndex:

1. static int MinIndex(double [] distances)

2. {

3. int indexOfMin = 0;

4. double smallDist = distances[0];

5. for (int k = 0; k < distances.Length; ++k)

6. {

7. if (distances[k] < smallDist)

8. {

9. smallDist = distances[k]; indexOfMin = k;

10. }

11. }

12. return indexOfMin;

13. }

Assign, , clustering, , , clustering . , : clustering .

k- , . . 6, Assign , . . - . , , centroidIndexes, centroids. , centroids , (61.0, 120.0) 2 . 2. centroidIndexes , [3]. Assign , , . , .





:


: 2015-10-01; !; : 502 |


:

:

,
==> ...

1788 - | 1703 -


© 2015-2024 lektsii.org - -

: 0.009 .