신입 AI개발자가 준비하는 30가지 ML면접 기초 개념

WebAIMaster·2023년 5월 3일
6

면접 준비

목록 보기
5/6

머신러닝이란 무엇인가?

머신러닝은 인공지능의 한 분야로, 컴퓨터가 데이터를 통해 스스로 학습하고 예측 및 결정을 내리는 알고리즘과 기술들을 연구하는 분야이다. 머신러닝 모델은 데이터로부터 패턴을 학습하며, 새로운 데이터에 대한 예측이나 분류를 수행할 수 있다. 이를 통해 수동적인 프로그래밍 대신 데이터를 기반으로 한 예측 및 의사결정을 할 수 있다.

머신러닝과 딥러닝의 차이점은 무엇안가?

머신러닝은 컴퓨터가 데이터를 통해 학습하는 알고리즘과 기술들을 포함하는 분야이다. 딥러닝은 머신런이의 한 부분으로, 인공싱경만(Artificial Neural Networks)을 기반으로 한 방법론입니다. 딥러닝은 복잡한 문제를 해결하기 위해 다양한 계층(layer)으로 구성된 신경망을 사용하여 데이터의 추상적인 표현을 학습한다. 딥러닝은 특히 대용량 데이터를 처리하할 때 높은 성능을 보이며, 이미지 인식, 자연어 처리 등의 복잡한 문제를 해결하는 데 사용되고 있다.

머신러닝 알고리즘의 주요 종류는 무엇인가?

머신러닝 알고리즘은 크게 지도학습(Supervised Learning), 비지도학습(Unsupervised Learning), 준지도학습(Semi-supervised Learning), 강화학습(Reinforcement Learning)으로 나눌 수 있다. 대표적인 알고리즘으로는 선형 회귀(Linear Regression), 로지스틱회귀(Logistic Regression), 서포트 벡터 머신(SVM), 의사결정 트리(Decision Tree), 랜덤 포레스트(Random Forest), k-최근접 이웃(K-NN), 신경망(Neural Networks)등이 있다.

Self-supervised Learning :

지도학습이란 무엇이며 언제 사용되는가?

지도학습은 레이블이 있는 데이터를 사용하여 모델을 학습하는 방법이다. 지도학습 알고리즘은 입력 데이터와 해당 데이터의 정답(레이블)을 이용해 학습하며, 새로운 데이터에 대한 예측이나 분류를 수행할 수 있다. 지도학습은 주로 분류(Classification)와 회귀(Regression)문제를 해결하는 데 사용된다. 분류 문제는 데이터를 미리 정의된 클래스로 분류하는 것으로, 이진 분류(Binary Classification)와 다중 클래스 분류(Multiclass Classification)로 나눌 수 있다. 회귀 문제는 데이터를 통해 연속적인 값을 예측하는 것으로, 주택 가격 예측이나 주식 가격 예측 등과 같은 문제를 해결할 때 사용된다.

비지도학습이란 무엇이며, 언제 사용되는가?

비지도 학습은 레이블이 없는 데이터를 사용하여 모델을 학습하는 방법이다. 비지도학습 알고리즘은 레이블이 없는 데이터에서 패턴, 구조, 상관곤계 등을 찾아내는 데 사용됩니다. 비지도학습은 주로 군집화(Clustering)와 차원 축소(Dimensionality Reduction)문제를 해결하는 데 사용된다. 군집화는 유사한 특성을 갖는 데이터를 그룹으로 묶는 것이며, 차우너 축소는 데이터의 차원을 줄이면서 중요한 정보를 유지하는 것이다. 이러한 비지도 학습 기법은 데이터 시각화, 데이터 전처리, 특성 추출 등에 활용된다.

준지도학습이란 무엇이며 왜 사용되는가?

준지도 학습은 레이블이 있는 데이터와 레이블이 없는 데이터가 혼합된 경우에 사용되는 학습 방법이다. 일반적으로 레이블이 있는 데이터는 수가 적고, 레이블이 없는 데이터는 많은 경우가 많다. 준지도 학습은 레이블이 없는 데이터의 패턴을 이용하여 레이블이 있는 데이터로 학습된 모델의 성능을 향상 시키는 데 사용된다. 이 방법은 레이블링 비용이 높거나 데이터 수집이 어려운 경우에 유용하다.

강화학습이란 무엇이며, 어떻게 작동하는가?

