데이터 라벨링하는 이유

 

훈련되지 않은 장치에 이미지 라벨링을 통해 장치가 객체를 인지할 수 있게 해주는 작업

 

라벨링 박스

객체 전체를 잡되 타이트하게 잡아라

눈에 좀 보인다 싶으면 다 잡아라 (블러되어있거나 어느정도 가려져있거나 못하겠다 싶은 것은 검은 박스로 가려버려라)

 

bbox는 [x,y,w,h] 또는 [x1,y1,x2,y2]로 두점 좌표로 구성 되어있지만( yolo는 bbox의 중간 위치가 좌표값으로 사용된다 [x_center, y_center, w, h] 이때 좌표 값으로 보통 이미지내 절대적인 픽셀 위치가 아닌 이미지에 대한 상대적 값 사용)

polygon은 다각형 모양으로 객체의 가시영역 외곽선을 따라 점을 찍어 그리는 라벨링 방법

polyline은 여러 개의 점을 가진 선을 활용하여 특정 영역을 라벨링하여 인도/차선 구분 

point는 특정 지점을 라벨링하는 작업으로 안면 인식을 통한 감정인식 등에 사용

 

 

 

학습 목적에 따라 라벨링(labeling) 또는 어노테이션(annotation)으로 데이터를 준비

-분류(Classification): 분류 작업에서는 주어진 이미지에 대해 단일한 라벨 정보만 필요. 이 경우 라벨링(labeling) 작업을 수행

-객체 탐지(Detection): 객체 탐지 작업에서는 이미지 내의 개별 객체를 탐지하고, 객체의 위치와 경계 상자(bounding box) 등의 메타 정보를 기록. 이를 위해 주로 어노테이션(annotation) 파일을 사용하며, 개별 객체의 위치와 클래스 라벨을 기록

-시맨틱 세그멘테이션(Semantic Segmentation): 시맨틱 세그멘테이션은 이미지를 픽셀 단위로 분할하여 각 픽셀이 어떤 클래스에 속하는지 알려주는 작업입니다. 각 픽셀에 대한 클래스 라벨을 기록하기 위해 어노테이션(annotation) 파일이 사용. 픽셀 단위의 라벨 정보를 기록하여 이미지를 세그멘테이션하는 것 (instance segmentation은 또 다른 것임, 각 객체에 대한 정보)

 

어노테이션(Annotation)은 이미지 처리 작업에서 추가적인 정보를 기록하기 위한 양식. 주로 JSON이나 XML 형식으로 표현되며, 때에 따라 CSV나 TXT 등의 형식도 사용될 수 있음

 

 

라벨링 툴

1. makesense : 브라우저 형태로 사용가능한 라벨링 도구

2. Roboflow : 브라우저 형태로 사용가능한 라벨링 도구

 

json 파일

 데이터를 구조화하여 저장하고 교환하기 위한 경량의 데이터 형식

xml 파일

데이터를 저장하고 전송, 데이터와 그 구조를 기술하는데 사용, 속성과 값으로 구성, 계층 구조로 구성

 

 

'machine_learning' 카테고리의 다른 글

데이터 가공 구축 프로세스  (0) 2023.06.22
데이터셋과 데이터로더, Pytorch 설치  (1) 2023.06.16
데이터 수집과 전처리  (0) 2023.06.14
통계 - 인자분석  (0) 2023.06.02
통계 - 주성분 분석(PCA)  (0) 2023.06.01

 

 

데이터 수집 방법

1. 공개 데이터 사용

2. 크롤링 데이터 사용(python crawling...)

3. 직접 촬영

 

데이터 전처리

수집된 데이터 -> 정제 -> 이미지 데이터 다루기(각도 조절, 채도 높이기 등)

...->데이터 학습

 

이미지 데이터 라벨링 소개

외부나 도커를 이용해 내부에서 작업하는 방법이 있다.

툴에는 CVAT이 있고 깃허브에 도커 파일이 따로 있어 내부적으로 프라이빗한 작업 가능

 

데이터 어노테이션 파일

라벨링 작업이후 생기는 파일로 XML이나 JSON 파일이 생긴다

