day 041 KPMG Future Academy

sottuggung·2025년 2월 21일
0

KPMG-future-academy

목록 보기
38/41

KPMG Future Academy AI 활용 데이터 분석가 3기 33일차 수업을 2025년 1월 3일에 참석했다.

  1. 데이터 수집
    1.1. Selenium

1. 데이터 수집

1.1. Selenium

Selenium : 브라우저 자동화 컨트롤 라이브러리

패키지 설치

!pip install -qq requests requests_file beautifulsoup4 selenium pandas lxml pillow

여기서 -qq는 설치 파일 목록 보여주기 간소화

브라우저 뜸

버전 확인

검색어 입력

검색 버튼 클릭

더보기 버튼 클릭

정규표현식으로 패턴찾기, 데이터 전처리

\w+
한 개 이상의 문자, 숫자, 밑줄

-는 특별한 의미가 없어서 역슬래시 없이 사용.
.은 특수 문자로 "임의의 한 문자"를 의미하므로, 문자 그대로의 마침표를 찾기 위해 역슬래시(.)를 사용.

네이버 웹툰 스크래핑

유튜브 댓글 스크래핑

스크롤 내려서 불러오기

유튜브 댓글 전용 라이브러리로 불러오기

라이브러리 설치

플레이스토어 리뷰 수집
브롤스타즈 앱 리뷰 수집

동기 요청 : 순차 처리
비동기 요청 : 동시 처리. 콜백 지옥, 프로미스 체이닝 관리의 어려움.

GET
POST

출처 : https://ynzu-dev.tistory.com/entry/Web-%EB%8F%99%EA%B8%B0-%EB%B0%A9%EC%8B%9D%EA%B3%BC-%EB%B9%84%EB%8F%99%EA%B8%B0-%EB%B0%A9%EC%8B%9D%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

time.sleep()으로 대기

암시적 대기

명시적 대기

구글 이미지검색 결과 스크래핑

여러개 연속 다운로드

미니프로젝트(2차)
2025년 1월 17일 오전 10시 발표

데이터 기반 문제 정의 및 데이터 분석을 통한 핵심 인사이트 도출

목표 :
더 본질적인 취약점 찾기
이를 통해 ML 수업 및 2차 프로젝트 전에 보완

방법 :
feature engineering 기본 과정 습득

기대 결과 :
웹 매커니즘에 따라, 웹소스 entity 상에서 '어떤 경로로' 소스가 유통되었는지 등 추적하여 근거를 갖고 특정 feature 들을 추출하고, 분석의 기본 틀을 확보

where :
다이나믹서치, (WebGL, Vector DB)
붓 기반
전처리 및 비동기 데이터

  1. 프로젝트 및 분석 목표
    프로젝트 목표
    최신 웹 구조 및 데이터 플로우 이해
    복잡한 동적 구조 콘텐츠 추출 및 전처리 실습
    피처 엔지니어링 기본 습득

분석 목표
각 사이트의 데이터 계층 구조 파악
각 사이트의 네트워크 프로퍼티 하위 요소 파악
데이터 무결성 확인

  1. 분석 계획
    사이트 4개 이하 선정
    각 사이트 분석(구조, 의미론, 시간 등*) 수행
    데이터 무결성 및 신뢰도 파악
    결론 도출
  • 구조적 특성 (Structural Features) 예시 :
  • DOM 트리 깊이와 구조
  • 스크립트 및 리소스 사용 패턴
  • 콘텐츠 해시값을 통한 변화 탐지
  • 메타데이터 분석

의미론적 특성 (Semantic Features) 예시 :

  • 텍스트 언어 패턴 분석
  • 주제어 추출 및 분류
  • 링크 구조 및 참조 관계
  • 콘텐츠 구조화 패턴

시간적 특성 (Temporal Features) 예시 :

  • 콘텐츠 업데이트 주기
  • 버전 관리 정보
  • 시간에 따른 변화 패턴