강화학습은 에이전트(agent)가 환경(environment)과 상호작용하며, 보상(reward)을 최대화하는 행동(action)을 학습하는 머신러닝의 한 방법이다. 에이전트는 상태(state)를 관찰하고 행동을 취한 후, 그 결과로 보상을 받는다. 보상은 긍정적이거나 부정적일 수 있으며, 에이전트는 누적 보상을 최대화하는 행동을 학습하려고 한다. 강화학습은 게임, 로봇 제어, 자율 주행 차량 등 다양한 분야에서 적용되고 있다.

분류와 회귀의 차이점은 무엇인가?

분류는 데이터를 미리 정의된 클래스로 나누는 문제이다. 이진 분류는 두 개의 클래스로 나누는 문제이며, 다중 클래스 분류는 세 개 이상의 클래스로 나누는 문제이다. 반면 회귀는 연속적인 값을 예측하는 문제이다. 회귀 문제의 예로는 주택 가격 예측, 주식 가격 예측 등이 있다. 분류와 회귀의 주요 차이점은 출력 변수의 형태이다. 분류에서 범주형 변수를 예측하고, 회귀에서는 연속형 변수를 예측한다.

k-최근접 이유(k-NN) 알고리즘은 무엇이며, 어떻게 작동하는가?

k-최근접 이유 알고리즘은 분류 및 회귀 문제를 해결하는 데 사용되는 지도학습 방법이다. k-NN 알고리즘은 새로운 데이터 포인트에 대한 예측을 수행하기 위해 주변의 k개의 가장 가까운 이웃 데이터 포인트를 참조한다. 이웃들의 클래스 또는 값을 분석하여 새 데이터 포인트의 클래스 또는 값을 예측한다. 분류에서는 가장 많은 이웃을 가진 클래스를 선택하고, 회귀에서는 이웃 값의 평균을 계산한다. k-NN은 새롱누 데이터에 대한 예측이 이웃 데이터 포인트와 유사할 것이라는 가정이 기반한다.

서포트 벡트 머신(SVM)이란 무엇이며, 언제 사용되는가?

서포트 벡터 머신은 지도 학습 알고리즘으로, 주로 분류 및 회귀 문제에 사용된다. SVM의 핵심 아이디어는 클래스 간의 마진을 최대화하는 초평면(hyperplane)을 찾는 것이다. 마진은 초평면과 가장 가깡누 데이터 포인트(서포트 벡트) 사이의 거리로 정의된다. 이렇게 하면 새로운 데이터에 대한 일반화 성능이 향상된다. 비선형 문제에 대해서는 커널 트릭(kernel tirck)을 사용하여 고차우너 공간으로 변환한 후 초평면을 찾는다. SVM은 이미지 인식, 텍스트 분류, 생물정보학 등 다양한 분야에서 좋은 성능을 보여주며, 작은 데이터셋에서도 효과적이다.

의사결정 트리(Decision Tree)알고리즘이란 무엇이며, 어떻게 작동하는가?

의사결정 트리는 분류 및 회귀 문제에 사용되는 지도학습 알고리즘이다. 데이터를 분석하여 일련의 질문과 결정을 통해 결과를 도출하는 트리 구조를만든다. 각 노드는 특정 속성에 기밚나 질문이며, 각 분기는 해당 질문에 대핞 의사결정을 나타낸다. 잎 노드는 최종 에측 클래스 또는 값을 나타낸다. 의사결정 트리는 의사결정 과정을 이해하기 쉽고 해석하기 쉬운 시각적 표현을 제공한다. 작동 원리는 재귀적 분할을 통해 데이터를 순수한 하위 집합으로 나누는 것이다. 이 분할은 엔트로피, 지니 불순도 등의 기준에 따라 결정된다.

랜덤 포레스트(Random Forest)와 그래디언 부스팅(Gradient Boosting)의 차이점은 무엇인가?

랜덤 포레스트와 그래디언 부스팅은 모두 앙상블 기법을 사용하는 머신러닝 알고리즘이다. 랜덤 포레스트는 여러 개의 의사결정 트리를 만드록, 각 트리의 예측 결과를 집계하여 최종 결과를 얻는다. 이 트리들은 독립적으로 생성되며, 부스트트랩 샘플링과 특성 무작위를 선택을 사용하여 다양성을 부여한다. 그래디언트 부스팅은 순차적으로 개선된 여러 의사결정 트리를 만들어 학습한다. 각 트리는 이전 트리의 오차를 줄이는 방향으로 학습되며, 경사하강법을 사용하여 손실 함수를 최소화한다. 그래디언트 부스팅은 일반적으로 더 나은 성능을 제공하지만, 랜덤 포레스트보다 학습 시간이 오래 걸린다.

