전체 글 24

[요즘 우아한 AI개발] PART4 안정적인 AI 서비스 운영하기

Part4 - 11. 빠르고 안정적인 AI 서빙 시스템 구성하기주제 : AI모델을 배포하는 서빙 자동화 시스템우아한 형제들에서는 AI플랫폼에서 서빙 자동화 시스템을 구성하고 있어 AI모델을 생성 하면 모델 배포와 관리 작업을 자동화하고 있다고 한다.Part4-11절에서는 개발한 모델의 서빙 환경을 설명하고 있다. 1. AI플랫폼이란- 데이터 관리, 모델 개발, 운영 적용 및 모니터링 등 업무에 AI 기술을 접목시키기 위한 전반적인 과정들을 결합하여 쉽게 사용할 수 있도록 만든 플랫폼 그중에서도 서빙이란?- AI 모델을 "운영 환경에 배포하고 사용자가 실시간으로 요청할 수 있도록 API 형태로 제공하는 과정"- 단순 AI모델 전달이 아닌 성능 최적화, API 생성, 확장성 관리, 버전 관리, 모니터링 등..

리뷰 2025.10.11

[통계] 코퓰라 함수(Copula Function)(3) - 시뮬레이션

코퓰라 함수에서는 여러 변수들을 유니폼 분포로 변환한 후, 이들 간의 의존성을 코퓰라 함수가 모델링하여 결합하는 과정을 거친다고 했다. 이번 포스팅에서는 2개의 정균분포에 대해 시뮬레이션 해보았다.먼저 필요한 패키지들 불러오기!# 필요한 패키지 불러오기# !pip install copulasimport copulasimport numpy as npimport matplotlib.pyplot as pltfrom scipy.stats import normfrom copulas.multivariate import GaussianMultivariate  1 단계. 확률 변수(정규분포) 샘플 생성Original data로 정규분포에서 샘플링하기. 두 변수의 상관관계는 0.8로 설정# 샘플 크기n = 1000# 변..

통계 2025.03.03

[통계] 코퓰라 함수(Copula Function)(2) - 코퓰라 정의

이전 포스팅에서 누적분포 함수 $F_X(x)$는 0~1 사이의 값을 가진다고 했다.서로 다른 확률분포를 가진 변수들이 동일한 기준에서 비교될 수 있도록 CDF를 변환하여 균일분포(Uniform Distribution)으로 만들수 있다. $$ U = F_X(x)$$ Copula 함수는 다변량 분포함수와 주변확률밀도함수를 연결시키는 함수로, 다음과 같이 정의할 수 있다. $$C(F_1(x_1), F_2(x_2),F_3(x_3), ...,  F_n(x_n)) = Prob(X_1 \leq x_1, X_2 \leq x_2, X_n \leq x_n )$$이때, $F_i(X_i) = Prob(X_i \leq x_i)$ 로 확률변수 $X_i$의 누적분포함수(CDF)이다. 코퓰라 함수의 속성단조성: 각 변수에 대해 단조..

통계 2025.02.26

[통계] 코퓰라 함수(Copula Function)(1) - 누적분포, 다변량 분포, 확률밀도함수, 주변확률밀도함수

Copula는 하나의 확률적 도구로, 여러 확률변수(Random Variable)들의 연결성(종속성)을 나타낸다. 코퓰라 함수를 설명하기 전에,기본적인 분포에 대한 개념을 알아야 이해할 수 있기 때문에 먼저 설명하고자 한다.간단하게 어떤 의미인지만 설명하고 상세한 수학적 정의 등은 생략함! 1. 확률밀도함수(Probability Density Function, PDF)- 확률 변수의 분포를 나타내는 함수. 대표적으로 정규분포가 있음.- 표기는 다음과 같이 나타내고 확률변수 X가 x값을 가질 확률을 의미한다. $$ f_X(x) = Prob(X=x)  $$  2. 누적분포함수(Cumulative Distribution Function, CDF)- 확률변수가 특정 값보다 작을 확률을 나타냄.- 누적분포함수에 ..

통계 2025.02.25

[통계] 그랜저 인과관계(Granger Casuality)

시계열 데이터 공부하다가 알게된 그랜저 인과관계,  나중에 쓸 수도 있기에 다시 보기 위한 개념정리~~   그랜저 인과관계란, 두개의 시계열 데이터의 선후 관계를 확인할 수 있는 방법이다.명칭 때문에 원인과 결과를 분석하는 것으로 생각할 수 있지만 흔히 알고 있는 인과관계랑은 다른 개념으로,표현도 인과관계가 아닌 그랜저 인과관계가 있다라고 한다.  그랜저 인과관계는 두 개의 시계열 데이터 A, B가 있을 때 두 데이터 간의 선행이 어떻게 되는지 선형 회귀분석을 통해 확인할 수 있다. 그랜저 인과관계 검증은 시계열 데이터가 정상성을 띈다는 가정을 하고 있기에분석 전에 먼저 시계열 데이터 간 정상성이 있는지 확인해 보고 정상성이 아닌 경우 처리 후에 사용을 해야한다. 귀무가설은 다음과 같이 설정할 수 있다...

