본문 바로가기
- 배움이 있는 삶/- AI | Big data

Data Science 중급

by story of interesting 2024. 5. 21.
반응형

Ch01. 머신러닝 기초 개념

- Data Split : 학습에 사용할 데이타와 평가를 할때 사용할 데이타를 나누는 방법

- 머신러닝 : 컴퓨터가 주어진 입력값(x) 와 찾고자 하는 값(y) 값 사의의 관계를 모델링 하는 방법

- Supervised Learning - 입력데이타(x)와 그에 해당하는 정답(y)가 함께 학습에 사용되는 방법론
a) Classification : 주어진 데이타(x)를 몇가지 종류(catetory, y)로 나누는 방법
b) Regression : 주어진 데이터(x)와 관련이 있다고 생각하는 값(y) 사이의 관계를 찾는 방법

- Unsupervised Learning - 입력데이터(x)만 학습에 사용되는 방법론 (y가 주어져 있지 않은 경우)
a) Clustering : 주어진 데이터를 몇가지 그룹으로 (subset of X) 나누는 방법
b) Dimensionality Reduction : 주어진 데이타(x)의 중요한 정보들을 뽑아내는 방법

- Reinforcement Learning - 행동의 대상(agent)와 환경(environment) 사이의 interaction을 통해서 목표를 최대화(reward maximization) 하는 학습 방법론
a) Real-time decisions - 주어진 환경에 대해서 reaction을 하면서 최적화가 필요한 방법론
b) Game AI - ALPHAGO, DEEPBLUE ...

- ML을 사용하는 문제정의가 굉장히 중요하다

- Trainning
:머신러닝 모델이 데이타의 패턴을 파악하는 과정
a) y= wx + b 라고 하면, w와 b가 직선을 결정하며, 이러한 변수들을 parameter라고 부른다
b) 주어진 데이터에서 정보를 얻어 성능을 향상 시킬수 있는 방향으로 점차 정보(parameter)를 업데이트해 나가는 과정을 trainning 이라고 한다

- Inference
: 학습된 머신러닝 모델이 test data를 넣어서 결과를 내는 것

- Feature engineering
a) 데이타 마트까지 구성된 데이타를 input vector 라고 부른다
b) input vector를 머신러닝 모델에 사용할 feature vector로 바꾸는 작업이 feature engineering이다
c) feature vector란 input vector에서 머신러닝 모델이 보아야할 특징(feature)를 정의한 수치값들이다
d) feature engineering에 따라 머신러닝 모델의 성능이 굉장히 크게 변할 수 있다
e) feature vector가 표현되는 공간을 feature space라고 한다
f) 이러한 수치정보를 만드는 방법을 feature extraction algorithm 이라고 하며, 대표로는 PCA(principal component alaysis), autoencoder 가 있다
g) 최근에는 deep learning을 사용하여 새롭게 feature를 생성하는 임베딩(embedding) 방식이 있다

- Loss function
: 모델의 inference 결과(예측값)와 실제값(y) 사이의 틀린 정도를 계산하는 함수
a) 최적의 파라미터 조합을 찾을 수 있는 "Gradinet Descent Algorithm"이 제일 많이 사용된다 - 이는 최선을 다해 밑바닥으로 내려갈 수 있는 방법을 찾는 것이다

-  Evaluation metric
: 머신러닝 모델을 평가하는 기준
a) Metric for Classification
: accuracy, precision, recall, f1
b) Metric for Regression
: MSE(Mean Squared error) , R2
c) Metric for Clustering
: Silhousette Score


Ch02. 머신러닝 프로젝트 수행 방법

- 데이타 분석 문제정의

- 데이타 수집 및 정제

- 탐색적 데이타 분석

- 피처 엔지니어링

- 예측모델 개발 및 평가

- ML Framework : Scikit Learn
: sklearn - 파이선 오픈소스 라이브러리 중에서 머신러닝을 구현하는데 특화된 라이브러리임
: 정해진 틀이 있다

1. 사용할 모델을 불러옵니다
from sklearn.ensemble import RandomForestClassfier
from sklearn.metrics import accuracy_score

2. 모델 객체를 선언합니다
model = RandomForestClassifier()

3. trainning data로 학습을 진행합니다
model.fit(x_train, y_train)

4. test data로 inference를 진행합니다
pred = model.predict(x_test)

5. evaluation metric으로 평가를 진행합니다
print("accuracy : %.4f" % accuracy_score (y_test, pred)

>>> accuracy : xxx

Ch03. 분류의 정의

- 분류 (Classfication) : 주어진 데이타(x)를 분류하고자 하는 값(y)에 할당하는 방법

- classification model 
a) Linear Classifier
b) Logistic Regression
c) Naive Bayes
d) KNN
e) SVM
f) Random Forest
g) Neural Network

a) Linear Classifier 
: y = wx +b로 표시되는 선형함수로 데이터를 분류하는 모델, 패턴을 선형식으로 찾는 것

b) Logistic Regression
: 주어진 데이터(x)를 통해서 사건의 발생확률(y)를 예측하는 통계 모델, 대표로 이진분류 모델이 있음

- Decision Tree
: 조건에 따라 데이터를 분류하는 모델
; 대표적인 non-parametric 모델이다
: 대표적인 white box 모델이다(explainable, interpretable)
: Tree는 computer science분야에서 Data structure 이다
; Tree 중에 children이 최대 2개인 tree를 Binary tree 라고 한다.

- CART ( Classification and Regression Tree)
: 대표적인 Decision Tree 모델이다
: Binary tree이다
: 장점 - white box model, easy to train
: 단점 - easy to overfit(쉽게 trainning data를 외우게 된다), training data가 조금만 바뀌어도 학습모델이 전혀 달라짐