군집화 알고리즘의 종류와 특징을 설명하시오.

군집화는 비지도학습 기법으로, 데이터를 유사한 그룹으로 분류하는 과정이다. 주요 군집화 알고리즘은 다음과 가탇.

  • K-평균(K-means) 군집화 : K-means는 주어진 데이터를 K개의 클러스터로 묶는 알고리즘이다. 초기 중심점을 무작위로 선택한 후, 각 데이터 포인트를 가장 가까운 중심점에 할당하고, 중심점을 그룹 내 데이터 포인트들의 평균으로 업데이트한다. 이 과정을 중심점이 수렴할 때까지 반복을 한다. K-means는 속도가 빠르고 구현이 쉽지만, K값을 미리 정해야 하고 초기 중심점 선택에 민감하다.
  • 계층적 군집화 : 계층적 군집화는 데이터 포인트를 계층 구조의 클러스터로 구성한다. 점진적으로 병합하거나 분할하는 방법에 따라 두 가지 유형으로 나뉜다. 병합 계층 군집화는 모든 데이터 포인트를 개별 클러스터로 시작하여 가장 유사한 클러스터를 병합하는 과정을 반복한다. 분할 계층 군집화는 전체 데이터 세트를 하나의 클러스터로 시작하여 클러스터를 재귀적으로 분할하는 방식이다.
  • DBSCAN(Density-Based Spatial Clustering of Applications with Noise) : DBSCAN은 밀도 기반 군집화 알고리즘으로, 데이터 포인트의 밀도를 기반으로 클러스터를 형성하며, 동시에 노이즈 포인트를 구분한다. 이 알고리즘은 특정 밀도를 가진 영역에서 포인트를 찾아 클러스터를 확장하고, 밀도가 낮은 영역을 노이즈로 처리한다. DBSCAN은 클러스터의 개수를 미리 지정할 필요가 없으며, 임의의 모양의 클러스터를 찾을 수 있다.

주성분 분석(PCA)이란 무엇이며, 왜 사용되는가?

주성분 분석(PCA)은 차원 축소 기법 중 하나로, 고차우너 데이터에서 주요한 변동성을 설명하는 새로운 축을 찾아 데이터를 낮은 차원으로 투영한다. 이 과정은 공분산 행렬의 고유벡터와 고유값 분석을 통해 이루어진다. PCA는 다음과 같은 목적으로 사용된다. 데이터 시각화, 노이즈 제거, 계산 효율성 향상, 특성 간 상관성 제거 등

교차 검증(cross-validation)이란 무엇이며, 어떻게 사용되는가?

교차 검증은 머신러닝 모델의 성능을 평가하고 일반화 능력을 측정하는 방법이다. 데이터 세트를 여러 개의 하위 집합으로 나누고, 이를 통해 모델을 반복적으로 훈련 및 검증하는 과정을 거칩니다. 이 과정에서 사용되는 대표적인 교차 검증 방법은 K-겹 교차 검증이다. 데이터를 K개의 동일한 크기의 부분으로 집합으로 나눈 후, k-1개의 부분 집합으로 모델을 훈련하고 나머지 하나의 부분 집합으로 모델을 검증한다. 이 과정을 K번 반복하며, 각 반복마다 다른 부분 집합을 검증 데이터로 사용한다. 최정적으로 K개의 결과를 평균내어 모델의 성능을 평가한다. 교차 검증을 사용하면 모델이 훈련 데이터에 과적합되는 것을 방지하고, 모델의 일반화 능력을 높일 수 있다.

정규화(regularization)란 무엇이며, 왜 필요한다?

정규화는 머신러닝 모델의 복잡성을 줄이고 과적합을 방지하기 위한 기법이다. 이는 모델의 가중치에 일정한 제약을 부과하여, 가중치가 너무 커지지 않도록 한다. 정규화를 사용하면 모델이 훈련 데이터에 너무 적합하지 않아 일반화 능력이 향상된다. 대표적인 정규화 방법으로는 L1 규제와 L2 규제가 있다.

과적합(overfiting)과 과소적합(underfition)의 차이점은 무엇인가?

