2012-04-16 3 views
2

내가 MATLAB 유전자 알고리즘 도구 상자로 해결하려는 문제가 있고 그것을 해결하는 방법을 모른다. SVM 분류 모델의 분류 정확도 인 함수를 최대화하는 방식으로 수식에서 3 계수를 계산하려고합니다. 계수의 공식은 a, b, c가 내가 최적화 된 값을 찾고자하는 계수이고 A, B, C가 데이터 집합의 3 가지 속성의 값인 a * A + b * B + c * C입니다. . 또한이 제약 A + B + C = 1, A, B, C> 0matlab에 유전자 알고리즘 어떻게 적합성 함수로 분류 정확도를 사용

가 어떻게이 문제를 해결하기 위해 유전자 알고리즘을 사용해야합니까?

+0

이 같은 공식 기능의 무리를 생성하지만, 다른 계수와 희망. 그런 다음 몇 가지 평가 기능을 사용하여 테스트를 수행하여 최상의 성능을 발휘하는 두 가지 기능을 유지하고 그 다음 세대를 생성하십시오. –

+0

응답 해 주셔서 감사합니다.하지만 matlab에서 어떻게해야하는지 또한 알아야합니다. 내가 어떻게 GA에서 제약 조건을 사용해야하며 어떻게 피트니스 함수를 인코딩해야합니까? – user1336745

답변

2

먼저 첫 번째 세대로 초기 실현 가능 솔루션을 무작위로 생성해야합니다.

이들 각각의 가능한 솔루션은 각각 a + b + c = 1a, b, c > 0을 만족해야한다. 당신의 피트니스 기능을 기반으로

그런 평가 답변의 각, 및 "부모"로 더 나은 사람을 선택합니다. 차세대로서 자손 집단을 양성하기 위해 이러한 부모에게 "크로스 오버"또는 "돌연변이"와 같은 GA 기술을 적용하십시오.

이 과정을 설정된 시간 동안 반복합니다 (예 : 500 세대).

는 예를 들어, 변수를 정의 할 수 fitness, 높은 값은 해당 후보가 더 적합한 해결책이 의미한다. 당신은이 함수를 극대화되기 때문에 :

피트니스는 * A가 + B * B + C * C (등 크로스 오버, 돌연변이,) 당신의 GA 작업의 각에서

, 항상 수율에 기억 = 귀하의 초기 제약 조건 ( a + b + c = 1a, b, c > 0)을 충족시키는 새로운 후보자.

2

내 경험은 MATLAB의 GA를 구현하고 최상의 솔루션 중 하나를 기준으로합니다. GA 도구 상자는 이러한 기능을 최소한으로 찾는 데 사용되지만 대칭을 사용하면 원하는 기능을 최대화 할 수 있습니다. 다음 단계에 따라

  • 를, B는 C = 입력 데이터
  • 는 + B + C = 1
  • 피트니스 함수 인 A + B 리드 A, B, C를 정상화 B + C의 *의 C하고
  • nvars 정의를 정의하는 경우 3
  • 넣고 케이스의 LB (하한) [0 0 0], B, C> 0
  • 실행 [X이기 , fval] = ga (...) x가 최종 결과가됩니다. x = [abc]
  • 어떤 질문하시기 바랍니다 더 도움을 저를 이메일을 보내이 있다면

는 : [email protected]

최고의