눈에 좀 보인다 싶으면 다 잡아라 (블러되어있거나 어느정도 가려져있거나 못하겠다 싶은 것은 검은 박스로 가려버려라)
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 파일
데이터를 저장하고 전송, 데이터와 그 구조를 기술하는데 사용, 속성과 값으로 구성, 계층 구조로 구성
크롤링은 웹 스크래핑의 하위 과정 중 하나입니다. 웹 스크래핑은 웹 페이지에서 정보를 추출하는 전반적인 과정을 의미하며, 이는 크롤링과 데이터 추출 및 가공 단계로 구성됩니다.
크롤링은 웹을 돌아다니면서 웹 페이지를 자동으로 탐색하는 과정을 말합니다. 크롤러(또는 스파이더)라고 불리는 프로그램이 웹 페이지를 방문하고 링크를 따라가며 다른 페이지를 찾아내는 것입니다. 크롤러는 일반적으로 로봇 또는 봇으로 알려져 있으며, 웹 사이트의 구조를 파악하고 데이터 수집 대상을 확인합니다.
크롤러가 웹 페이지를 탐색하면서 필요한 정보를 추출하기 위해 웹 스크래핑 기술을 사용합니다. 웹 스크래핑은 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): 이미지의 픽셀 값을 정규화하여 일관된 범위로 조정하는 것
주가시장에서 스크리 플롯은 주가의 패턴을 시각화하여 분석하고 예측하는 데 사용되는 도구이며, 카이저 기준은 주가의 추세를 분석하기 위한 이동 평균 지표 중 하나입니다. 이러한 기술적 분석 도구들은 트레이더나 투자자들이 주식 시장에서 결정을 내릴 때 참고할 수 있는 도구로 활용될 수 있습니다.
인자 모델의 설정
인자 분석은 몇가지 가정을 정제로 수행-인자독립성, 인자 정규성
1. 주성분 분석 : PCA
2. 최대우도 추정법: MLE
인자 추정 방법 선택 및 적용 소개
1. 분석 목적 설정
2. 데이터 탐색 - 데이터 탐색하여 변수들 간의 상관 관계, 분포등 파악
3. 인자 축소 방법 선택
4. 방법 적용
5. 결과 해석
인자 분석 - 고유값, 고유 벡터 해석
고유값:
1. 고유값은 인자 분석에서 추출된 주성분의 중요도
2. 각 주성분에 대해 고유값이 할당, 해당 주성분이 원본 데이터의 분산을 얼마나 잘 설명하는지 나타냄
3. 일반적으로 내림차순 정렬, 상위 고유값이 데이터의 변동성 더 잘 나타냄
고유벡터:
1. 고유 벡터는 인자 분석에서 추출된 주성분의 방향
2. 각 주성분에 대해 해당 주성분의 방향 정의
3. 원본 변수들 간의 선형 조합으로 이루어져 있고 해당 조합 계수 나타냄
인자의 해석 및 명칭 지정
-인자는 주로 변수들 간의 공통된 변동성을 나타냄
- 인자의 명칭은 해당 인자를 명확하게 구분하고 이해하기 쉽게 하기 위해 지정
인자의 구성
-인자는 주로 원본 변수들의 선형 조합
-인자는 원본 변수들의 가중치를 조합하여 생성
-인자의 가중치는 해당인자가 어떤 특성을 나타내는지 결정
인자 분석 결과에서 각 인자의 가중치를 확인하여 해당 인자와 원본 변수들 간의 관계 파악하여 인자를 해석한다
인자 분석에서 인자의 해석 가능성과 실용성은 중요한 평가 요소이나 주관적 요소도 포함되기 때문에 전문가들과 협업하여 검토할 것.
인자분석의 한계
가정:
1. 선형적 가정: 비선형 관계 경우 인자분석 불가할 수도있다
2. 독립성 가저이 변수들 간의 독립성 가정, 만약 변수들 간 상호 의존성이 존재하면 결과 왜곡
데이터를 더 낮은 차원으로 표현함으로써 (변수양 줄이기) 데이터의 복잡성을 감소시키고 변수 간의 상관 관계 및 패턴을 파악, 다차원 데이터의 여러 변수 중 중복되는 정보나 상호 연관성을 가지고 있는 변수등을 찾아내 고차원 데이터를 저차원 데이터로 변환하여 데이터의 중요 특징과 변동성은 유지하며 차원은 줄인다.
예시) 월별, 주별 자전거 대여에서 월과 주는 겹칠 수 있는 변수
또 차원축소를 통해 데이터의 정보를 최대한 보존, 주성분은 원본 데이터를 설명하는 데 가장 기여가 큰 데이터들을 남긴다.
PCA의 효과
데이터의 차원 축소, 변수 간 상관 관계 파악, 잡음 제거, 데이터 시각화, 다중공선성 해결 등 다양한 분야에서 유용하게 활용.
PCA의 전처리
데이터 전처리 : PCA를 실행하기 전 전처리는 매우 중요!
ㄴ 변수 스케일링 : 변수들 간에 크기 차이가 클 경우 PCA는 크기가 큰 변수에 더 큰 가중치 부여할 수 있다
공분산은 두 변수 사이의 관계를 나타내는 통계적 개념이고, 상관 행렬은 변수들 간의 상관 관계를 표준화한 행렬로 다중 변수 분석에서 유용하게 사용
공분산(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)
공분산과 상관 행렬의 차이
공분산은 두 변수간의 변동성을 측정하는 지표, 상관행렬은 정규화 된 지표.
공분산과 상관 행렬은 변수들 간 관계를 이해하는 데 사용되지만 상관 행렬은 변수들 간의 선형관계를 더 정확하고 표준화된 방식으로 나타낸다.
다중 공선성
회귀 분석 같은 다변량 분석에서 발생할 수 있는 문제로 독립 변수들 간에 강한 선형 관계가 있는 경우 발생
-이상 패턴 탐지 : 특이한 패턴, 동향, 문제점 식별(금융 분야에서 이상 거래 탐지, 생산라인의 이상 동작 감지하여 장비 고장 예방, 데이터 이상치의 원인을 분석함으로서 비지니스 프로세스 최적화하고 데이터 품질 향상 가능)
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 값에 대해 박스-콕스 변환 수행