과적합은 모델이 훈련 데이터에 지나치게 적합하여, 새로운 데이터에 대한 일반화 성능이 저하되는 현상입니다. 이는 모델이 훈련 데이터의 노이즈까지 학습하여 발생합니다. 반면 과소적합은 모델이 훈련 데이터를 충분히 학습하지 못해, 훈련 데이터와 새로운 데이터 모두에 대한 성능이 저하되는 현상이다. 이는 모델의 복잡성이 너무 낮거나 학습이 제대로 이루어지지 않을 때 발생한다.

정확도(accuracy), 정밀도(precision), 재현율(reclaa)의 차이점은 무엇인가?

  • 정확도(accuracy)는 전체 예측 중 올바른 예측의 비율 (TP+TN)/(TP+TN+FP+FN)
  • 정밀도(precision)는 양성으로 예측한 것 중 실제로 양성인 비율 TP/(TP+FP)
  • 재현율(recall)은 실제 양성 중 양성으로 예측한 비율 TP/(TP+FN)

ROC 곡선과 AUC의 개념을 설명하시오.

ROC(Receiver Operating Characteristic) 곡선은 이진 분류 문제에서 모델으 성능을 평가하는 데 사용되는 그래프이다. ROC 곡선은 False Positive Rate(FPR)을 x 축으로, True Positive Rate(TPR, 재현율)을 y축으로 놓고, 다양한 분류 임계에 대해 그린 곡선이다. 이 곡선은 모델의 성능이 얼마나 민감한지를 보여준다.
-AUC(Area Under the Curve)는 ROC 곡선 아래의 면적을 나타내며, 모델의 성능을 하나의 숫자로 표현하는 데 사용된다. AUC 값이 1에 가까울수록 모델의 성능이 좋다고 평가할 수 있으며, 0.5는 무작위 예측과 동일한 성능을 의미한다.

하이퍼파라미터 최적화 방법들에 대해 설명하시오.

하이퍼파라미터 최적화는 머신러닝 모델의 성능을 향상시키기 위해 모델의 하이퍼파라미터를 조정하는 과정이다. 주요 하이퍼파라미터 최적화 방법에는 다음과 같은 것들이 있다.

  • 그리드 탐색(Grid Search) : 가능한 모든 하이퍼파라미터 조합을 탐색하여 최적의 조합을 찾는 방법이다. 계산 비용이 높을 수 있지만, 완전한 탐색을 수행한다.
  • 랜덤 탐색(Random Search) : 하이퍼파라미터 공간에서 무작위로 조합을 선택하여 찾는 방법이다. 계산 비용이 낮고, 일정 시간 내에 근사적인 해를 찾을 수 있다.
  • 베이지안 최적화(Bayesian Optimization) : 과거의 하이퍼파라미터 조합에 대한 결과를 활용하여 새로운 조합을 선택하는 확률 모델을 구축하는 방법이다. 보다 효율적인 탐색을 수행할 수 있다.

그리드 탐색(Grid Search)과 랜덤 탐색(Random Search)의 차이점은 무엇인가?

그리드 탐색은 하이퍼파라미터 공간을 균일하게 탐색하여 최적의 하이퍼파라미터 조합을 찾는 방법이다. 이 방법은 모든 가능한 조합을 시도하므로 계산 비용이 높을 수 있지만, 완전한 탐색을 수행한다. 그리드 탐색은 하이퍼파라미터의 가능한 값들을 미리 정의하고, 이들의 조합을 시스템적으로 탐색하며, 교차 검증을 사용하여 모델의 성능을 평가한다.

반면 랜덤 탐색은 하이퍼파라미터 공간에서 무작위로 조합을 선택하여 최적의 조합을 탖는 방법이다. 계산 비용이 낮고, 일정 시간 내에 근사적인 해를 찾을 수 있다. 랜덤 탐색은 하이퍼파라미터의 값들을 무작위로 샘플링하며, 그리드 탐색보다 더 넓은 하이퍼파라미터 공간을 탐색할 수 있다. 또한, 일부 하이퍼파라미터의 영향이 크지 않을 때, 랜덤 탐색이 효율적ㅇ니 해를 더 빠르게 찾을 수 있다.

특성 선택(feature selection)의 목적과 방법들에 대해서 설명해주세요.

