2011-02-16 7 views
0

데이터 세트 (3000 포인트)를 피팅하여 수식을 얻는 "방법"을 찾고 있습니다. Legendre 다항식을 사용했지만 20 점을 초과하면 정확한 값을 제공하지 못합니다. 나는 chi2 테스트를 쓸 수 있지만 알고리즘은 N 개의 매개 변수를 계산하는 데 필요한 시간을 필요로하며, 처음에는 함수가 어떻게 생겼는지 모르기 때문에 시간이 걸립니다. 나는 대용량 데이터 세트, 내삽

그래서 입력은 ... ... 아마도 스플라인에 대해 생각했다 : 3000 개 파인트

출력 : (X) = ... 뭔가 내가 맞게에서 수식을 갖고 싶어

F . 파이썬에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

우리와 함께 할 힘을합시다! Nykon

+0

저는 아래의 그의 답변에서 Josh의 의견에 동의합니다. 데이터의 분산 플롯을 보지 않고도 Python에서 구현하는 데이터 피팅 전략을 제안하는 것이 어렵습니다. – las3rjock

+1

데이터가 나타나는 위치를 설명 할 수 있습니까? 그것은 실제 세계 현상과 관련이 있습니까? 당신의 모델 (수식)의 복잡성과 관심있는 현상을 '일반화'하는 능력 사이에 상충 관계가 있음을 알고 계십니까? 우리에게 당신의 데이터와 현실 세계의 컨텍스트를 보여 주겠다. 나는 약속한다. 훌륭한 대답이 주어질 것이다 ;-). 감사합니다 – eat

+0

음,이 3000 점 뒤에는 물리학이 없습니다. 가치는 인간의 행동에 달려 있습니다. 간단한 예. 톰은 1에서 100까지의 숫자를 말하고, 톰은 25를 말합니다. 등등 ... 등등과 당신은 일련의 값을가집니다. "역사"를 알면 미래의 Tom의 대답을 예측할 수 있습니다. 기능을 아는 것입니다. – nykon

답변

0

유일한 공식은 질서의 다항식 될 3000

적합 필요가 얼마나 잘을해야합니까? 어떤 유형의 공식을 기대하십니까?

2

예외적으로, 스플라인은 모든 조각 별 세그먼트를 처리 할 수있는 여력이없는 한 "수식"을 제공하지 않습니다. 그때조차도, 그것은 쉽게 적어 두지 않을 것입니다.

간단한 스플라인은 보간을 제공합니다. 더 나쁜 것은, 3000 점에 대해, 보간 스플라인은 대략 많은 입방 세그먼트를 줄 것입니다! 전에 보청을 했어. 물론, 그 높은 차수의 보간 다항식은 어쨌든 완전한 고환이 될 것입니다. 그래서 여러분이 바로 그곳으로 돌아갈 수 있다고 생각하지 마십시오.

필요한 모든 점이 정확한 보간을 제공 할 수있는 도구이고 실제로 수식이 필요하지 않은 경우 보간 스플라인을 선택하는 것이 좋습니다.

아니면 근사값을 원하십니까? 데이터를 대략적으로 맞추고 잡음을 제거하는 기능? 사실, 그들이 무엇을하는지 모르는 사람들이 "보간법"이라고 말하면서 근사치를 계산하고 부드럽게하는 많은 경우가 있습니다. 이것은 물론 가능하지만, 곡선 피팅 (curve fitting)이라는 주제에 대한 전체 서적, 경험적 데이터의 모델링이 있습니다. 첫 번째 목표는이 데이터를 나타내는 지능형 모델을 선택하는 것입니다. 물론 당신이 연구중인 관계에 대한 물리적 이해로부터 모델을 지능적으로 선택한다면 비선형 회귀 방정식을 사용하여 그 모델의 매개 변수를 추정 할 수 있습니다.

모델이없고 대략적인 모양을 가진 모델을 선택하지 않으려는 경우 회귀 감과 고차 다항식을 사용할 수있는 일반 모델이 스플라인 형태로 남아 있습니다 내가 거의 존중하지 않는 모델.

내 모든 요점은 모델을 선택하고 몇 가지 연구를해야합니다.

0

관측점을 샘플링하고 (무작위로 가장 좋음) 큐빅 스플라인을이 샘플에 맞출 수 있습니다.이 절차를 반복하면 스플라인 분포를 만들 수 있습니다. 3,000 점으로 스플라인을 피팅하는 것은 다소 어렵지만 샘플을 기반으로 스플라인 분포를 생성하면 함수의 모양을 알 수 있습니다. Josh가 위에서 언급 한 것처럼 http://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html은 검색을 시작하기에 좋은 장소입니다.