읽고 활용할 수 있어야 한다.

 

데이터 나누기

훈련 세트와 데스트 세트로 나눈다.(양성과 음성 클래스 적절히 섞기)

 


데이터 수집 방법

 

1. 웹 스크래핑 : 웹 페이지에서 데이터 추출

2. 소셜 미디어 모니터링 ( 대화 , 키워드, 해시태그 등 수집 )

3. 데이터 크롤링 : 웹 사이트 링크 따라가며 데이터 수집

4. IoT 센서 데이터 수집 : 스마트 시티, 스마트 홈 등에서 발생하는 데이터 수집

5. 로그 데이터 수집: 서버 네트워크 등에서 발생하는 로그 데이터 수집하는 기술

 

수집하고자 하는 데이터 종류아 목적에 따라 선택

 

데이터 수집에서 고려할 것

 

1. 시점 변화 : 객체 인식이나 추적에 필요하며 객체나 장면의 위치 방향 각도 크기 등이 서로 다른 시점에서 촬영된 데이터 수집 필요

2. 척도 변형 : 객체나 장면 크기에 따른 차이를 의미, 동일한 객체나 장면이 서로 다른 크기로 촬영된 이미지들 간의 차이를 고려하여 데이터 수집 시 다양한 크기의 이미지 수집 or 이미지 축소 또는 확대하여 데이터셋 보강(augmentatation 기술 활용)

3. 변형: 대상의 형태가 변형될 때.. 데이터를 회전, 이동, 대칭하여 수집(augmentatation 기술 활용)

4. 가려짐 : 다양한 뷰 포인트에서 객체 촬영하여 데이터셋 보강, de-occlusion 기술 활용

5. 조명 조건  (다양한 조건 환경에서 데이터 수집)

6. 배경 혼란 : 배경이 복잡할 경우 검정색마스크로 가려버리거나, 딥러닝 기술을 활용한 세그멘테이션 알고리즘이 효과적 해결

7. 클래스 내 변형 : 클래스 간에 속하는 객체들 간의 차이를 최대한 줄이는 게 좋다( 클래스가 차라면 기아 중형차만 모으기...)

 

이미지 데이터셋 공유 사이트

MNIST : 손글씨 사이트

CIFAR : 10개 클래스 있다

ImageNet :cv 경진대화에서 사용되는 데이터셋 - 분류 문제에 활용

COCO : 오브젝트 디텍션에 활용되는 데이터셋

DOTA : 항공 이미지

CelebA : 유명인 얼굴 데이터셋 GAN 모델에서 많이 활용

AI Hub : 국내 데이터셋 플랫폼

Kaggle : 보통 예측이나 분석에 활용되는 데이터셋 

 


크롤링

인터넷 상의 웹 페이지에서 데이터를 수집하는 과정, 일반적으로 크롤러 또는 스파이더라고 불리는 소프트웨이 사용

웹스크래핑과 연관되어있으며 크롤링은 웹 스크래핑의 프로세스 중 하나.

더보기

크롤링은 웹 스크래핑의 하위 과정 중 하나입니다. 웹 스크래핑은 웹 페이지에서 정보를 추출하는 전반적인 과정을 의미하며, 이는 크롤링과 데이터 추출 및 가공 단계로 구성됩니다.

 

크롤링은 웹을 돌아다니면서 웹 페이지를 자동으로 탐색하는 과정을 말합니다. 크롤러(또는 스파이더)라고 불리는 프로그램이 웹 페이지를 방문하고 링크를 따라가며 다른 페이지를 찾아내는 것입니다. 크롤러는 일반적으로 로봇 또는 봇으로 알려져 있으며, 웹 사이트의 구조를 파악하고 데이터 수집 대상을 확인합니다.

 

크롤러가 웹 페이지를 탐색하면서 필요한 정보를 추출하기 위해 웹 스크래핑 기술을 사용합니다. 웹 스크래핑은 HTML 문서를 파싱하여 원하는 데이터를 추출하는 과정을 말합니다. 이러한 데이터 추출 작업은 CSS 선택자, XPath, 정규 표현식 등을 사용하여 웹 페이지의 특정 요소를 식별하고 추출하는 방식으로 이루어집니다.

 

