배경
에너지 미터 판독 값의 시계열 데이터 세트를 작업 중입니다. 시리즈의 길이는 미터에 따라 다릅니다. 일부는 몇 년 동안, 다른 일부는 몇 개월에 불과합니다. 많은 사람들이 일, 주 또는 연도 내에 상당한 계절 성과 종종 여러 레이어를 표시합니다.
내가 작업 한 것 중 하나는 이러한 시계열의 클러스터링입니다. 저의 작업은 현재 학업 적이며 데이터에 대한 다른 분석도 수행하는 동안 클러스터링을 수행하는 구체적인 목표가 있습니다.
나는 다양한 기능을 계산하는 초기 작업을 수행했습니다 (주말 대 주중에 사용 된 백분율, 다른 시간 블록에 사용 된 백분율 등). 그런 다음 DTW (Dynamic Time Warping)를 사용하여 다른 계열 간의 거리를 구하고 차이 값을 기반으로 클러스터링하는 방법을 살펴 보았으며 이와 관련된 여러 논문을 발견했습니다.
의문
특정 계열 변경의 계절성으로 인해 클러스터링이 잘못됩니까? 그렇다면 어떻게 처리합니까?
내 관심사는 시계열 패턴이 변경된 경우 DTW에서 얻은 거리가 잘못 될 수 있다는 것입니다. 이로 인해 클러스터링이 잘못 될 수 있습니다.
위의 내용이 명확하지 않은 경우 다음 예를 고려하십시오.
실시 예 1
미터는 자정부터 오전 8 시까 지 낮은 판독 값을 가지고 있으며, 그 다음 판독은 다음 한 시간 동안 급격히 증가하고 오전 9시에서 오후 5 시까 지 높게 유지 된 후 다음 시간 동안 급격히 감소한 다음 오후 6 시부 터 자정까지 낮게 유지됩니다. 미터는이 패턴을 몇 개월 동안 매일 지속적으로 유지하지만 판독 값이 하루 종일 일정한 수준으로 유지되는 패턴으로 변경됩니다.
실시 예 2
미터는 매월 소비되는 에너지와 거의 같은 양을 보여줍니다. 몇 년 후, 여름철에는 에너지 사용량이 더 많은 패턴으로 바뀌어 평상시 금액으로 돌아갑니다.
가능한 방향
- 전체 시계열을 계속 비교할 수 있을지 궁금했지만 패턴을 크게 변경하면 분할하여 별도의 시리즈로 간주합니다. 그러나 이렇게하려면 그러한 변경 사항을 감지 할 수 있어야합니다. 또한 이것이 적절한 방법인지 또는 데이터 작업인지 모르겠습니다.
- 또한 데이터를 분할하고 별도의 시계열로 간주하는 것도 고려했습니다. 예를 들어, 나는 매일 / 미터 조합을 별도의 시리즈로 생각할 수 있습니다. 그러나 매주 / 매월 / 매년 패턴을 고려하려면 비슷한 작업을 수행해야합니다. 나는 이것이 효과가 있다고 생각 하지만, 잠재적으로 상당히 번거롭고 내가 누락 된 더 좋은 방법이 있다면이 길을 가고 싶지 않습니다.
추가 사항
이것들은 의견에 등장한 것, 또는 의견으로 인해 생각한 것입니다. 사람들이 관련 정보를 얻기 위해 모든 것을 읽을 필요가 없도록 여기에 넣었습니다.
- 나는 파이썬에서 일하고 있지만 R이 더 적합한 곳에서는 rpy를 가지고 있습니다. 필자는 반드시 파이썬 답변을 찾고있는 것은 아닙니다. 누군가해야 할 일에 대한 실질적인 답변이 있다면 구현 세부 사항을 스스로 알아내는 것이 행복합니다.
- 작업중인 "거친 초안"코드가 많이 있습니다. DTW 실행을 수행하고 몇 가지 다른 유형의 클러스터링을 수행했습니다. 실제로 찾고있는 것은 거리를 찾고 클러스터링을 실행하기 전에 데이터를 처리하는 방법과 관련이 있습니다.이를 감안할 때 시리즈 간 거리가 DTW를 통해 계산되는지 또는 더 간단한 유클리드 거리 (ED)를 통해 계산되는지에 대한 대답은 같을 것입니다.
- 나는이 논문들이 특히 시계열과 DTW에 대한 유익한 정보를 발견했으며 주제 영역에 대한 배경 지식이 필요할 경우 도움이 될 수있다 : http://www.cs.ucr.edu/~eamonn/selected_publications.htm