전체 글(63)
-
[비정형 데이터] 08. 신호 데이터의 이상치 제거하기
신호 데이터는 누가 선을 건드려서 전기에 스파이크가 나는 현상과 같이 원하지 않는 데이터들이 존재할 수 있습니다. 이때 이상치를제거해야 합니다. 이상치는 전자기기 통신과정에서 발생한 이상값인지 무시해도 되는 값인지에 관해서는 경험 지식과 실험에 의해 결정이 됩니다. 추세에서 벗어나는 이상치를 제거하는 방법에 대해 알아보겠습니다. Hampel filter: 현재 시점 주변 데이터들의 중앙값 대비 얼마나 이상한가를 판단하는 함수 hampel(data, k=window수, t=표준편차 값 범위) 정해진 window구간 내 중앙값을 구함 각 샘플에 대한 중앙값의 절대 오차를 구함 절대 오차의 표준편차를 구함 현재 값의 절대 오차가 위 표준편차를 넘으면 중앙값으로 대체 x = sin(2*pi*(0:99)/100)..
2020.05.04 -
[비정형 데이터] 07. 신호 데이터 스무딩하기
신호 데이터는 중요한 패턴에 대한 신호만 추출하고 싶은데 잔피크들이 너무 많을 때 스무딩을 이용하여 해결할 수 있습니다. 스무딩하는 방법에 대해 알아보겠습니다. Savitzky-Golay Filtering: data를 구간화해서 다차원함수에 적용하는 filtering 방법 pracma 패키지의 savgol(data, 필터링 구간, 다항함수의 차수)함수 # 정현파 생성 ts = sin(2*pi*(1:1000)/200) t1 = ts+rnorm(1000)/10 # 직접 그려보고 window값을 정해야함 t2 = savgol(t1,51) # pracma package t3 = savgol(t1,101) t4 = savgol(t1,5) par(mfrow=c(2,2)) plot(1:1000,t1,col="grey..
2020.05.04 -
[비정형 데이터] 06. 어떤 특징을 추출할 수 있을까? - 주파수
주파수 신호 특징 시간에 따라 변하는 신호들은 더 기본적인 신호들로 쪼갤 수 있습니다. 이때 여러 주파수를 가진 신호들로 나타낼 수 있는데 이를 신호의 (주파수) 스펙트럼이라고 합니다. 이 분석은 시간축에 표현했을 때 보이지 않았던 특성들이 주파수 관점에서 보았을 때 파악할 수 있고 다른 신호와 비교 분석 시 유용합니다. 주기 신호는 같은 주기를 갖는 정현파(기본파)와 이 정현파의 정수배 주파수를 갖는 정현파(고주파)들의 합으로 표현할 수 있습니다. 이때, 기본파는 신호의 표현을 바꾸는데 바탕 역할을 하는 신호를 뜻하고 고조파는 기본파가 가지는 주파수의 몇 배에 해당하는 주파수를 가지는 신호를 말합니다. 그렇다면 정현파는 무엇일까요? 정현파는 등속 회전 운동체의 위치를 시간에 대해 그린 파형을 갖는 신호..
2020.05.04 -
locals()와 globals() 차이
locals()는 지역변수 globals()는 전역변수라고 합니다. 변수가 저장되는 위치에 따라 나뉘는데 지역변수는 함수 내에서 선언된 변수이고 전역변수는 함수 밖에서 선언된 변수입니다. 전역변수는 특정한 함수 내부에서 선언된 것이 아니기 때문에 프로그램 전체에서 공유되지만 지역변수는 자신이 선언된 함수에서만 사용할 수 있고 함수 밖에서는 읽을 수도 사용할 수도 없습니다. 이때 중요한 사항이 있습니다. 전역변수는 프로그램 어디서든 읽을 수는 있지만 함수 안에서 수정할 수는 없습니다. 파이썬에서는 locals()함수와 globals()함수를 이용하여 할당된 변수들과 속성값들을 모두 확인할 수 있습니다. locals() globals() 이때 결과값은 dictionary형태로 들어가고 key값만 추출하여 변..
2020.05.01 -
[비정형 데이터] 05. 어떤 특징을 추출할 수 있을까?Peak
저번 포스팅에 이어 신호처리를 위한 특질을 추출하내는 것입니다. 이번 포스팅은 peak특질을 추출하는 것입니다. peak는 아래 그림과 같이 신호 데이터에서 위로 볼록 올라온 부분으로 peak 간 발생 간격, peak의 크기 등을 특질화하여 변수로 사용할 수 있습니다. peak는 pracma 패키지를 이용하여 구할 수 있습니다. pracma 패키지는 수치 분석 및 선형 대수, 수치 최적화, 미분 방정식, 시계열 등과 관련된 함수를 제공해주는 패키지로 기존 matlab기능이 R로 구현되어 있습니다. 신호 데이터를 만들어 peak를 찾아보겠습니다. library(pracma) x = seq(0, 1, len = 1024) pos = c(0.1, 0.13, 0.15, 0.23, 0.25, 0.40, 0.44,..
2020.04.30 -
[비정형 데이터] 04. 어떤 특징을 추출할 수 있을까? - 급격하게 변하는 시점
시간에 따라 변하는 신호의 패턴이 갑자기 변하는 구간. 즉, 급격한 변화를 탐지하는 방법입니다. 시계열 데이터는 어떤 변화를 감지할 것인가? 관점에서 평균 또는 분산, 평균과 분산이 변하는 구간을 찾아내어 변화하는 위치를 하나의 특성값으로 간주하여 tidy data 형태로 만들 수 있습니다. 이렇게 변하는 구간은 changepoint 패키지를 이용하여 찾아냅니다. 난수를 생성하여 신호데이터를 만들어 급격하게 변하는 곳을 찾아보도록 하겠습니다. library(changepoint) 평균의 변화량이 발생하는 시점 cpt.mean(data): 평균의 변화량이 발생하는 시점에 관한 내용이 객체로 반환 cpts(cpt.mean(data)): 평균의 변화량이 발생하는 시점을 벡터로 반환 # 다음번에도 같은 난수가 ..
2020.04.29