따라서 크롤링은 웹 스크래핑의 하위 과정 중 하나로, 데이터를 수집하기 위해 웹 페이지를 탐색하는 역할을 담당합니다. 웹 스크래핑은 크롤링으로부터 얻은 웹 페이지에서 필요한 데이터를 추출하여 가공하는 단계를 포함합니다.

 

 

이미지 크롤링

인터넷 상 존재하는 이미지 자동 수집

 

필요한 지식


HTTP(Hypertext Transfer Protocol):
HTTP는 인터넷에서 데이터를 주고받기 위한 프로토콜입니다. 클라이언트(일반적으로 웹 브라우저)가 서버에 요청을 보내면, 서버는 해당 요청에 대한 응답을 클라이언트에게 전송합니다. HTTP는 주로 웹 브라우저와 웹 서버 간에 사용되며, 클라이언트와 서버 간의 텍스트 기반 메시지 교환을 통해 이루어집니다.(웹 프로토콜: 웹 서비스를 제공하기 위해 사용되는 통신 규약으로 가장 일반적인 웹 프로토콜은 HTTP)

HTTP 요청(Request):
HTTP 요청은 클라이언트가 서버에게 특정 동작을 요청하는 메시지입니다. 주요 구성 요소는 다음과 같습니다:

메서드(Method): 요청의 종류를 나타냅니다. 일반적인 메서드로는 GET(리소스 조회), POST(데이터 전송), PUT(리소스 업데이트), DELETE(리소스 삭제) 등이 있습니다.


경로(Path): 서버에서 요청하는 리소스의 경로를 나타냅니다.


헤더(Headers): 요청에 대한 부가 정보를 포함합니다. 예를 들어, 사용자 에이전트 정보, 인증 정보 등이 있습니다.


본문(Body): POST나 PUT 메서드와 함께 전송되는 데이터를 포함합니다.


HTTP 응답(Response):
HTTP 응답은 서버에서 클라이언트에게 보내는 메시지로, 요청에 대한 처리 결과를 담고 있습니다. 주요 구성 요소는 다음과 같습니다:

상태 코드(Status Code): 요청 처리의 결과를 나타냅니다. 일반적인 상태 코드로는 200(성공), 404(찾을 수 없음), 500(내부 서버 오류) 등이 있습니다.


헤더(Headers): 응답에 대한 부가 정보를 포함합니다. 예를 들어, 콘텐츠 유형, 길이 등이 있습니다.


본문(Body): 응답으로 전송되는 데이터를 포함합니다. 일반적으로 HTML, JSON, 이미지 등이 포함될 수 있습니다.

 

 

html/css/js 에 대한 이해도 필요

 

이미지 크롤링에 사용되는 라이브러리(크롤링은 라이브러리가 항상 바뀐다!)

1.Request : 파이썬에서 http요청을 보내기 위한 라이브러리

2.BeautifulSoup : HTML 또는 XML 문서를 파싱하고, 문서 내에서 특정 요소를 검색하고 추출하는 기능을 제공

3. scrapy : 파이썬으로 작성된 웹 크롤링 프레임워크

4. 셀레늄(Selenium) : 자동화 웹 어플리케이션 테스트를 위한 프레임 워크-크롤링과 같은 웹스크래핑 작업에도 사용 가능

 


이미지 전처리

realworld에 속한 이미지로 학습 필요 애니메이션이나 일러스트 합성 이미지 제거

 

크기 조정 (Resizing): 이미지의 크기를 변경하여 원하는 크기로 조정

자르기 (Cropping): 이미지에서 관심 영역을 추출하기 위해 이미지의 일부분을 잘라내는 것

회전 (Rotation): 이미지를 특정 각도로 회전시키는 것

밝기 조정 (Brightness Adjustment): 이미지의 밝기를 조절하여 전체적인 명암을 변경하는 것


색상 변환 (Color Conversion): 이미지의 색상 공간을 변환하는 것