분석 시 고려할 점:

  • 데이터 수집 주기 설정
  • 에러 처리 및 예외 상황 대응
  • 리소스 제한 고려
  • 법적/윤리적 준수사항 확인
  1. 사이트 및 선정 이유
    Asian Infrastructure Investment Bank : AIIB
    https://www.aiib.org/en/projects/summary/index.html
    선정 이유 : 다국적 프로젝트로 데이터 생성의 피처가 다양하고 계층구조가 복잡함.

Baltic Exchange (TBD)
https://www.balticexchange.com/en/index.html
선정 이유 : 실시간 비동기 구조 웹사이트 분석에 적합.

  1. 분석
    4-1. 구조적 특성
    robots.txt 확인

먼저 가장 bot 활성도가 높은 페이지를 찾기 위해 ubuntu 환경에서 GoAccess를 설치하여 로그분석을 수행하고자 했으나 시간 제약으로 사이트 내의 링크 수집 후 인기있는 페이지를 간접 추정하기로 했다.

BeautifulSoup으로 사이트 내의 155개 링크 추출

링크가 많이 연결된 상위 페이지 : 10개 추출

AIIB의 재무 보고서 페이지와 프로젝트 리스트 페이지 두 페이지를 분석하기로 결정하였다.

https://www.aiib.org/en/about-aiib/financial-statements/

https://www.aiib.org/en/projects/list/

개발자 도구 네트워크 탭에서 응답 헤더에 대한 정보 확인
1. content-type: text/html; charset=UTF-8

  • 이 헤더는 응답 본문이 HTML 콘텐츠임을 나타냄. 즉, 응답 내용은 HTML 페이지로, 페이지 자체가 서버에서 HTML로 렌더링되어 클라이언트에게 전달됨.
  1. transfer-encoding: chunked

    • 이 헤더는 응답 본문이 청크(chunked) 방식으로 전송되고 있음을 의미함. 이는 페이지가 동적으로 콘텐츠를 스트리밍 방식으로 전송하거나 점진적으로 로드되는 경우일 수 있음. HTML 콘텐츠가 청크로 나뉘어 전송되기 때문에 페이지 로딩 중에 동적 요소들이 점진적으로 로드될 가능성이 있음.
  2. x-frame-options: SAMEORIGIN

    • 이 헤더는 페이지가 iframe 내에서 불러오는 것을 방지함. 보안을 강화하고 클릭재킹(clickjacking) 공격을 방지하기 위해 사용됨.
  3. content-security-policy

    • 페이지의 보안을 위한 정책으로, 외부 자원(이미지, 글꼴 등)을 로드할 수 있는 출처를 제한함. 여기서는 https:, blob:, data:와 같은 특정 출처에서만 리소스를 로드할 수 있도록 설정되어 있음.
  4. strict-transport-security: max-age=31536000

    • HSTS (HTTP Strict Transport Security) 헤더로, 클라이언트가 이 사이트를 항상 HTTPS로 접근하도록 강제함.
  5. x-xss-protection: 1; mode=block

    • XSS (Cross-site Scripting) 공격을 방지하기 위한 보안 헤더. 클라이언트가 악의적인 스크립트를 차단하도록 설정되어 있음.

개발자 도구 네트워크 탭에서 응답 헤더에 대한 정보 확인(추가)
access-control-allow-credentials: true
CORS 정책에서 클라이언트가 서버와의 요청에 인증 정보를 포함할 수 있도록 허용. 예를 들어, 쿠키나 인증 헤더가 포함될 수 있음.

access-control-allow-origin: https://www.aiib.org
서버가 요청을 허용하는 출처(Origin)를 지정. 여기서는 https://www.aiib.org에서 온 요청만 허용.

alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
Alternate Service를 지정하는 헤더로, HTTP/3 프로토콜을 사용하도록 클라이언트에 알려주는 정보. ma=2592000은 이 정보를 30일 동안 캐시하도록 지정한 값.

cache-control: no-cache, no-store, must-revalidate
캐시 제어 헤더로, 브라우저가 콘텐츠를 캐시하지 않도록 지정. 요청할 때마다 서버에서 콘텐츠를 새로 받아옴.