특성 선택은 머신러닝 모델의 성능을 향상시키기 위해 중요한 특성만 선택하고, 불필요한 특성을 제거하는 과정이다. 특성 선택의 주요 목적은 다음과 같다.

  • 차원의 저주(curse of dimensionality) 해결 : 고차원 데이터에서 모델 학습이 어려운 문제를 완화한다.
  • 과적합(overfitting) 방지 : 불필요한 특성을 제거함으로써 모델의 복잡도를 줄이고 일반화 성능을 향상시킨다.
  • 계산 비용 감소 : 학습 시간과 추론 시간을 줄인다.
  • 해석력 향상 : 모델의 결과를 이해하기 쉽게 만든다.

특성 선택 방법에는 다음과 같은 것들이 있다.

  • 필터 방식(filter methods) : 특성 간의 상관성, 카이제곱 검정, 정보 이득 등 통계적 기준을 사용하여 특성을 선택한다.
  • 래퍼 방식(wrapper methods) : 모델의 성능을 기준으로 하여 특성을 선택한다. 순차적 특성 선택(sequential feature selection), 재귀적 특성 제거(recursive feature elimination) 등이 있다.
  • 임베디드 방식(embedded methods) : 학습 알고리즘 자체가 특성 선택을 수행한다. Lasso 회귀, 의사결정 트리(decision trees), 랜덤 포레스트(random forests) 등이 있다.

차원 축소(dimensionality reduction)의 목적과 기법들에 대해 설명하시오.

차원 축소는 고차원 데이터를 저차원 공간으로 변환하는 과정이다. 차원 축소의 주요 목적은 다음과 같다.

  • 데이터 시각화 : 고차원 데이터를 2D 또는 3D 공간에 표현하여 패턴을 쉽게 파악할 수 있다.
  • 차원의 저주 해결 : 차원이 낮아지면서 학습이 더 쉬워지고 모델의 성능이 향상된다
  • 계산 비용 감소 : 데이터 크기가 줄어들어 학습 시간과 추론 시간이 줄어든다.

차원 축소 기법에는 다음과 같은 것들이 있다

  • 주성분 분석(PCA, Principal Component Analysis) : 데이터의 분산을 최대한 보존하는 새로운 축을 찾아 변환
  • t-SNE(t-Distributed Stochastic Neighbor Embedding) : 원래 공간에서 데이터 포인트 간의 거리를 확률 분포로 나타내고, 저차원 공간에서도 유사한 확률 분포를 갖도록 데이터를 매핑한다. 이 방법은 주로 데이터 시각화에 사용된다.
  • 선형 판별 분석(LDA, Linear Discriminant Analysis) : 클래스 간의 분산을 최대화하고, 클래스 내 분산을 최소화 하는 축을 찾아 데이터를 변환한다. LDA는 지도학습 방식의 차원 축소 기법으로 분류 문제에 주로 사용된다.

머신러닝 프로젝트를 진행할 때, 데이터 전처리 과정에서 이루어지는 작업들은 무엇이 있는가?

데이터 전처리는 머신러닝 프로젝트에서 매우 중요한 단계로, 모델 성능에 큰 영향을 미친다. 전처리 과정에서 이루어지는 주요 작업들은 다음과 같다.

  • 결측치 처리 : 데이터에 결측치가 있을 경우, 해당 값을 대치하거나 해당 샘플이나 특성을 제거햐야 한다.
  • 이상치 처리 : 이상치는 데이터의 분포를 왜곡할 수 있으므로, 이를 탐지하고 적절하게 처리해야한다.
  • 데이터 인코딩 : 범주형 데이터를 머신러닝 알고리즘이 처리할 수 있는 형태로 변환해야 한다. 원-핫 인코딩이나 레이블 인코딩 등의 방법이 사용된다.
  • 데이터 스케일링 : 다양한 범위의 특성 값을 동일한 범위로 조정하는 것으로, 정규화와 표준화가 대표적인 방법이다.
  • 특성 생성 : 기존의 특성들을 이용해 새로운 특성을 생성할 수 있다. 이를 통해 모델 성능을 개선할 수 있다.
  • 특성 선택 : 중요한 특성만을 선택하여 차원을 축소하고 모델의 복잡도를 줄일 수 있다.

데이터 분균형이란 무엇이며, 이를 해결하기 위한 방법들을 설명하시오.