필터링 (Filtering): 이미지에 필터를 적용하여 이미지를 부드럽게 하거나 엣지를 강조하는 등의 효과

정규화 (Normalization): 이미지의 픽셀 값을 정규화하여 일관된 범위로 조정하는 것

'machine_learning' 카테고리의 다른 글

데이터셋과 데이터로더, Pytorch 설치  (1) 2023.06.16
데이터 수집과 전처리2  (0) 2023.06.14
통계 - 인자분석  (0) 2023.06.02
통계 - 주성분 분석(PCA)  (0) 2023.06.01
통계 - 공분산과 상관행렬  (0) 2023.06.01

다변량 통계 분석 기법 중 하나로 다양한 관찰 변수들 사이의 내재된 구조를 이해하고 설명하는 데 사용

목적은 데이터의 차원 축소와 변수 간의 상관관계 파악, 잠재적 요인 식벼르 변수 간의 상관관계 파악이 있다.

 

인자분석 활용

사회과학 및 교육 분야

경영 및 마케팅 분야

의학 및 생물학 분야

심리학 및 행동과학 분야

이미지 및 음성 처리 분야

 

데이터 구조를 파악하고 해석하는 도구로 사용


작업해야 하는 것

 

인자분석 데이터의 결측치 처리

인자 분석을 수행할 때 결측치가 있다면 처리해야 한다,

1. 결측치 있는 부분을 삭제하거나 제외하고 분석

2. 대체값 사용

3. 예측 모델을 사용한 대체-다른 변수들의 정보를 활용하여 예측모델을 통해 대체(결측치를 예측)

4. EM 알고리즘 : EM알고리즘은 결측치가 있는 데이터를 활용하여 퇴대우도추정을 수행, 결측치와 관련된 변수들 간의 상관관계를 추정하고 이 기반으로 결측치를 대체\

 

인자분석 데이터의 적절한 스케일링

변수의 표준화: 표준화는 변수의 평균을 0으로 표준편차를 1로 조정

 

인자 모델의 설정 - 인자의 개수 결정 방법

1. Scree plot 스크리 플롯

2. Kaiser criterion 카이저 기준

더보기

주가시장에서 스크리 플롯은 주가의 패턴을 시각화하여 분석하고 예측하는 데 사용되는 도구이며, 카이저 기준은 주가의 추세를 분석하기 위한 이동 평균 지표 중 하나입니다. 이러한 기술적 분석 도구들은 트레이더나 투자자들이 주식 시장에서 결정을 내릴 때 참고할 수 있는 도구로 활용될 수 있습니다.

인자 모델의 설정

인자 분석은 몇가지 가정을 정제로 수행-인자독립성, 인자 정규성

1. 주성분 분석 : PCA

2.  최대우도 추정법: MLE

 

인자 추정 방법 선택 및 적용 소개

1. 분석 목적 설정

2. 데이터 탐색 -  데이터 탐색하여 변수들 간의 상관 관계, 분포등 파악

3. 인자 축소 방법 선택

4. 방법 적용

5. 결과 해석

 


인자 분석 - 고유값, 고유 벡터 해석

 

고유값:

1. 고유값은 인자 분석에서 추출된 주성분의 중요도

2. 각 주성분에 대해 고유값이 할당, 해당 주성분이 원본 데이터의 분산을 얼마나 잘 설명하는지 나타냄

3. 일반적으로 내림차순 정렬, 상위 고유값이 데이터의 변동성 더 잘 나타냄

 

고유벡터:

1. 고유 벡터는 인자 분석에서 추출된 주성분의 방향

2. 각 주성분에 대해 해당 주성분의 방향 정의

3. 원본 변수들 간의 선형 조합으로 이루어져 있고 해당 조합 계수 나타냄

 

인자의 해석 및 명칭 지정

-인자는 주로 변수들 간의 공통된 변동성을 나타냄

- 인자의 명칭은 해당 인자를 명확하게 구분하고 이해하기 쉽게 하기 위해 지정

 

인자의 구성

-인자는 주로 원본 변수들의 선형 조합

-인자는 원본 변수들의 가중치를 조합하여 생성

