교환 속성A + B = B + A연관 속성(A + B) + C = A + (B + C)분배 속성A + (B + C) = (A + B) + (A + C)(B + C) + A = (B + C) + (C + A)
a collection of distinct and well-defined things ( or elements )collectiondistinctwell-definedA = { element_1, element_2, element_3, ....., element_n
( 원소 a가 집합 A에 포함됨 ) = ( a ∈ A )Subets \- 집합 A의 모든 원소가 집합 B에 포함될 때, A는 B의 subset이다.Super Sets \- 집합 B의 모든 원소가 집합 A에 포함될 때, A는 B의 superset이다. 서브셋과 수
일정한 규칙을 통해 새로운 집합을 만들어내는 과정f : A ----> Bpower set of setscomplement of setsf : A X B ---> Cintersaction of setsunion of setsset differencesymmetric di
집합 A, B에 대해 A ∩ B = Ø 일 때 A, B는 disjoint set이다.disjoint는 mutually exclusive라고도 부른다.Universal set ( 전체 집합 ) U안에 n개의 집합 ( A_1, A_2, A_3, ... A_n )이 있고,U
두 집합 X, Y에 대해 ∀x ∈ X가 y ∈ Y에 오로지 하나만 대응되는 관계같은 y는 한 번씩만 대응y1 = y2 ---> x1 = x2Codomain ( y ) = Range ( 실제 대응되는 것 )모든 y는 적어도 하나의 x에 대응Injective ^ Surje
y = ax + bb를 지나는 직선 그래프f(x) = 2x 와 f(x) = -2x는 y축 대칭이다.y = ax에서 \- | a |의 값이 0에 가까울 수록 그래프는 x축에 가까워진다. \- | a |의 값이 무한에 가까울 수록 그래프는 y축에 가까워진다.
y = a^xa = 상수x = 변수y = loga(x)위 사진은 삼각함수의 덧셈 공식sin^2(x) + cos^2(x) = 11 + cot^2(x) = csc^2(x)......
y = f(x) ----> y = f(x - α)y = f(x) ---> y - β = f(x)y = f(x) ---> y = f(α \* x)y \* β = f(x)y = f(x) ----> y = f(-x)y축 대칭y = f(x) ----> -y = f(x)x축 대
Linear FunctionLinear 바운더리가 존재한다.Linearity를 만족한다.f(αx) = αf(x)input ( α ) 만큼 output ( f(x) )가 α만큼 증가한다.f(x1 + x2) = f(x1) + f(x2)각각의 input ( x1, x2 )대
n개의 input을 가지는 것을 말한다.input 개 수에 따라 dimension이 정해진다.f(X ; θ) = y데이터 셋과, 모델의 파라미터 수가 정해진 모델θ : 파라미터X : 데이터 셋f(x1, x2, ... xn; w1, w2,.... wn) = w1x1 +
f(x) approaches L as x approaches alim f(x) | x -> a^-limit f(x) | x -> a^+lim f(x) | x -> a^- = lim f(x) | x -> a^+좌극한, 우극한이 같을 때 "극한이 존재한다" 라고 한다.f(
두 점(x1, x2)을 이은 직선의 기울기두 점 (x1, x2)을 이은 접선의 기울기를 구할 수 있다.h = x2 -x1a는 특정한 점을 의미한다.접선의 기울기 > 해당 점에서의 순간 변화율미분 계수에서의 a를 general하게 x로 바꿈으로서,함수로 작동하도록 함.N
Linear 함수에서의 Linearity 중 Homogeneity에 해당하며Linear 함수에서의 Linearity 중 Additivity에 해당한다.즉, 미분은 Linear한 시스템이다.
합성 함수에서의 미분법미분이 분수처럼 작동하는 대표적인 예시
딥러닝에서 어떻게 사용되는지 알아보자Gradient는 미분계수라고 생각하면 편하다.미분계수를 기반으로한 최적화 문제함수 값을 최소화 ( argmin(f(x)) ) 시키기위해 가야할 방향을 말해준다.미분 계수가 양수 -> 음수로 이동미분 계수가 음수 -> 양수로 이동미분
공통된 input을 받아서 각각의 output을 만드는 것.output 개수만큼 미분해야한다.
input x도 벡터 (여러개)outpu y도 벡터 (여러개)
x축에 놓여진 두 점 a, b사이의 거리 : b - a b - a를 n등분한 것 -> x의 변화량n이 작으면 S'과 S의 오차범위가 크다.n을 무한에 가깝게 키우면 S'과 S의 오차범위가 줄어들어 S'값이 S에 수렴하기 때문에 정적분에 가까워질 수 있다.적분 구간 a,
1\.
벡터 공간 ( 평면 ) 을 만든다.Dot product의 결과가 0 \- u, v는 서로 수직이다. \- cos(파이/2) = 0 이기 때문
행렬 덧셈은 대상 행렬들의 행과 열의 개수가 서로 같아야 한다.
곱셈 대상 행렬고 벡터의 n ( 행 개수 )이 같아야 한다.
X는 Identity ( 항등원 ) 이다.A 가 m x n 행렬이라면,X는 n x n 행렬이다.역행렬은 ad-bc 값이 0일 때, 존재하지 않을 수 있다.
A 행렬, x 벡터, 그리고 b를 각각 추출한다.결론적으로 Ax = b를 만족하는 x 벡터를 찾는 것이 목표다. Ax = b를 만족하는 x 벡터가 존재하는지 먼저 따져보기 위해서는A 행렬의 Column Space ( C(A) )를 살펴보고 b가 A 행렬의 Column
sample space ( S ) 에서 항상 같은 확률을 유지하는 것.조건부 확률P(B) : 조건즉, P(B) 사건이 발생했을 때 P(A)가 발생할 확률각 사건이 서로에게 영향을 미치지 않는다.각 사건의 교집합이 존재하지 않는다.P(B|A)를 가지고 역으로 P(A|B)
1. 개념 > sample space ( S )에서 발생한 사건의 결과는 실수계에 존재하지 않는 값일 수있다. ex ) 동전을 던진 결과 : head or tail 그래서 이런 값들을 Random Variable ( 함수 )를 통해 실수계 값으로 변환 시킨다. e
discrete ( 이산적이다 ), 셀 수 있다.대표적으로 동전 던지기가 있다.셀 수 없다. ex) 키, 몸무게 등...적분 값은 확률이다. 즉, 모든 구간에서의 적분 값을 더하면 1이 된다.
확률을 다르게 표현하는 것사건이 일어날 확률과 일어나지 않을 확률이 대칭이기 때문에 분석하기 수월하다.마이너스 무한 부터 플러스 무한까지의 구간에서 진행된다.확률을 받아서 Logit 값으로 변환Logit과 Sigmoid는 서로 역함수 관계이다.Logit을 받아서 확률로
사건이 일어났을 때를 가정한다.일어나는 사건의 확률이 낮을 수록 정보의 양이 많고확률이 높을 수록 정보의 양의 적다.ex) 아침에 해가 뜰 확률은 1에 가깝다. 즉, 정보 양이 없다.ex) 내가 유명 여배우랑 연애할 확률은 0에 가깝다.즉, 연애를 한다면 정보 양이 많
과 같은 표현은 아래에로 포현할 수 있다.
업로드중..
업로드중..
업로드중..
업로드중..
업로드중..
> >
업로드중..
> >
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/e60a98db-f82a-458a-910a
>
1. 상하 결합 > > 2. 좌우 결합 > > > ![](https://velog.velcdn.com/images/masterkore
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/c0af2d75-ba93-4d57-bd71
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/ee2d8bad-5e8f-4d5
업로드중..
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/eed638fb-d213-4352-80d6
> > >
> >
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/f0d9652e-b6d4-4725-a1b8
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/94c7b13c-3f0f-42a2-b02f
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/123755dc-486d-491f-b3b0
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/b9660dff-01de-4922-bfe4
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/349f511f-4c2b-4fb9-a2d8
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/1b4cc6b2-64a5-4d9a-8e6d
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/37843119-9324-4798-a8f8
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/804dfd66-25e4-4af5-820e
> > >
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/9d97bed3-bdc5-4a11-83d7
업로드중..
>
> >
기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야1959, 아서 사무엘데이터 \- 객관적인 기준을 위한 정답과 요인들알고리즘 \- 문제를 풀기위한 의사결정 과정학습 \- 데이터로부터 최적의 값
어떤 X가 주어졌을 때, f라는 함수를 통해 y라는 값을 도출하는 과정이 때, f를 모델 또는 알고리즘이라 부른다.y = F(X) \- X : 데이터 \- y : 예측값데이터를 이용해 값을 예측모델이 값을 잘 예측하는지 평가train data를 잘 맞추지
예측 값을 직선으로 표현하는 모델y hat : 예측 값x : 입력 값베타0 : 편향 \- 그래프에서 회귀선의 위치 \- x가 0일 때의 예측값 베타1: 계수 ( Coefficient ) \- 회귀선의 기울기 \- x가 1 증가할 때 값
두 개 이상의 변수로 만든 회귀식예측하는 값이 비선형일 경우 사용새로운 변수 x2가 생성되는 게 아니라기존에 가지고 있는 x를 제곱한다. 여러 값을 넣어 본 뒤 loss ( MSE )가 제일 작은 베타를 찾는다효율적으로 값을 넣는 법 - 최적화 알고리즘임의의 두 값을
업로드중..
과대적합을 방지하는 방법더 많은 학습데이터를 사용모델의 정규화모델에 제한을 주어 학습데이터의 패턴을 모두 외우는 것을 방지하는 방법필요없는 베타를 0으로 만든다.필요없는 베타를 아주 작은 값으로 만든다.
> > > > ![](https://velog.velcdn.com/images/masterkorea01/post/702fd50f-0103-465b-8155
범주형 데이터의 선형 회귀정답의 범위가 0과 1 사이단순 선형회귀의 예측값 범위는 마이너스 무한 ~ 플러스 무한0과 1사이를 벗어나는 예측은 예측의 정확도를 낮추게됨.예측의 결과가 0과 1사이에 있어야한다. Linear Regression + Logistic Funct
1. 데이터 셋 > > > > > 2. Linear Regression을 적용할 경우 > ![](https://velog.velcdn.
1. 데이터 셋 > 2. EDA > > 3. Data Split > > > 4. Multiclass > !
1. 정의 > 의사결정과 그 결과물들을 트리 구조로 도식화한 것 > 구성 요소 Root Node 트리구조가 시작되는 마디 전체 데이터로 이루어져 있다. Internal Node 트리 구조의 중간에 있는 마디들 Terminal Node 트리
1. Data > 2. Decision Tree 구현 > > > > ![](https://velog.velcdn.com/images/m
1. Data > > 2. Decision Tree Regressor > > > ![](https://velog.velcdn.com/
분산을 줄이는 효과 \- 원래 추정 모델이 불안정하면 분산 감소 효과를 얻을 수 있다. \- overfitting이 심한 모델에 적합Decision Tree + Bagging분산이 큰 DecisionTree + 분산을 줄일 수 있는 BagginDecisio
최적의 파라미터를 찾는 법
1. Data > 2. EDA > > > 3. Data Split > 4. Random Forest >
종속 변수 Y가 주어졌을 때, 입력 변수 X들은 모두 조건부 독립.예측 변수들의 정확한 조건부 확률은 각 조건부 확률의 곱으로 충분히 잘 추정할 수있다는 가정데이터 셋을 순진하게 믿는다 -> Naive 하다변수가 늘어날 수록 계산량이 많아진다.계산량을 줄이기 위해 조건
1. Data > 2. Data Cleaning > 3. Data Split > 4. Count Vectorize > ![](https://velog.velcdn.com/images/masterkorea01/post/6d94cacf-6f52-4be8-b47d-9c3cdf41fd55/im
데이터로부터 모델을 생성하여 분류/ 예측 진행Linear Regression, Logistic Regression모델 없이 인접 데이터를 분류 / 예측에 사용모델을 미리 만들지 않고 새로운 데이터가 들어오면 계산 시작 ( Lazy Learning )KNN, Naive
1. Data > 2. 시각화 > > > > ![](https://velog.velcdn.com/images/masterkorea01/
1. Data & EDA > 2. Data Preprocess > > 3. Data Split > 4.
1. Data > 2. DataSplit > 3. Linear Kernel > > > 4. Poly K
1. Data > 2. EDA > > > 3.Data Split > 4. Data Scaling > !
유사한 속성을 갖는 데이터들을 묶어 전체 데이터를 몇 개의 군집으로 나누는 것Classification \- 소속 집단의 정보를 알고 있는 상태 \- Label이 있는 데이터를 나누는 방법 Clustering비지도 학습소속 집단의 정보를 모르는 상태Labe
1. Data > 2. 최단 연결법 - Hierarchical Clustering > > > > ![](https://velog.velc
1. Data > 2. K-Means > > > 3. 적절한 K 찾기 > ![](https://velog.velcdn
1. Data > 2. EDA > > 3. Data Preprocess > 4. Data Split
1. Data > 2. Data Scaling > 3. EDA > > 4. KMeans >![](htt
공간 내 데이터의 위치를 나타내기 위해 필요한 축의 개수변수가 늘어나면서 차원이 커짐에 따라 발생하는 문제필요한 데이터 수의 지수 함수적 증가로 인한 정보의 밀도 감소공간을 설명하기 위한 데이터의 부족 \- overfitting 문제 & 성능 감소데이터를 잘 설명할
1. Data > > 2. 정규화 > 3. PCA > > ![](https://velog.velcdn.com/imag
1. Data > > 2. Clustering > > 3. 차원 축소 후 Clustering > ![](https://v
1. Data > 2. EDA > > 3. Data Split & Scaling > 4.Eigenfac
약 분류기를 순차적으로 학습하는 앙상블 기법예측을 반복하면서 잘못 예측한 데이터에 가중치를 부여해서 오류 개선AdaBoostGradient BoostXGBoost간단한 약 분류기들이 상호 보완되도록 순차적 학습underfitting된 학습 데이터의 가중치를 높이면서 (
1. Data > 2. Data Split > 3. Decision Tree > > 4. AdaBoos
1. Data > 2. Data Split > 3. Decision Tree > > 4. AdaBoost
주어진 데이터의 정상 여부를 판별하는 문제정상 데이터와 이상 데이터의 비율이 불균형하다.지도학습에서 모델을 학습하기 위해서는 정답이 있는 데이터가 필요.한 쪽의 데이터가 매우 적은 상황모델이 모든 예측 값을 데이터가 많은 쪽 (Majority Group)으로 예측하는
1. Data > 2. Resample Data > 3. Data Split > > 4. Model
사용자의 취향을 알아내 새로운 아이템을 추천하는 것Memory Based \- User Based \- Item BasedModel Based비슷한 정도를 나타내는 지표유클리디안 유사도코사인 유사도피어슨 유사도자카드 유사도\-1 ~ 1사이의 값을 가진다.방향이 같
1. 유클리디안 유사도 > > > 2. 코사인 유사도 > 3. 피어슨 유사도 > ![](https://velog.velc
1. Data > 2. Data Cleaning > 3. TF-IDF 계산 > > > ![](https://velog.v
여러 유저의 과거 아이템 상호작용 정보를 이용해 추천영화 평점제품 사용 리뷰동영상 시청 시간클릭 횟수여러 유저의 과거 아이템 상호작용 정보를 메모리에 저장하고추천히 필요할 때마다 전체 데이터를 이용해서 추천아이템 선호도가 비슷한 유저를 탐색하고 탐색된 유저가 좋아하는
업로드중..
https://colab.research.google.com/drive/16PiwQeGdI28rHheupN42zuoNtpYhW-sX?usp=sharing
구글 코랩
구글 코랩
구글 코랩
구글 코랩
구글 코랩
구글 코랩
구글코랩
구글코랩
구글코랩
구글 코랩
코드 구현 -> 빌드 -> 배포버전 관리 \- 데이터 버전 \- 모델 버전테스트 자동화 \- 모델 학습 자동화 \- 모델 성능 평가 자동화모니터링 \- 서빙 모델 모니터링 \- 데이터 변화 모니터링 \- 시스템 안정성
SqoopFlumeKafkaFlinkSparkStreamingAirflowMysqlHadoopAWS S3MinIOTFDVDVCFeastAmudsenJupyter HubDockerKuberflowOptunaRaykatibGitMLflowGithubActionJenkins
실행 환경의 일관성 & 독립성스케쥴 관리, 병렬 작업 관리, 유휴 자원 관리장애 대응, 트래픽 대응Containerization컨테이너화 하는 기술격리된 공간에서 프로세스를 실행시킬 수 있는 기술Container Orchestration여러 컨테이너들을 지휘하는 기술
이 후 VM 로그아웃 후 재로그인docker image repository부터 docker image를 가져오는 커맨드로컬에 존재하는 docker image 리스트를 출력현재 실행 중인 도커 컨테이너 리스트 출력도커 컨테이너 실행it : -i -t \- containe
FROMDockerfile이 base image로 어떤 이미지를 사용할 것인지 명시COPYsrc의 파일 혹은 디렉토리를 dest 경로에 복사RUN명시한 커맨드를 도커 컨테이너에서 실행하는 것을 명시CMD명시한 커맨드를 도커 컨테이너가 시작될 때, 실행하는 것을 명시WO
1. Docker Registry registry 띄우기 my-image를 띄운 registry를 바로보도록 tagging my-image를 registry에 push 정상적으로 push 되었는지 확인 2. Docker Hub Login Docker Hub를 바라보도록 tag 생성 Docker Image push to docker hub
데이터 직렬화에 쓰이는 포맷 중 하나가독성범용성 \- kubernetes 명세 \- docker compose 명세 \- github action workflow 명세따옴표 없이 써도 되고 따옴표로 감싸도 된다.
1. 설치 설치 확인
Pod와 Replicaset에 대한 관리를 제공하는 단위관리: Self-healing, Scaling, Rollout(무중단 업데이트)과 같은 기능
K&8에 배포한 애플리케이션(Pod)을 외부에서 접근하기 쉽게추상화한 리소스Pod는 IP를 할당받고 생성되지만, 언제든지 terminate 됐다가, live할 수 있으며, 그 과정에서 IP는 재할당 되기 때문에 고정된 EIP로 원하는 Pod에 접근 할 수가 없다.따라서
Persistent Volume (PV),Persistent Volume Claim (PVC)는 stateless한 Pod가영구적으로 데이터를 보존하고 싶은 경우 사용하는 리소스도커에 익숙한 분이라면,docker run의 -v 옵션인 도커 볼륨과 유사한 역할을 한다고
데이터 분석 과정 중 다양한 분석이 이루어진 데이터 버전들이 쌓이게 되는데,추후에 어떤 데이터가 어떠한 feature engineering을 통해 나온 데이터인지 기억하거나 확인하기 어려워 진다.이것도 하나의 방법이 될 수 있다. BUT 더욱 효율적이고 간편한 tool
파이썬 및 git 설치 필요pip 으로 설치할 경우, 파이썬 가상환경 내에서 실행하는 것을 권장한다..dvc 파일은 git push를 수행하여, git 레포지토리에 저장한다.본인의 s3 또는 구글 드라이브 등과 같은 원격 스토리지를 생성한다.본인은 구글 드라이브를 써보
로우 데이터 -> 데이터 전처리데이터 전처리 -> 학습 및 검증나중에 최종 모델을 결정하기 위해서는Model 소스 코드Evaludation Metric 결과사용한 parametersModel.pkl 파일학습에 사용한 데이터데이터 전처리용 코드전처리된 data .....
터미널이 사용가능한 ospython 가상 환경 ( conda )mlflow models serve 할 때 필요3.6 버전 이상 사용
MLflow를 사용하여 간단하게 서빙해보자https://mlflow.org/docs/latest/tutorials-and-examples/tutorial.html원하는 모델의 run id를 확인한 다음, port를 지정하여mlflow models serve 커
https://github.com/mlflow/mlflow/tree/master/examples/sklearn_autologmlflow에서 예제로 제공해주는 example 중 하나간단한 training data를 가지고 sklearn의 pipeline을 사용해
ML 모델을 서비스화 하는 것.HTTP API Request챗봇과의 대화Netflix 영상 좋아요 버튼Youtube 구독 버튼네이버 길찾기 버튼.......모델 개발과 소프트웨어 개발의 방법과 괴리모델 개발 과정과 소프트웨어 개발 과정의 파편화모델 평가 방식 및 모니터
app.py 생성 및 아래 코드 작성더 이상 플라스크는 설명 하지 않겠다.
쿠버네티스 관련 사전 지식이 필요.아직 익숙치 않다면 Seldon Core의 사용방식만 익히고 넘어가자작성자 본인은 아직 쿠버에 익숙하지 않다.그러니 더 공부할 예정....https://kubernetes.io/docs/concepts/extend-kubern
쿠버네티스에 종속적이지 않고, 바이너리 혹은 docker container 형태로도사용하고 배포 가능쿠버네티스 생태계의 오픈 소수 중에서는 사실상의 표준수집하는 Metric 데이터를 다차원의 시계열 데이터 형태로 저장데이터 분석을 위한 자체 언어 PromQL 지원시계열
https://prometheus-community.github.io/helm-chartsPrometheus, Grafana 등을 k8s에 쉽게 설치하고 사용할 수 있도록 패키징된 Helm 차트실무에서는 admin password, storage class,
실행 환경의 일관성 및 독립성스케쥴 관리, 병렬 작업 관리, 유휴 자원 관리장애 대응, 트래픽 대응출처: https://www.kubeflow.org/docs/started/architecture/출처: https://www.kubeflow.org/
Helm과 비슷한 개념여러 개의 yaml 파일들을 쉽게 관리하기 위한 도구여러 resource 들의 configuration을 템플릿(base)과 커스터마이제이션한 부분(overlay)을 나누어서 관리할 수 있는 도구kustomize build 커맨드로, base +
Feature는 관심 현상에 대해 개별적으로 측정 가능한 속성 또는 특징ML model의 입력값ML Model이 잘 작동하기 위해서는 많은 데이터 뿐만 아니라잘 정의된 다양한 종류의 Feature가 필요.원본 데이터를 Feature Engineering을 통해 가공하여