1

출력 y를 제공하는 일련의 입력 (x1, x2, ..., xn)이 있다고 가정합니다. 목표는 아직 보이지 않은 x1 ... xn의 값에서 y를 예측하는 것입니다. 이 문제는 기계 학습 영역에서 회귀 문제로 모델링 할 수 있습니다.기계 학습의 연속 회귀

그러나 데이터가 계속 전송된다고 가정 해 보겠습니다. x1 ... xn에서 y를 예측할 수 있습니다. 또한, 그 예측이 좋은 것인지 나중에 검사 할 수 있습니다. 그것이 좋은 것이라면, 모든 것이 좋습니다. 반면에, 예측이 실제 y에서 많이 벗어난 경우 모델을 업데이트하고 싶습니다. 내가 볼 수있는 한 가지 방법은이 새로운 데이터를 훈련 세트에 삽입하고 회귀 알고리즘을 다시 훈련시키는 것입니다. 그로 인해 두 가지 문제가 발생합니다. 첫째, 모듈을 처음부터 다시 계산할 수있는 것보다 많은 비용이들 수 있습니다. 둘째로, 나는 새로운 훈련 데이터가 무시할 수 있도록 이미 훈련 세트에 너무 많은 데이터를 가지고있을 수 있습니다. 그러나 새로운 데이터는 문제의 특성으로 인해 이전 데이터보다 더 많이 가져올 수 있습니다.

좋은 해결책은 이전 데이터보다 새로운 데이터와 더 관련이있는 연속적인 회귀를 계산하는 것입니다. 나는 그런 접근법을 찾았지만 관련성이있는 것은 발견하지 못했습니다. 아마도 나는 잘못된 방향을보고 있습니다. 누구든지 그것을하는 방법에 대한 단서가 있습니까?

+1

샘플 가중치를 사용하는 것이 아닙니다 (많은 [libs] (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression .적당한))? – sascha

+0

"때때로 모듈을 처음부터 다시 계산할 수있는 비용보다 많이 들지 않습니까?" –

+0

* 당신이 해결 한 모델 * 해결 방법 * 및 처리되는 데이터 종류 * 중요한 정보가 제공되지 않은 *에 따라 다름. – sascha

답변

1

새로운 데이터를 더 중요하게 생각하고 싶다면 가중치를 사용해야합니다. 보통은() 함수

sample_weight

맞게에서라고 scikit 배우기 (이 라이브러리를 사용하는 경우).

가중치는 1/(이 현재 관찰에서 시간 경과)로 정의 할 수 있습니다.

이제 두 번째 문제에 대해 알아보십시오. 재 계산에 많은 시간이 소요될 경우 관측치를 삭감하고 최신 관측치를 사용할 수 있습니다. 전체 데이터와 새 데이터 및 이전 데이터의 일부에 모델을 적용하고 가중치가 얼마나 변경되었는지 확인하십시오. 나는 당신이 {x_i}와 {y} 사이의 의존성을 가지고 있다면 전체 데이터 셋을 필요로하지 않는다고 생각합니다.

그렇지 않으면 다시 가중치를 사용할 수 있습니다. W1 * 1 개 + W2 * X2 + ... 새로운 데이터에 대한

모델 : ~ W1 * 1 개 + ~ W2 * 이전 데이터에 대한

모델 :하지만 지금 당신은 모델에 무게를 무겁게한다 2 배 + ...

일반적인 모델 (W1 * a1_1 + W1 ~ * a1_2) * X1의 + (W2 * a2_1 ~ + W2 * a2_2) * X2 + ... 여기서 a1_1

, a2_1은 '구 모델', a2_1, a2_2 - 이전 모델의 w1, w2 - 계수, w1, w2 -에 대한 가중치입니다.

매개 변수 {a}는 첫 번째 글 머리에서와 같이 추정 할 수 있지만 (손으로) 다른 선형 모델을 만들어 추정 할 수도 있습니다. 하지만 내 조언 : 비선형 회귀를 사용하지 마라.