-인자의 가중치는 해당인자가 어떤 특성을 나타내는지 결정

 

 

인자 분석 결과에서 각 인자의 가중치를 확인하여 해당 인자와 원본 변수들 간의 관계 파악하여 인자를 해석한다

인자 분석에서 인자의 해석 가능성과 실용성은 중요한 평가 요소이나 주관적 요소도 포함되기 때문에 전문가들과 협업하여 검토할 것.


인자분석의 한계

 

가정:

1. 선형적 가정: 비선형 관계 경우 인자분석 불가할 수도있다

2. 독립성 가저이 변수들 간의 독립성 가정, 만약 변수들 간 상호 의존성이 존재하면 결과 왜곡

3. 정규성 가정

 

한계:

1. 해석의 주관성

2. 정보 손실: 인자분석은 원본 데이터의 정보를 축소하고 요약하기 때문

3. 표본 크기: 작은 표본일 경우 신뢰도 하락

 

인자분석의 확장된 방법인 구조 방정식 모델링 사용하여 보완

 

 

'machine_learning' 카테고리의 다른 글

데이터 수집과 전처리2  (0) 2023.06.14
데이터 수집과 전처리  (0) 2023.06.14
통계 - 주성분 분석(PCA)  (0) 2023.06.01
통계 - 공분산과 상관행렬  (0) 2023.06.01
[통계] 시계열 데이터-이상치  (0) 2023.05.31

PCA의 개념

데이터를 더 낮은 차원으로 표현함으로써 (변수양 줄이기) 데이터의 복잡성을 감소시키고 변수 간의 상관 관계 및 패턴을 파악, 다차원 데이터의 여러 변수 중 중복되는 정보나 상호 연관성을 가지고 있는 변수등을 찾아내 고차원 데이터를 저차원 데이터로 변환하여 데이터의 중요 특징과 변동성은 유지하며 차원은 줄인다.

예시) 월별, 주별 자전거 대여에서 월과 주는 겹칠 수 있는 변수

 

또 차원축소를 통해 데이터의 정보를 최대한 보존, 주성분은 원본 데이터를 설명하는 데 가장 기여가 큰 데이터들을 남긴다. 

 

PCA의 효과

데이터의 차원 축소, 변수 간 상관 관계 파악, 잡음 제거, 데이터 시각화, 다중공선성 해결 등 다양한 분야에서 유용하게 활용. 

 

PCA의 전처리

 

데이터 전처리 : PCA를 실행하기 전 전처리는 매우 중요!

ㄴ 변수 스케일링 : 변수들 간에 크기 차이가 클 경우 PCA는 크기가 큰 변수에 더 큰 가중치 부여할 수 있다

ㄴ변수 상관관계 : 중복이 심한 변수는 제거

ㄴ 이상치 처리

ㄴ결측치 처리

 

데이터의 정규화,표준화 등 전처리하는 법

ㄴ 데이터 표준화: 데이터 평균을 0으로 표준편차를 1로 조정

ㄴ이외에도 로그 변환, Box-cox 변환 등 다양한 전처리 방법이 있다.

 

공분산 행렬의 PCA에서 활용원리

1. 공분산 행렬 계산

2. 고유값과 고유벡터 계산

3. 주성분 선택

'machine_learning' 카테고리의 다른 글

데이터 수집과 전처리  (0) 2023.06.14
통계 - 인자분석  (0) 2023.06.02
통계 - 공분산과 상관행렬  (0) 2023.06.01
[통계] 시계열 데이터-이상치  (0) 2023.05.31
[통계] 시계열 데이터  (0) 2023.05.30

공분산은 두 변수 사이의 관계를 나타내는 통계적 개념이고, 상관 행렬은 변수들 간의 상관 관계를 표준화한 행렬로 다중 변수 분석에서 유용하게 사용

 

공분산(Covariance): 두변수가 함께 변하는 정도

함께 증가하거나(양의 비례관계) 하나의 변수가 증가할 때 하나는 감소(반비례)

-관계의 존재 여부