데이터 불균형은 머신러닝에서 클래스 레이블의 분포가 고르지 않은 상황을 의미한다. 이러한 불균형은 모델이 소수 클래스에 대해 제대로 학습하지 못하게 만들어 성능 저하를 초래할 수 있다. 데이터 불균형을 해결하기 위한 주요 방법들은 다음과 같다.

  • 오버샘플링(Over-sampling) : 소수 클래스의 샘플을 복제하여 데이터 불균형을 해결하는 방법이다. SMOTE(Synthetic Minority Over-sampling Technique)와 같은 방법을 사용할 수 있다.
  • 언더샘플링(Under-sampling) : 다수 클래스의 샘플을 제거하여 데이터 불균형을 해결하는 방법이다. Tomek Links나 Neighbourhood Cleaning Rule 등의 방법이 있다.
  • 비용 민감 모델(Cost-sensitive learning) : 소수 클래스에 대한 예측 오류에 더 높은 비용을 할당함으로써, 모델이 소수 클래스에 더 많은 주의를 기울이도록 하는 방법이다. 이를 통해 모델이 소수 클래스에 대해 더 잘 학습할 수 있게 된다.
  • 앙상블 기법(Ensemble methods) : 여러 개의 기본 모델을 결합하여 불균형 데이터에 대한 예측 성능을 향상시키는 방법이다. 예를 들어, 랜덤 포레스트나 그래디언트 부스팅과 같은 앙상블 모델은 데이터 불균형 문제를 완화하는 데 도움이 될 수 있다.
  • 임계값 조정(Threshold adjustment) : 모델의 예측 확률 임계값을 조정하여 소수 클래스에 대한 예측을 개선하는 방법이다. 기본적으로 0.5설정된 임계값을 조정하여 소수 클래스에 댛나 예측률을 높일 수 있다.

데이터 불균형 문제를 해결하기 위한 최적의 방법은 문제 도메인, 데이터의 특성 및 모델의 종류에 따라 다를 수 있다. 따라서, 여러 가지 방법을 시도해 보고 실험을 통해 가장 효과적인 방법을 선택하는 것이 좋다.

다중 공선성(multicollinearity)이란 무엇이며, 왜 문제가 되는지 설명하시오. 이를 해결하는 방법은 무엇인가?

다중 공선성은 머신러닝에서 독립 변수들 간에 강한 상관관계가 존재하는 상황을 의미한다. 다중 공선성이 발생하면 다음과 같은 문제가 발생할 수 있다.

  • 모델의 해설력이 떨어짐 : 변수 간의 강한 상관관계 때문에 각 변수의 독립적인 영향력을 알기 어려워 진다.
  • 모델의 불안정성 : 변수 간의 상관고나계가 크면, 작은 데이터 변화에도 모델 계수가 크게 변할 수 있다.

다중 공선성을 해결하기 위한 주요 방법들은 다음과 같다.

  • 변수 제거 : 상관관계가 높은 변수 중 하나를 제거하여 다중 공선성 문제를 해결할 수 있다. 이때 도메인 지식을 활용하여 중요하지 않은 변수를 선택하는 것이 좋다.
  • 변수 결합 : 상관관계가 높은 변수들을 결합하여 새로운 변수를 생성할 수 있다. 예를 들어, 가격과 면적이 상관관계가 높다면, 가격/면적 변수를 생성할 수 있다.
  • 차원 축소 : 주성분 분석(PCA)과 같은 차우너 축소 기법을 사용하여 다중 공선성 문제를 완화할 수 있다. 차원 축소를 통해 상관관계가 높은 변수들의 영향을 줄일 수 있다.
  • 정규화(Regularization) : 릿시(Ridge) 회귀와 같은 정규화 기법은 다중 공선성 문제를 완화하는 데 도움이 된다. 정규화를 통해 모델 계수의 크기를 제한하여 불안정성을 줄일 수 있다.

앙상블 학습(Ensemble Learning)이란 무엇이며, 어떻게 작동하나요? 주요 앙상블 기법들을 설명하시오.

앙상블 학습은 어러 개의 기본 학습 모델을 결합하여 전체적인 예측 성능을 향상시키는 머신러닝 기법이다. 이 방법은 개별 모델의 단점을 서로 상쇄하고 강점을 조합함으로써, 더 안정적이고 정확한 예측 결과를 도출할 수 있다. 주요 앙상블 기법들은 다음과 같다.

  • 배깅(Bagging) : 부트스트랩 표본(Boostrap samples)을 추출하여 각 표폰에 대해 기본 모델을 학습시키고, 이들 모델의 예측을 집계함으로써 최종 예측을 얻는 방법이다. 대표적인 예로 랜덤 포레스트(Random Forest)가 있습니다.
  • 부스팅(Boosting) : 순차적으로 모델을 학습시키면서, 이전 모델의 오류를 줄이는 방향으로 가중치를 조절해 나가는 방법이다. 그래디언트 부스팅(Gradient Boosting)과 XGBoost, LightGBM, catBoost 등이 대표적인 부스팅 기법이다.
  • 스태킹(Stacking) : 여러 개의 기본 모델을 학습시킨 후, 이들 모델의 예측 결과를 입력으로 사용하여 새로운 메타 모델(meta-model)을 학습시키는 방법이다. 이렇게 하면 기본 모델들의 예측을 조합하여 더 좋은 성능을 얻을 수 있다.

