PySR의 best와 accuracy, 예측에 쓰는 수식이 달라지는 이유

PySR 후보 표에 loss가 더 낮은 식이 있는데, pick 화살표는 다른 줄을 가리킨다. 기본 예측에 쓰이는 best 식은 어떤 기준으로 골라질까?

PySR의 best와 accuracy, 예측에 쓰는 수식이 달라지는 이유
세 줄 요약
  • PySR은 데이터에 맞는 수식 후보를 찾고, 선택 전략에 따라 기본 예측식을 고른다.
  • 기본 로그 손실 방식에서 best는 최소 손실의 1.5배 이하인 후보 중 score가 가장 높은 식을 고른다.
  • 선택 기준은 탐색 후에도 바꿀 수 있다. 후보를 고르는 일과 수식을 새로 탐색하는 일은 다르다.

best는 가장 짧은 식이나 최소 오차의 다른 이름이 아니다

PySR은 Python에서 사용할 수 있는 기호 회귀 도구다. 예측값만 내놓는 대신 데이터 관계를 표현하는 수식을 찾는다. 후보가 여러 개 남았을 때 기본 예측에 어떤 식을 쓸지는 model_selection이 정한다.

공식 API의 accuracy는 후보 중 loss가 가장 작은 식을 선택한다. 기본값 best는 먼저 손실이 충분히 작은 후보로 좁힌 뒤 복잡도를 늘린 만큼 손실이 얼마나 개선됐는지 나타내는 score를 비교한다.

선택 구현에서 그 경계는 최소 손실의 1.5배 이하다. 기본 로그 방식의 score는 인접 후보 사이에서 복잡도가 증가할 때 로그 손실이 줄어드는 정도를 나타낸다. 긴 식에 무조건 불이익을 주거나 짧은 식을 무조건 선택하는 규칙은 아니다.

오차를 조금 더 줄인 긴 식보다 짧은 후보가 선택될 수 있다

다음은 선택 규칙을 설명하기 위한 가상 후보 표다. 실제 탐색 결과가 아니며, 기본 로그 방식으로 score를 계산했다.

후보복잡도lossscore(반올림)
A11.000
B30.121.060
C50.100.091

최소 손실은 C의 0.10이고, 1.5배 경계는 0.15다. best는 이 범위에 들어오는 B와 C 중 score가 높은 B를 고른다. accuracy는 손실이 가장 작은 C를 고른다. B에서 C로 넘어갈 때 추가된 복잡도에 비해 개선 폭이 작기 때문에 선택이 갈린다.

이 규칙은 score가 있는 기본 로그 방식의 설명이다. score 열이 없는 결과에서는 선택 구현이 accuracy로 전환한다. 사용자 정의 손실과 loss_scale을 바꾼 탐색까지 같은 표의 규칙으로 읽어서는 안 된다.

pick 표시와 후보 표를 함께 읽는다

옵션 안내에 따르면 print(model)의 pick 열에 있는 화살표가 현재 선택된 식이다. model.equations_에는 후보식과 손실·복잡도 등이 들어 있다. 표의 마지막 줄이라는 이유만으로 기본 예측식이라고 판단하지 않는다.

탐색을 마친 model과 학습에 사용하지 않은 입력 X_valid가 있다면, 다음처럼 선택 전략별 예측을 얻을 수 있다.

model.model_selection = "best"
print(model)
pred_best = model.predict(X_valid)

model.model_selection = "accuracy"
print(model)
pred_accuracy = model.predict(X_valid)

이는 이미 찾은 후보를 다시 고르는 예다. fit을 다시 호출하지 않으므로 새 수식을 탐색하는 절차가 아니다. 시작 안내는 탐색 이후 선택 전략 변경과 sympy() 등의 수식 내보내기도 지원한다고 설명한다.

PySR 튜닝 안내는 필요한 연산자만 넣고, 연산자 조합과 중첩에 제약을 두는 방법을 권한다. 모든 함수를 허용한 뒤 마지막 선택값 하나로 읽기 쉬운 식을 얻으려 하기보다, 문제에 맞는 후보가 나오도록 탐색 범위를 정하는 방식이다.

maxsize는 수식 복잡도의 상한이다. 기본 복잡도는 연산자·변수·상수를 각각 1로 세며, 출력된 문자열의 글자 수를 뜻하지 않는다. 복잡도 가중치를 바꾸면 같은 모양의 식도 다른 비용으로 평가될 수 있다.

마지막 선택에는 별도 데이터에서의 예측도 필요하다. scikit-learn의 검증 안내처럼 학습 자료에 잘 맞는 것만으로 새로운 자료에서의 성능을 판단할 수는 없다. 검증 자료로 후보를 고르고, 최종 평가는 선택에 사용하지 않은 테스트 자료에 남기는 방식이 적합하다.

best는 정확도와 복잡도를 절충하는 기본 선택 규칙이다. 후보가 선택된 이유를 읽고 새 데이터에서도 성능을 검증해야, 실제 예측에 사용할 식을 고를 수 있다.