-관계의 강도 : 0이면 관계가 약하고 1(양의 관련성, 정비례) 혹은 -1에 가까울 수록 관계성(음의 관련성, 반비례)이 강한 것

-단위 의존성 : 공분산은 변수의 단위에 영향을 받기 때문에 공분산 값 만으로는 변수 간의 관성성 정도 비교 어렵

 

상관 행렬(Correlation Matrix): 공분산을 -1에서 1 사이로 나타낸 것.  상관 계수가 1에 가까울수록 강한 양의 선형 관계가 있음을 나타내고, -1에 가까울수록 강한 음의 선형 관계가 있음을 나타냄. 0에 가까운 상관 계수는 두 변수 사이에 선형 관계가 없거나 약한 선형 관계가 있음을 나타냄.

 


활용 사례

-두 변수간의 의존성을 파악하여 두 변수들 사이에 패턴과 경향 이해하여 예측 모델링에 활용

- 변수 선택 

-차원 축소

-데이터 시각화(예시:히트맵)

 

즉 변수들 사이에 뭐가 필요한지 불필요한지 나누는 지표


공분산 행렬의 개념

 

여러 변수들 간의 공분산을 나타내는 정사각 행렬, 각 행과 각열은 각 변수로 이루어져 있다. 

예를 들어 공분산을 파악하고자 하는 변수가 5개라고 해보자

c와 b의 상관관계 (3,2) b와 c의 상관관계는 (2,3) 이런 식으로 이루어져 있을 것이고 대각선은 자기 자신과의 상관관계이므로 무조건 상관관계가 1이 나온다.

 

상관행렬의 성질 소개

-대칭성: (I,J)의 성분 = (J,I)의 성분

-대각선의 값 : 자기 자신(상관관계=1)

 

공분산과 상관 행렬의 차이

공분산은 두 변수간의 변동성을 측정하는 지표, 상관행렬은 정규화 된 지표.

공분산과 상관 행렬은 변수들 간 관계를 이해하는 데 사용되지만 상관 행렬은 변수들 간의 선형관계를 더 정확하고 표준화된 방식으로 나타낸다. 

 

다중 공선성

회귀 분석 같은 다변량 분석에서 발생할 수 있는 문제로 독립 변수들 간에 강한 선형 관계가 있는 경우 발생

'machine_learning' 카테고리의 다른 글

통계 - 인자분석  (0) 2023.06.02
통계 - 주성분 분석(PCA)  (0) 2023.06.01
[통계] 시계열 데이터-이상치  (0) 2023.05.31
[통계] 시계열 데이터  (0) 2023.05.30
통계기반의 데이터분석(1)  (1) 2023.05.22

이상치

-데이터 집합에서 동떨어진 값

-발생 요인은 잘못된 측정, 데이터 수집 오류, 자연적 이벤트 등

-분석과 예측에 부정적 영향을 미치며 잘못된 결과나 왜곡된 모델 유발

-교차검증을 통해 검수하여 찾아내는 것이 좋다

 

이상치 탐지의 중요성과 활용성

-데이터 품질 향상

- 모델 정황성 향상

-이상 패턴 탐지 : 특이한 패턴, 동향, 문제점 식별(금융 분야에서 이상 거래 탐지, 생산라인의 이상 동작 감지하여 장비 고장 예방, 데이터 이상치의 원인을 분석함으로서 비지니스 프로세스 최적화하고 데이터 품질 향상 가능)

 

1.이동 평균과 이동 표준 편차를 사용한 이상치 탐지

-이동 평균 계산 : 추세 파악

-이동 평균편차 계산 : 변동성 파악

-임계값 설정: 이동평균에 일정한 배수를 곱한 값과 이동 표준편차에 일정한 배수를 더한 값으로 설정, 이상치를 정의

-이상치 탐지: 설정한 임계값 사용하여 데이터 포인트가 이상치인지 여부 판별

 

# 임계값 설정에 주의해야한다(너무 넓게 잡으면 이상치가 아닌데 이상치로 판별)

 

 

원본 데이터 그래프

 

이동 평균, 이동 표준편차, 임계값, 이상치 그래프

임계값 설정 : 이동평균 + 일정배수 x 이동표준편차

 