통계 2025.02.20

[통계] 제 1종 오류, 제 2종 오류

통계 구글링 좀 해본 사람이라면 한번 쯤 들어봤을 1종 오류와 2종 오류데이터 관련 자격증 공부에도 한번씩 나오는 개념이라 포스팅해 본다ㅎㅎ기존에 알고있는 통계 개념에서 크게 벗어나지 않음ㅎㅎ 통계가설이나 유의수준 등에 대한 개념을 알고 보면 이해가 빠를듯(참고하기)https://yunnbi.tistory.com/8 [통계] 유의수준, 유의확률 이해하기통계에서는 내말이 맞다! 라는 걸 주장하기 위해 가설을 세우고 이 가설을 확률로서 증명한다.  가설은 '귀무 가설'과 '대립가설'로 나눌 수 있다. 먼저 대립가설이란,내가 주장하고자 하는 가yunnbi.tistory.com 제 1종 오류, 제 2종 오류에 대해 찾아보면 다음과 같은 표를 많이 볼 수 있다.표로 정리한게 글로 설명하는 거보다 직관적이긴 하다ㅎ..

통계 2025.02.19

[분석알고리즘] DBSCAN 클러스터링

클러스터링을 하는 기법 중 여러 방법이 있지만 그 중 대충 알고 넘어갔던 DBSCAN 클러스터링에 대해 정리해 봄! DBSCAN(Density-Based Spatial Clusterting of Application with Noise) 란, 말 그대로 Noise를 포함한 데이터에 대해밀도 기반으로 클러스터링을 한다는 것이다. 이 클러스터링에 대한 장단점을 보자면, 장점   - 패턴이 있는 데이터의 군집화에 유리하다.   - 군집 개수를 사전에 설정할 필요가 없다.   - Noise가 있는 경우 유리하다.단점  - 클러스터링을 시작하는 데이터에 따라 하이퍼 파라미터가 동일해도 클러스터링 결과는 매번 다르게 나타날 수 있음.  - 적당한 하이퍼파라미터를 정하기 어렵다. (도메인 지식 필요)   - 데이터가..

분석기법 2025.02.18

[Python] 리스트 타입 순서 변경과 응용

다른거 공부하다가 리스트 내 순서 변경하는 코드를 찾아보게 되어 기록하는 블로그 파이썬을 자주 사용하지는 않지만 나중에 관련해서 찾게 될까봐 써놓는다ㅋㅋ 코드는 매우매우 쉬움 CASE1)간단한 리스트 정렬하기lst = [0,1,5,3,2,4,9] # 리스트1lst2 = [50,11,25,43,22,42,91] # 리스트2lst = sorted(lst) # sorted 활용lst2.sort() # sort 활용 결과는 다음과 같이 잘 정렬되어 있는걸 볼수있다. CASE2) Key 활용하기list 타입은 튜플을 담을 수 있다. 이때 특정 순서 기준으로 list를 정렬하고 싶다면?정렬하고 싶은 인덱스의 번호만 알면 lambda를 활용해서 정렬할 수 있다. 다음 ..

프로그래밍 2024.09.04

[Python] 판다스에서 map함수와 apply 함수, 공통점과 차이점

파이썬을 이용해서 전처리를 하다보면 자주 쓰는 함수들이 있는데,그 중 판다스에서 활용할 수 있는 map함수와 apply함수가 있다. map함수의 정확한 용도와 apply함수와의 차이를 몰라서 주로 apply함수를 더 많이 사용해왔는데이번에 두 함수의 공통점과 차이점을 정리해 보았다.   먼저, 값을 넣으면 3번 곱한 값을 계산하는 함수를 만들자.import pandas as pd # 판다스 불러오기df_value = pd.DataFrame({'value':[1,2,3]}) # 데이터프레임 생성# x값을 3번 곱하는 함수def def_calculate(x): y = x*x*x return y 데이터프레임 df_value의 value 변수의 값을 3번 곱해보자.  1. apply 함수value값을 3번 ..

프로그래밍 2024.07.13

[Python] eval(), exec() 함수와 딕셔너리

다른 코드 찾아보다가 알게된 게 있어서 기록하는 블로그ㅎㅎ 작년 프로젝트를 수행하면서 자주 사용했던 함수가 있는데문자열을 수행할 수 있는 eval(), exec() 함수이다. eval(), exec() 함수란? 문자열을 코드 수행시킬 수 있는 간단한 함수이다. 예를 들어,a = "1+1"eval(a)a= "1+1" 로 문자열로 값을 넣고eval(a)를 수행하는 경우 결과는 다음과 같다.2 eval이 "1+1"을 문자열이 아닌 1+1로 인식되어 결과값이 2가 나오게 된다. 다음은 exec함수인데, 위의 코드에 이어서 다음과 같은 코드를 수행해보자.b = "a=1"exec(b)print(a) 이때 a의 결과는 1이 나오게 된다.1 아무튼, 이렇게 유용하게 사용할 수 있는 함수인데작년에는 파이썬에서 하이브 연..

프로그래밍 2024.07.11