content-length: 0
응답 본문의 길이가 0. 즉, 이 응답에는 본문 내용이 없거나 비어있다는 뜻.

content-security-policy-report-only: script-src 'none'; form-action 'none'; frame-src 'none'; report-uri https://csp.withgoogle.com/csp/scaffolding/ascnsrsggc:136:0
콘텐츠 보안 정책(CSP)로, 이 서버는 스크립트, 폼 제출, iframe을 사용하지 않도록 설정하고 있으며, 위반사항은 report-uri로 보고됨.

content-type: text/plain
응답 본문의 콘텐츠 타입을 text/plain으로 지정, 이는 텍스트 형식의 데이터가 포함된 응답임을 나타냄.

cross-origin-opener-policy-report-only: same-origin; report-to=coop_reporting
COOP (Cross-Origin Opener Policy)로, 같은 출처에서만 페이지가 열릴 수 있도록 설정되어 있으며, 위반 사항은 보고됨.

개발자 도구 네트워크 탭에서 응답 헤더에 대한 정보 확인(추가)
cross-origin-resource-policy: cross-origin
CORS 리소스 정책으로, 이 서버가 외부 출처로부터 자원을 로드할 수 있도록 허용한다는 의미.

date: Thu, 16 Jan 2025 10:15:13 GMT
응답이 생성된 날짜와 시간

expires: Fri, 01 Jan 1990 00:00:00 GMT
이 응답의 콘텐츠는 만료된 것으로 처리. 보통 캐시를 막기 위한 설정.

pragma: no-cache
또 다른 캐시 관련 헤더로, 브라우저가 이 응답을 캐시하지 않도록 함.

report-to: {"group":"coop_reporting",...}
위반된 보안 정책을 보고할 엔드포인트를 설정한 헤더로, 보안 위반 사항을 지정된 URL로 전송하도록 함.

server: Golfe2
서버의 이름을 나타냄. 여기서는 Golfe2라는 웹 서버를 사용.

AJAX 요청, JSON 응답, API 호출 등 동적 콘텐츠 생성 확인

Google analytics 외의 AJAX, XHR 동적 구성은 없음.

MutationObserver로 콘텐츠 변화 감지

실시간 변화 감지 안됨.
MutationObserver로 동적으로 변화하는 DOM 요소를 추적 : undefined로 뜸. 추가 확인 필요. (웹사이트의 보안 정책(CORS) 때문인 것으로 추정)

콘텐츠 및 콘텐츠 메타데이터 해시값 비교하여 변화 탐지

실시간 해시 변동 없음
정적 페이지 구성인 것으로 파악됨. 즉 실시간 콘텐츠 변화 감지되지 않음.
더 정확한 감지를 위해서 아래 추가로 수행 가능.
주기적으로 페이지를 크롤링하여 스냅샷 저장
서버의 Last-Modified 헤더 모니터링
API 응답 데이터의 타임스탬프 추적
웹 아카이브 서비스 활용

4-2. 의미론적 특성
데이터 스크래핑

동적 콘텐츠 구성 확인
Project list 페이지 iframe 구성 확인됨

원인 파악 :

이 오류는 교차 출처(Cross-Origin) 보안 정책 때문에 발생한 것. 즉, 현재 페이지의 도메인(www.aiib.org)과 iframe 내에서 로드된 페이지가 다른 도메인에 있는 경우, 브라우저 보안 정책에 의해 iframe의 콘텐츠에 접근할 수 없도록 차단됨.

데이터
38개국에 대한 프로젝트 금액 (USD) 총 금액 약 666억 USD.
Transport(교통) 부문 약 161억 USD로 가장 중요한 투자 대상. Energy(에너지) 부문이 127억 USD로 2위, CRF-Economic Resilience/PBF 부문이 110억 USD로 3위, Multi-sector, Water(수자원)이 각각 63억 USD, 51억 USD로 각각 4위와 5위의 투자 대상.


