2013-02-26 5 views
0

kmean 클러스터링을 수행하는 C++ 코드를 리팩토링하고 있습니다.리팩터링 구현

  1. 정상 kmean
  2. 기능 정렬 클러스터링 : 약간 다른 거리 메트릭 및 업데이트 규칙을 사용하는 코드의 두 가지 버전이있다.

어떻게 효과적으로 구현해야합니까? 메소드 오버로딩 (이것은 입력에 의존하지 않는다)

OK 이것은 kmean 클러스터링을하는 의사 코드이다. 두 가지 버전의 거리 및 업데이트 기능을 구현해야합니다.

int* kmean_clustering(vector<double[10]> data) 
// each row of data hold one data point 
// so we have M data points of 10 dimension 
{ 
    // Split codebook 
    // Assignment step 
    Find the closest codebook based on distance(distance here can be Euclidean, Mahalanobis, .....) 
    //Update step 
} 
+2

일부 코드를 게시 할 수 있습니까? 아니면 어떻게하면 리필 방법을 제안 할 수 있습니까? – lockstock

+0

함수 포인터가 좋은 생각입니까? 나는 Kmean_ 유클리드, Kmean_Mahalanobis, Kmean_blah_blah 함수를 갖고 싶지 않다. –

답변

2

잘 쓰여진 코드는 좋은 소설을 읽는 것과 같습니다. 이것이 바로 크 누스가 그것을 프로그래밍의 예술로 부른 이유입니다. This book은 리팩토링의 상향식 접근법을 가르쳐 줄 수 있습니다.