찾고있는 것은 symbolic regression입니다.
이미 유전자 알고리즘 경로에 있으니 genetic programming을 시도해 볼 수 있습니다.
유전 프로그래밍을 사용하여 각 개인은 터미널과 기본 기능 (빌딩 블록)을 사용하여 표현 된 "프로그램"입니다.
예, 상징적 회귀 :
terminal set = {x, 1, 2, 3, 4, 5, 6, 7, 8, 9}
function set = {+, -, *, /, exp, log, sin}
A "간단한"프로그램 (2x + 1
) :
+
/\
2 +
/\
* \
/\ \
10 x \
-
/\
* 1
/\
- x
/\
3 11
이는 트리 구조로 표시되어 있지만, 비 트리 표현이 성공적으로 구현되었습니다 .
GP는 큰 검색 공간을 탐험해야하며 매우 계산 비용이 많이 든다는 단점이 있습니다. 이는 데이터를 생성 한 시스템의 기존 지식을 기반으로 알고리즘에 제공되는 빌딩 블록 세트를 제한함으로써 약화 될 수 있습니다.
그러나 상징적 회귀의 이러한 특성에도 장점이 있습니다. 진화 알고리즘이 검색 공간을 효율적으로 탐색하기 위해 다양성을 필요로하기 때문입니다.
학습 프로젝트 인 경우 Python은 비교적 짧은 시간 내에 간단한 프레임 워크를 개발할 수있는 좋은 언어입니다.
그렇지 않으면 DEAP (유전자 프로그래밍을 포함한 좋은 파이썬 기반 진화 연산 프레임 워크)을 살펴보십시오.
[회귀 분석] (https://en.wikipedia.org/wiki/Regression_analysis) 또는 곡선 피팅과 비슷하지만 알고리즘이 자동으로 "올바른"맞춤 함수를 선택하도록하고 싶습니까? 다항식을 다룰 수 있다면 다항식 함수로'scipy.optimize.curve_fit'와 같은 것을 사용할 수 있습니다.이 함수는 적합도와 매개 변수 (계수)를 반환합니다. –