2. 지수 평활법을 활용한 이상치 탐지

-시계열 데이터의 추세와 계절성을 고려할여 데이터를 부드럽게 탐지하는 방법

-추세(Trend)를 추정하고 전차(Residual)를 계산

-전차가 특정 임계값을 초과하는 경우 이를 이상치로 판단

 

trend = add는 지수 평활법 모델에서 추세를 가지는 모델을 설정하는 파라메터

original= 원본 시계열 데이터, trend = 지수 평활법에 의해 추정된 추세, outlier= 이상치로 편차가 미리 설정한 임계값보다 클 때

 

3. z-점수 기반 이상치 탐지

-통계적 방법 중 하나로 데이터 평균과 표준편차를 활용하여 이상치 탐지

-주어진 데이터 포인트가 평균에서 얼마나 떨어져있는지를 표준편차로 나타내는 z-점수로 계산하고 이 기준으로 이상치 판단

-임계값은 2 이상으로 설정되며 이를 초과하면 이상치

- 이 방법은 데이터가 정규분포를 따르는 가정을 전제로 함

-절차 수행 조건 : (1) 시계열 데이터 생성 (2) 평균과 표준편차 계산 (3) z-점수 계산 (4) 이상치 탐지 (5) 이상치 처리

이상치를 산점도로 표현

 

4. 스무딩

-시계열 데이터에서 잡음이나 불규칙한 변동을 완화시키는 기법

-주목적은 추세 신호를 강조하고 잡음을 제거하여 추세 분석에 도움을 주고 데이터의 부드러운 버전을 생성하여 예측 모델의 성능 향상, 이상치나 잡음을 완화하는 것

-대표적인 방법으로는 이동평균과 지수평활법이 있다. 

이동평균을 이용한 스무딩
지수평활법을 이용한 스무딩

-데이터가 긴 시간 동안 변하지 않은 경우에는 이동평균을 사용하는 것이 적절할 수 있다

-데이터가 짧은 시간 동안 빠르게 변화하거나 최신 정보에 더 관심이 있는 경우에는 지수평활법을 사용하는 것이 적절할 수 있다.

 


트랜드

시계열 데이터에서 장기적으로 증가하거나 감소하는 패턴으로 데이터의 추세를 보여주며 데이터 측성 파악에 도움

1. 상향 트랜드 : 데이터가 시간에 지남에 따라 증가하는 경향

2. 하향 트랜드 : 데이터가 시간에 지남에 따라 감소하는 경향

3. 수평 트랜드 : 데이터가 시간에 지남에도 변함없는 경향

 

파란색은 오리지널 데이터, 주황선은 트랜드를 나타낸다.보면 일주일 간격으로 동일한 패턴이 나타나는 걸 알 수 있다.


이상치 처리의 한계와 제약 사항

-이상치 정의의 주관성 : 이상치는 상황에 따라 다르게 정의될 수 있으며 이는 주관적인 판단을 따를 수 있다

-이상치 감지의 어려움 : 드물거나 예상치 못한 패턴을 가지는 이상치는 감지가 어렵다

-이상치 처리의 영향 : 이상치를 제거하거나 보정하는 과정은 데이터의 특성 변경 가능하여 결과 왜곡 가능

 


정규화와 변환

 

정규화 변환의 필요성

1. 데이터 스케일 조정 : 시계열 데이터는 다양한 크기와 범위를 가지고 있는데 이런 스케일 차이는 모델링이나 분석에 어려움을 주니 정규화 필요

2. 정규 분포 가정 : 많은 시계열 분석 및 예측 모델은 데이터가 정규분포를 따른다고 가정, 정규화화 변환을 통해 데이터를 정규 분포에 가깝게 변환하연 모델의 가정을 만족시킨다

3. 이상치 처리 : 이상치는 시계열 데이터 분석에서 중요한 문제, 정규화와 변환을 사용하여 이상치를 탐지하고 처리

4. 시계열 패턴 강조: 정규화와 변환은 시계열 데이터의 패턴을 강조하는데 사용