- Random Forest
: Decision Tree가 모여서 더 좋은 결과를 내는 모델
: CART 모델의 단점을 극복하기 위해 제시된 모델
: decision tree를 그냥 모으기만 하면 더 좋은 결과를 낼수가 없다. 다양한 전략 필요
a) Bagging(Bootstrap Aggregating) - data sampling (모집단 자체를 바꾼다)
b) Random Subspace Method - DT가 뽑은 Feature를 바꾼다
: 이렇게 만들어지 DT들의 결론을 다수결로 평가하는 것으로 "집단 지성"을 구현할 수 있다.
: Random Forest는 그냥 DT들을 모으는 것이 아닌, Randomness를 적당히 포함하는 것으로 DT의 약점을 잘 보완한 모델


Ch04. 회귀의 정의

: 주어진 데이터(X)와 찾고자 하는 값(Y) 사이의 관계를 찾는 방법
: 회귀란 주어진 input data와 관심있는 target value 사이의 관계를 모델링하는 것을 말한다
: input data는 일반적으로 벡터 (feature vector) 
: output data는 일반적으로 실수값이다(real value)
: 분류와 다르게 inference한 결과값 자체가 예측값이 됩니다

- Regression Model
a) Linear Regression
b) Lasso
c) Ridge
d) Polynomial Regression
e) Random Forest
f) XGBoost
g) LightGBM
h) Neural Network

- Linear Regression
: y = wx+b로 표시되는 선형식으로 x와 y 사이의 관계를 찾는 모델
: 분류와 다르게 회귀모델은 선형식의 계산결과 자체가 예측값이다

- Lasso, Ridge
: Linear Regression 모델이 고차원 공간에 overfitting이 쉽게 되는 문제를 해결한 기법

- XGBoost
: 하드웨어 최적화를 시킨 Gradient Boosting Model (GBM)
: Boosting model 은 bagging 방식이 만들어지는 원리가 전체 성능을 향상하는데 직접적인 연관이 없는 것을 보완한 모델

- LightGBM
: 기존 GBM들 보다 훨씬 더 빠르게 학습이 되는 모델
: LightGBM이 제안하는 메인 아이디어는 Level-wise 방식이나 Leaf-wise 방식 모두 optimal을 만들게 된다면 비슷한 DT를 만들게 된다는 것에시 시작함
: Leaf-wise를 사용한다면, 훨씬 더 빠르게 optimal 을 찾을 수 있다는 것이 포인트


Ch05. 클러스터링의 정의

: 클러스터링(clustering) - 주어진 데이터(x) 사이의 유사한 데이터들을 묶어주는 방법
: 대표적인 방법은 unsupervised learning 방식이다
: input data는 일반적으로 벡터이며(feature vector), output data는 없다

- Clustering Model
a) K-means
b) Hierachical Agglomerative Clustering
c) DBSCAN
d) HDBSCAN
e) Spectral Clustering
f) Mean Shift
g) BIRCH

- K-means
: 주어진 데이터에서 K개의 중심점을 찾아서 데이터를 묶어주는 방법
: 각 데이타는 K개의 Centroid 중에서 가장 가까운 centroid를 찾아서 같은 번호를 부여받는다
: 장점 - 아주 빠르다, 간단하고 해석이 용이하다, 언젠가 정답이 나온다
: 단점 - mean을 기준으로 하기 때문에 outlier에 굉장히 취약하다, 데이터 모양히 hyper-spherical이 아니라면 잘 묶이지 않는다, inital centroid를 어떻게 고르냐에 따라 성능이 천차만별이다, k가 hyper parameter이다

- Hierarchical Agglomerative Clustering
: 데이타를 유사한 순서대로 묶어서 계층구조를 만드는 방식으로 데이터를 묶어주는 방법
: 상향식 계층 클러스터로 아래에서 부터 위로 점차 데이타를 묶어 나간다
: 장점 - 원하는 similarity와 linkage를 사용 할 수 있어, 다양한 공간에서 다양한 형태의 클러스터를 찾을 수 있다, dendrogram을 사용하여 최적클러스터개수를 찾을 수 있다, 
: 단점 - k-mean에 비해 매우 느리다, 대용량에 적합하지 않다

- DBSCAN
: Density-Based Spatial Clustering of Application With Noise 로 정의한 밀도에 따라 인접한 데이터를 계속해서 묵어나가는 방법
: noise data를 outlier로 취급하여 분류한다
: outlier를 찾는 문제에도 활용한다 - 불량품검출, 사기거래 감지 등
: 장점 - 다양한 형태의 데이타에서 클러스터를 잘 파악한다, outlier 정의로 품질이 좋다
: 단점 - 모든 포인트에 range query를 계산해야 해서 꽤 느리다, 고차원공간에서 성능이 떨어진다

- Spectral Clustering
: KNN Graph를 생성하여 데이터의 특징을 잘 파악한 뒤 성능이 좋은 클러스터를 생성해 주는 방법
: 대표적인 graph clustering 기법이다
: 장점 - 성능이 꽤 좋다
: 단점 - knn graph를 만들고 min-cut을 찾는게 시간이 걸린다

 

반응형

'- 배움이 있는 삶 > - AI | Big data' 카테고리의 다른 글

GPT-4o 성능평가  (0) 2024.05.21
LLM 성능평가 모델 논문  (0) 2024.05.21
MSE 정의 및 계산법 - excel 활용  (0) 2024.04.19
Open LLM Leaderboard  (0) 2024.03.21
GPT-4 evaluation : GPT-4 Technical Report  (0) 2024.03.21