텍스트 데이터를 처리할 때, 어떤 전처리 작업들이 필요가며, 이를 어떻게 구현하나?

텍스트 데이터 전처리는 머신러닝 모델에 입력하기에 적합한 형태로 변환하는 과정이다. 주요 전처리 작업은 다음과 같다.

  • 토큰화(Tokenization) : 텍스트를 단어, 문장, 혹은 다른 의미 있는 단위로 분리하는 과정이다.
  • 정규화(Normalization) : 단어를 기본 형태로 변환하는 과정으로, 대소문자 통일, 어간 추출(stemming), 표제어 추출(lemmatization) 등이 포함된다.
  • 불용어 제거(Stopword removal) : 빈번하게 등장하지만 의미가 거의 없는 단어들을 제거하는 과정이다. 예를 들어 "a", "an", "the", "and", "in" 등의 단어들이 불용어로 간주된다
  • 특수 문자 및 숫자 제거 : 텍스트에서 특수 문자와 숫자를 제거하여 노이즈를 줄이는 작업이다. 하지만 일부 경우에는 숫자나 특수 문자가 유용한 정보를 제공할 수 있으므로, 이를 제거할지 여부는 상화에 따라 결정해야 한다.
  • 단어 임베딩(Word Embedding) : 텍스트 데이터를 고정된 크기의 벡터로 변환하는 과정이다. 이를 통해 텍스트 데이터를 머신러닝 모델에 적용할 수 있다. 대표적인 방법으로는 Word2Vec, GloVe, FastText 등이 있다.

이러한 전처리 작업들은 대부분의 프로그래밍 언어에서 사용 가능ㅎ나 라이브러리를 통해 구현할수 있다. 예를 들어, 파이썬에서는 NLTK(Natural Language Toolkit), SpaCy, Gensim 등의 라이브러리를 활용할 수 있다.

시계열 데이터를 처리할 때 어떤 특성이 고려되어야 하며, 어떤 모델을 사용하는가?

시계열 데이터는 시간 순서에 따라 측정된 데이터로, 일정한 간격으로 수집되거나 불규칙한 간격으로 수집될 수 있다. 시계열 데이터를 처리할 때 고려해야할 주요 특성은 다음과 같다.

  • 계절성(Seasonality) : 일정한 시간 간격으로 반복되는 패턴이다. 예를 들어, 매년 여럼철에 전력 사용량이 증가하는 경우 계절성을 고려해야 한다.
  • 추세(Trend) : 시계열 데이터에서 관측되는 장긱적인 증가 혹은 감소의 경향이다.
  • 주기(Cyclicity) : 시간에 따라 반복되는 패턴으로, 일정하지 않은 주기를 갖는다.
  • 불규칙성(Irregularity) : 시계열 데이터에서 예측하기 어려운 무작위 변동성을 나타낸다.

시계열 데이터를 처리하기 위한 모델에는 다양한 방법이 있다. 주요 모델은 다음과 같다.

  • ARIMA(AutoRegressive Integrated Moving Average) : 자귀회귀, 이동평균, 차분을 결합한 선형 모델로, 시계열 데이터의 추세와 게절성을 모델링한다.
  • 상태 공간 모델(StatesSpace Model) 및 칼만 필터(Kalman Filter) : 시간에 따라 변화하는 시스템의 상태를 추정하고 예측하는 모델이다. 숨겨진 상태 변수와 관측 변수 간의 관계를 모델링하여 시계열 데이터를 분석한다.
  • LSTM(Long Short-Term Memory) 및 GRU(Gated Recurrent Unit) : 순환 신경망(RNN)의 변형으로, 시계열 데이터의 장기 패턴을 학습하는 데 효과적이다. 이러한 몯레은 시퀀스 데이터를 처리하기 때문에 시계열 데이터에 적합하다.
  • Prophet : 페이스북에서 개발한 시계열 예측 라이브러리로, 비선형 추세, 계절성 및 휴일 효과를 고려한 모델링이 가능하다
  • 다변량 시계열 몯레(Multivariate Time Series Model) : 여러 시계열 변수를 동시에 고려하는 모델로 VAR(Vector Autoregression) 및 VARIMA(Vector AutoRegressive Integrated moving Average)등이 있다.