5. 모델 안정성 향상: 데이터가 안정된 상태여야만 정확한 예측하는 일부 시계열 데이터 모델이 있기 때문

 

주요 정규화와 변환 방법

1. 최소-최대 정규화( 데이터 값을 최소값과 최대값 사이의 범위로 변환, 일반적으로 0-1사이로)

2. z-점수 정규화(데이터 평균은 0, 표준편차는 1로 조정)

3. 로그 변환: 데이터에 로그함수 적용하여 비선형적 패턴을 선형으로 변형

4. 차분 : 현재 관측값과 이전 관측값 간의 차이를 계산하여 추세나 계절성을 제거, 데이터의 패턴에 집중

5. 박스-콕스 변환: 양수인 데이터의 정규화를 위해 사용되는 변환 방법

 

 


최소-최대 정규화의 과정

1. 데이터의 최소값과 최대값 계산

2. 각 데이터 포인트에 대해 위의 수식을 적용하여 정규화된 값 계산

3. 계산된 정규화된 값은 원본 데이터의 범위인 0-1사이에 위치(=표준화)

 

표준화 수식과 계산 방법

1. 데이터의 평균(mean) 계산

2. 데이터의 표준편차 계산(std)

3. 각데이터의 포인트에서 평균을 빼고 그 결과를 표준편차로 나누어 표준화된 값 계산

 

로그변환 

데이터의 스케일을 조정하고 분포를 변환하기 위해 로그 함수를 적용하는 변환 방법 , 주로 금융 데이터, 경제 데이터, 자연 현상 등에서 사용.데이터의 분포를 정규 분포에 가깝게 만들어주어 선형 모델의 가정을 충족시키는 데 도움을 준다. 또 로그 변환은 양수인 값에만 적용이 가능하며 0이나 음수는 불가능하다

 

차분 

차분은 시계열 데이터에서 현재 값과 이전 값 간의 차이를 계산하는 것

수식은 아래와 같다.

차분(시점t) = 데이터(시점t) -  데이터(시점 t-1)

시계열 데이터의 불규칙성을 제거하고 정상성을 가지는 시계열 데리터로 변환.

 

박스-콕스 변환 

데이터의 정규성을 개선하기 위해 사용되는 변환방법으로 양수인 데이터에서만 적용 가능하다.

적용 방법

1. 데이터가 양수인지 확인

2. lambda(변환된 데이터)값의 범위 지정, 여러 lambda 값에 대해 박스-콕스 변환 수행

3. 각각 변환된 데이터에 대해 정규성 검정 등을 통해 최적의 lambda 값 선택

4. 선택된 lambda 값을 사용하여 박스콕스 변환

 

정규화와 변환 방법 선택시 고려사항

1. 변수 간 상관 관계 

2. 목적과 분석 방법

 

데이터의 특성과 분석 목적에 따른 선택 가이드 제시

1. 데이터 분포의 형태

-정규분포 경우: 정규화나 표준화 적용

-비정규분포 경우: 로그 변환, 박스-콕스 변환 등 비선형 변환 고려

2. 스케일의 조정

3. 이상치 처리

4. 변수 간 상관 관계

-변수 간 상관관계가 높을 때 : 차분, 로그 변환

-트랜드나 계절성 있을 때 : 차분이나 로그 변환

5. 분석 목적

-선형 회귀 분석: 정규화나 표준화를 사용하여 변수 간 관계 분석

-시계열 분석: 차분, 로그변환을 활용한 시계열 패턴 분석

6. 결과 해석:

-정규화나 표준화를 적용한 경우: 해석이 용이하고 변수 간 상대적 영향력 비교 

-비선형 변환 적용한 경우: 원래 데이터와의 관계를 해석할 때 주의

 

 

 

 

'machine_learning' 카테고리의 다른 글

통계 - 주성분 분석(PCA)  (0) 2023.06.01
통계 - 공분산과 상관행렬  (0) 2023.06.01
[통계] 시계열 데이터  (0) 2023.05.30
통계기반의 데이터분석(1)  (1) 2023.05.22
MLOps (2) Azure의 ML service  (0) 2023.05.08

+ Recent posts