참여 국가 : Tajikistan, Cambodia, India, Uzbekistan, Türkiye, Egypt, Cook Islands, Georgia, Philippines, Sri Lanka, Lao PDR, Kyrgyzstan, Côte d'Ivoire, China, Bangladesh, Kazakhstan, Pakistan, Indonesia, Saudi Arabia, Azerbaijan, Multicountry, Thailand, Mongolia, Brazil, Maldives, Fiji, Viet Nam, Bahrain, Hungary, Singapore, Rwanda, Argentina, Jordan, Romania, Hong Kong(,China), Russian Federation, Oman, Ecuador, Nepal, Belarus, Myanmar

4-3. 시간적 특성 (TBD)
5. 결론
리뷰
주제와 분석 목적에 맞는 사이트를 찾는 게 예상보다 오래 걸렸다. 평상시 웹 사이트 및 데이터 리서치를 틈틈이 해두는 게 이 과정을 단축하는 데 도움이 될 듯하다.
웹사이트의 구조를 이해하고 데이터를 수집하니 더 근거를 갖추고 데이터를 수집할 수 있다.
보안 관련 공부를 더 해두어야 양질의 데이터를 더 정교하게 수집할 수 있을 것 같다.
(양질의 데이터가 확보됐다면) 분석의 방향은 광범위하므로, 앞 단계에서 더 기술력을 갖추어서 분석하는 데 시간을 가급적 많이 확보해야한다.

번외
출처 : 빅데이터 시대, 올바른 인사이트를 위한 통계 101×데이터 분석
통계
일반화선형모형(GLM, generalized linear model) : 최소제곱법이 아닌 확률분포에 기반한 최대가능도 방법(최대우도법)으로 회귀모형을 추정

통계모형화의 원리 :
1) 일반화선형모형
정규분포 = 최소제곱법으로 추정. 분산분석, (다중)회귀, 공분산분석. 최대가능도 방법을 이용한 추정. 오차분포는 이항분포, 푸아송분포 등
->
2) 일반화선형혼합모형
무작위 효과도 고려
->
3) 계층적 베이지안 모형
복잡한 모형화

통계모형화 : 데이터 성질을 고려하면서 확률 모형을 가정하고(베이즈 추정이라면 사전분포도 설정하고), 파라미터를 추정하여 모형을 평가하는 일련의 작업

일반선형회귀가 적절하지 않은 데이터

최대가능도 방법 maximum likelihood method

로지스틱회귀 : 일반화선형모형의 일종.
범주 하나가 일어날 확률을 p(다른 하나가 일어날 확률은 1-p)로 두고, 설명변수 x가 바뀌었을 때 p가 얼마나 달라지는지를 조사.
여기서 p는 이항분포의 파라미터에 해당.

차원축소(dimensionality reduction) : 고차원 데이터로부터, 저차원의 데이터로 변환하는 방법.

참고 : 차원 축소 - PCA (주성분분석)
https://excelsior-cjh.tistory.com/167

주성분부하량, 인자부하량
주성분점수

인자분석

차원 축소의 다른 방법 : 비선형관계에 적용 가능
t-SNE(t-distributed Stochastic Neighbor Embedding)
UMAP (Uniform Manifold Approximation and Projection)

변동성 예측 방법 :
GARCH (Generalized AutoRegressive Conditional Heteroskedasticity) 모델
과거의 변동성과 수익률을 기반으로 미래 변동성을 예측
변동성 군집화(Volatility Clustering) 현상을 잘 포착
금융 시계열 분석에서 가장 널리 사용되는 방법

이동평균 기반 방법
단순이동평균(Simple Moving Average)
지수가중이동평균(EWMA: Exponentially Weighted Moving Average)
RiskMetrics에서 사용하는 방식으로, 최근 데이터에 더 높은 가중치 부여

머신러닝 기반 방법
LSTM, GRU 등의 딥러닝 모델
Random Forest, XGBoost 등의 앙상블 방법
다양한 특성을 활용할 수 있는 장점