이 외에도 다양한 시계열 분석 및 예측 모델이 존재하며, 데이터의 특성과 문제 설정에 따라 적합한 모델을 선택하는 것이 중요하다. 또한, 피처 엔지니어링(Feature Engineering)을 통해 시계열 데이터의 정보를 더욱 효과적으로 활용할 수 있다.

머신러닝 모델의 성능을 평가하기 위한 지표들은 무엇인가?

  • 정확도(Accuracy) : 정확도는 전체 예측 중 올바르게 예측한 비율을 나타낸다. 정확도는 분류 문제에서 가장 간단하고 직관적인 성능 지표이다. 그러나 데이터 불균형이 있는 경우 정확도만으로는 모델 성능을 제대로 평가하기가 어렵다.

  • 정밀도(Precision) : 정밀도는 양성 클래스로 예측한 새플 중 실제로 양성 클래스인샘플의 비율이다. 즉, 모델이 얼마나 정확하게 양성 클래스를 예측하는지를 타나낸다.

  • 재현율(Recall) : 재현율은 실제 양성 클래스 중 모델이 양성 클래스로 예측한 비율이다. 즉, 실제 양성 클래스를 얼마나 잘 찾아내는지를 나타낸다.

  • F1 스코어(F1 Score) : 정밀도와 재현율의 조화 평균으로, 두 지표의 균형을 나타낸다. F1 Score는 정밀도와 재현율이 동시에 고려되어야 하는 경우에 유용한 지표이다.

  • ROC 곡선(Receiver Operating Characteristic Curve)과 AUC(Area Under the Curve) : ROC 곡선은 여러 임계값에서의 모델 성능을 시각화하며, AUC는 ROC 곡선 아래의 면적이다. AUC는 0에서 1사이의 값을 가지며, 값이 클수록 모델의 성능이 좋다고 판단된다.

  • 평균 제곱 오차(Mean Squared Error, Mse) 및 평균 절대 제곱 오차(Mean Absolute Error, MAE) : 회귀 문제의 경우, MSE와 MAE는 모델이 예측한 값과 실제 값 사이의 차이를 측정하는 지표이다. 두 지표 모두 낮을수록 모델의 성능이 좋다고 판단한다.

머신러닝 모델의 성능 평가는 문제의 특성과 목적이 따라 적절한 지표를 선택해야한다. 일부 지표는 특정 상황에서 더 유용할 수 있으므로, 상황에 맞는 지표를 사용하여 모델의 성능을 평가하는 것이 중요하다. 추갖거으로 다음과 같은 지표들도 고려할 수 있다.

  • 결정계수(R-squared) : 회귀 문제에서 사용되는 결정계수는 모델이 설명하는 데이터의 분산 비율을 나타낸다. 0에서 1사이의 값을 가지며 값이 클수록 모델이 데이터를 잘 설명하고 있다고 판단한다.
  • 로그 손실(Log Loss) : 로그 손실은 분류 문제에 사용되며, 모델이 예측한 확률 분포와 실제 확률 분포 사이의 차이를 측정한다. 로그 손실이 작을수록 모델의 성능이 좋다고 판단한다.
  • Matthews 상관 계수(Matthews Correlation Coefficient, MCC): MCC는 이진 분류 문제에서 사용되며, TP(True Positive), TN(True Negative), FP(False Positive), FN(False Negative) 값을 사용해 계산합니다. MCC는 -1에서 1 사이의 값을 가지며, 값이 클수록 모델의 성능이 좋다고 판단합니다.
  • 쿨백-라이블러 발산(Kullback-Leibler Divergence): 쿨백-라이블러 발산은 두 확률 분포 간의 차이를 측정합니다. 이 지표는 분류 문제에서 모델이 예측한 확률 분포와 실제 확률 분포 사이의 차이를 평가하는 데 사용됩니다.

각 성능 지표는 특정 상황이나 문제에 적합할 수 있으므로, 모델을 평가하고 개선할 때 여러 지표를 고려하는 것이 좋습니다. 이를 통해 모델의 성능을 더 정확하게 이해하고, 더 나은 결정을 내릴 수 있습니다.

0개의 댓글