다중차원의 간섭 현상 파악하는 방법 :
1. 상관관계 분석
피어슨 상관계수를 통한 선형 관계 파악
스피어만 상관계수로 비선형 관계도 포착
단순하지만 기본적인 간섭 파악 가능

2. 위상 동기화 분석
시계열 데이터의 위상 관계 분석
주기적 패턴의 간섭 탐지에 효과적
비선형적 상호작용 파악 가능

3. 그레인저 인과성 검정
시차를 고려한 인과관계 분석
한 차원의 변화가 다른 차원에 미치는 영향 파악
시간적 선후관계 고려 가능

4. 상호 정보량(Mutual Information) 분석
비선형적 의존성 측정
복잡한 상호작용 패턴 파악
정보이론 기반의 강건한 분석

주의할 점:
1. 차원의 스케일
서로 다른 스케일의 차원들은 표준화 필요
적절한 전처리가 분석 정확도에 중요

2. 시간 지연 효과
간섭이 즉각적이지 않을 수 있음
시차를 고려한 분석 필요

3. 간접적 간섭
직접적인 관계 외에도 간접적 영향 고려
네트워크 분석 방법 활용 가능

오즈비(OR, odds ratio) : odds(승산)
로지스틱 회귀의 결과를 오즈비 값으로 평가할 때가 있음.

푸아송 회귀 (일반화선형모델) : 데이터가 음수화되지 않은 정수일 때, 특히 반응변수가 개수인 경우 고려되는 방법.

음이항 회귀, 감마 회귀

과분산 : 분포에서 규정된 평균과 분산의 관계보다 분산이 큰 경우. 푸아송 회귀가 아닌 음이항 회귀 등으로 대체.

왈드 검정
가능도비 검정 : 귀무가설 가설로부터 데이터를 생성. 귀무가설 또는 대립가설모형을 적용했을 때의 가능도 L1, L2를 각각 계산.
부트스트랩 방법 : 어떤 가정 하에 무작위로 데이터를 생성하고 추정량의 성질을 조사.

아카이케 정보기준 AIC(AKAIKE information criterion) : 내포관계가 아니어도 검정 가능. 새롭게 얻을 데이터를 얼마나 잘 예측할 수 있는지를 바탕으로 모형의 좋음(적합도)을 결정하는 지표. 가능도가 클수록 작아짐.

과대적합 : 실제 데이터에 무리하게 맞춰서 새로운 데이터를 제대로 나타내지 못 하는 현상.

베이즈 정보기준 BIC(Bayesian information criterion) : 내포관계가 아니어도 검정 가능. 새롭게 얻을 데이터를 얼마나 잘 예측할 수 있는지를 바탕으로 모형의 좋음(적합도)을 결정하는 지표. 가능도가 클수록 작아짐.

AICc, DIC

과학에서의 논쟁
p-값에 대한 논쟁
재현성의 위기
p-해킹 (p값을 0.05보다 작아지도록 조작하는 행위)

피셔류 검정
네이만-피어슨류 검정

검정 정확성을 위한 방법
효과크기도 함께 표기하는 것이 좋음.
p-값 대신 베이즈 인수 사용.

주변가능도, 에비던스 : 모형 m이 x를 설명하는 데 얼마나 적절한지를 나타낸 식.

주변가능도를 구할 때는 모형으로 설정한 파라미터로 평균화하기 위한 적분 계산이 필요.

Cohen's d
Hedge's d

옳다고 주장된 것 중 위양성인 것의 비율 : 허위발견율 FDR, false discovery rate.

중첩 : 두 변수에 관련된 외부 변수가 존재할 때.
중첩요인 : 중첩변수(confounder)

RCT(randomized control trial) : 무작위 통제 실험

인과관계는 없지만 상관관계는 있을 때 : 허위상관

인과관계를 알면 개입 및 예측이 가능.

시간이 중첩요인이 되는 경우가 많음.

통계적 인과 추론
다중회귀 : 중첩요인을 측정해 모형에 도입 (이를 조정한다고 함)
층별 해석
경향점수 짝짓기
이중차분법 : DID. Difference in Difference

위의 내용까지는 빈도주의 통계(frequentist statistics).
베이즈 통계와 구분됨.

빈도주의 통계에서의 불확실성 : 모집단에서 표본을 추출할 때의 불확실성.
베이즈 통계 : 확률을 '얼마나 확신하는지'로 해석.

최대가능도를 통해 예측 분포 p*(x)를 얻음.

베이즈 통계에서는 파라미터 θ를 확률변수로 취급하여 그 확률분포를 생각함.

베이즈 통계에서는 사전분포 θ와 사후분포 θ를 통해 추정. 베이즈 정리.

정보량 기준 :
실제 모집단 분포 q(x)와 예측분포 p*(x)가 어느정도 일치하는가를 평가할 때는 2개의 확률밀도함수 f(x)와 g(x)를 비교하는 쿨백-라이블러 발산을 이용

WAIC : Widely Applicable Information Criteria 복잡한 모형(계층구조를 가진 모형이나 숨은 변수가 있는 모형)에서도 사용 가능한 특징을 가진 정보량 기준.

MCMC : 마르코프 연쇄 몬테카를로 방법(Markov chain Monte Carlo, 무작위 행보) 방법으로 파라미터 탐색. 난수 활용. 깁스 표집. stan(소프트웨어) 등을 이용하여 계산

몬테카를로 방법 : 여러 난수로 시뮬레이션 후 근사해를 구함.
마르코프 연쇄 : 어떤 상태에서 다른 상태로 변화하는 것의 확률로 표현한 모형의 일종.

번인
웜업

메트로폴리스-헤이스팅스 알고리즘
해밀토니안 몬테카를로 방법

계층적 사전분포
계층적 베이지안 모형
s 파라미터 <- 초모수

기계학습
비지도 학습 : 차원 축소, 군집 분석(cluster analysis, 각 데이터가 어떤 군집에 속하는지를 구함. 가장 기본적으로는 k-평균 k-means를 사용)
지도 학습 : 회귀, 분산
강화 학습

군집 분석 : cluster analysis, 각 데이터가 어떤 군집에 속하는지를 구함. 가장 기본적으로는 k-평균; k-means를 사용.

계층적 군집화 : hierarchical clustering. 가장 거리가 가까운 군집끼리 순서대로 합쳐나감. 덴드로그램(수형도) 도출.

지도 학습
모형의 출력과 실제y의 차이를 손실함수로 정식화한 후 이를 최소화하는 파라미터를 구하는 방식

반응변수 y가 양적 변수일 때 : 회귀
반응변수 y가 질적 변수일 때 : 분류

k-분할 교차검증

leave-one-out 교차 검증

정칙화(regularization)

이진 클래스 분류
민감도 sensitivity or recall : 양성을 양성이라 올바르게 판정할 비율
특이도 specificity : 음성을 음성이라 올바르게 판정할 비율
양성적중률 positive predictive value
음석적중률 negative pr
정답률 accuracy :

ROC 곡선과 AUC

평균제곱오차
제곱근평균제곱오차
평균절대오차

로지스틱 회귀
결정트리
랜덤 포레스트
SVM
신경망(딥러닝) : 오차역전파법

선형분리가 가능한 문제 vs. 불가능한 문제

수리 모형 : 결정론 모형 - 미분 방정식, 차분 방정식, 편미분 방정식 / 확률 모형 - 무작위 행보, 마르코프 연쇄

수리모형 분석 방법 : 수식 사용하여 해석적으로 풀기, 수치 계산(공통), 컴퓨터 사용 시뮬레이션
통계 모형
기계학습 모형

지수 증식 : 분기 다이어그램

밀도 효과

평형상태, 평형점
안정평형점, 불안정평형점

로지스틱 방정식

SIR 모형

분기 다이어그램

예측, 통제

확률 모형 : 무작위 행보, 확률 과정, 마르코프 과정

전이행렬

profile
hello world

0개의 댓글