본문 바로가기
Chapter 3-6. 차원 축소 Chapter 3-6. 차원 축소 머신러닝에 대해 공부하다 보면 차원의 저주 (Curse of Dimension) 라는 이야기를 종종 보게 될 것이다. 본 챕터에서는 "차원의 저주" 란 무엇인지 설명하고, 이 문제를 해결하기 위한 차원 축소 기법에 대해서 알아보도록 하자. 차원의 저주 (Curse of Dimension) 현실 세계에서 우리가 다루게 될 데이터는 굉장히 다양하고 많은 특성들을 가지고 있다. 예를 들어, "영화"라는 데이터를 예시로 설명하자면, "영화"라는 데이터를 나타내기 위한 특성으로는 영화의 제목, 개봉 시기, 장르, 감독, 배우, 예산, 시리즈 유무, 평점, 누적 관객 수, 수익 등 수 많은 특성들이 존재한다. 데이터 특성의 수가 많다라는 것은 머신러닝 학습 시 훈련 시간의 증가와 .. 2023. 5. 25.
Chapter 3-5. 서포트 벡터 머신 (Support Vector Machine) Chapter 3-5. 서포트 벡터 머신 (Support Vector Machine) 서포트 벡터 머신은 선형/비선형 분류, 회귀, 이상치 탐색 등에 사용할 수 있는 다목적 머신러닝 모델이다. 분류 문제에 많이 쓰이며, 중간 크기의 데이터셋에 적합한 모델이다. 지금부터 서포트 벡터 머신의 이론에 대해 알아보고 실습을 통해 분류 및 회귀에서 어떻게 사용하는지 알아보자. SVM의 아이디어와 자세한 수식 및 원리에 대해 분류 모델을 중심으로 먼저 알아보고, 회귀 모델의 원리에 대해 공부해보자. SVM의 기본 개념은 그림 1 와 같이 두 샘플 사이에 선을 그어, 그 선의 폭이 최대가 되도록 하여 두 샘플을 구분한다. 조금 더 자세히 설명하자면, 샘플이 특성을 정의하는 n 개의 변수들로 표현된다고 할 때, 샘플들.. 2023. 4. 27.
Chapter 3-4. 앙상블과 랜덤 포레스트 Chapter 3-4. 앙상블과 랜덤 포레스트 이전 회에서 다루었던 과적합 문제를 해결하는 방법 중, 앙상블이 머신러닝에서 많이 사용된다. 이번 회에서는 앙상블의 종류와 앙상블이 어떻게 모델 성능을 향상시키는지 알아보고 랜덤 포레스트에 대해 실습해 볼 것이다. 앙상블이란? 가장 좋은 모델 하나를 사용하는 것보다 여러 모델의 예측을 결합하면 더 좋은 예측 결과를 얻을 수 있다. 앙상블이란 여러 모델을 결합하여 만든 예측기를 뜻한다. 아래 예시로 앙상블을 이해해보자. 위 이미지의 5개 모델은 전부 70%의 정확도를 가진다. 5개 모델을 앙상블로 만들었을 때 성능이 얼마나 향상되는지 알아보자. 5개 모델이 예측 결과를 각각 만들었을 때 최종 결과는 5개 모델의 과반수를 따르는게 타당하다. 나올 수 있는 전체 .. 2023. 3. 30.
Chapter 3-3. 결정 트리 Chapter 3-3. 결정 트리 결정 트리는 트리 구조를 기반으로 데이터에서 규칙을 학습하여 분류(Classification) 문제와 회귀(Regression) 문제, 그리고 다중출력 문제까지도 해결할 수 있는 지도학습 계열의 머신러닝 알고리즘이다. 결정 트리 모델은 나무가 가지를 엮은 것과 같은 구조로 (마치 스무고개 처럼) 복잡한 데이터에서도 빠르게 동작하는 것이 큰 특징이며, 널리 알려진 머신러닝 알고리즘 중 하나인 랜덤 포레스트(Random Forest)의 기본 구성이 되는 모델이다. 결정 트리(Decision Tree) 결정 트리는 특정 기준(질문) 을 따라 데이터를 구분 짓는다. 결정 트리의 가장 첫 번째 기준은 트리에서 최초 깊이인 루트 노드(Root node) 에서 시작한다. Python.. 2023. 2. 22.
Chapter 3-2. 모델 훈련 Chapter 3-2. 모델 훈련 머신러닝 모델을 블랙박스로 취급하여도 모델을 훈련시키는 것은 가능하다. 하지만 훈련이 이루어지는 원리를 이해한다면 적절한 기법을 선택하여 훈련시간은 단축시키거나 모델의 성능을 높이는 것이 가능하다. 이번 장에서는 Chapter 3. 머신러닝에서 소개한 학습률, 비용 함수 등에 이어서 모델훈련에 필요한 몇 가지 개념을 다룬다. 경사 하강법 이전 장에서 언급한 것과 같이 비용 함수(Cost function)는 입력 데이터에 대한 오차를 계산하는 함수이다. 머신러닝에서는 오차를 줄이기 위해 다양한 최적화 알고리즘이 이용된다. 그 중에서 경사 하강법(Gradient Descent)은 가장 일반적인 최적화 알고리즘이다. 그림과 같이 비용 함수가 주어진 경우 경사 하강법은 파라미터.. 2023. 1. 19.
Chapter 3. 머신러닝 Chapter 3. 머신러닝 머신러닝의 정의와 활용 머신러닝이란 무엇인가? 머신러닝(Machine Learning)은 인공지능(Artificial Intelligence)의 한 부분으로, 입력된 데이터로부터 컴퓨터가 학습하도록 프로그래밍하는 것을 말한다. 이 챕터에서는 머신러닝을 분류하는 두 가지의 방법에 대해 알아볼 것이다. * 머신러닝을 분류하는 첫 번째 방법: 지도 학습, 비지도 학습, 준지도 학습, 강화 학습 지도 학습(Supervised Learning)은 훈련 데이터에 레이블(정답)이 있는 학습 방법이며, 대표적으로 K-nearest neighbors(K-최근접 이웃), Linear regression(선형 회귀), Logistic regression(로지스틱 회귀), Support vecto.. 2022. 11. 23.
Chapter 2-3. 기초 시계열 분석 Chapter 2-3. 기초 시계열 분석 이번 장에서는 시계열 분석에서 자주 나오는 용어 및 알아야 할 개념들을 간단하게 정리해보고자 한다. 확률과정(Stochastic Process) 확률과정은 확률변수들의 수열이다. 즉, {Y(t), t = 0, ±1, ±2, ...} 형태로 나타낼 수 있으며, 시계열 데이터를 이해하려면 Y(t) 들의 결합 확률 분포를 분석해야 한다. 왜냐하면, 일반적인 시계열 데이터는 독립이 아니기 때문에, 결합 확률 분포를 각 확률 변수의 분포들로 분해할 수 없기 때문이다. 하지만, 평균과 분산을 분석하면 결합 확률 분포의 많은 부분을 이해할 수 있다. 평균, 분산, 공분산, 상관계수 앞서 Chapter 1. 기초 선형대수 및 통계학에서 간단하게 소개한 개념들을 수식으로 알아보자.. 2022. 10. 26.
Chapter 2-2. 시계열 데이터 전처리 Chapter 2-2. 시계열 데이터 전처리 앞서 Chapter 2에서는 numpy와 pandas를 이용하여 데이터 구조를 변형하는 방법에 대하여 알아보았다. 이번 챕터에서는 pandas에서 제공하는 시계열 도구와 가장 널리 쓰이는 타임스탬프(timestamp)라는 구조를 사용하여 설명할 것이다. 먼저, Datetime이라는 파이썬 라이브러리에서 제공하는 datetime을 사용하여 현재 날짜 및 시간을 알아보고, timedelta를 사용하여 시간적 차이를 표현해보자. In [1]: from datetime import datetime now = datetime.now() now Out[1]: datetime.datetime(2022, 5, 20, 11, 42, 5, 90657) Timedelta를 이용하.. 2022. 9. 28.
Chapter 2. Pandas 3편 : Time Series 머신러닝을 위한 Python 필수 라이브러리 2.2.10 데이터 로딩과 저장 2.2.10.1 파일 읽기 pandas에는 표 형식으로 되어있는 포맷으로 되어진 파일을 읽을 수 있도록 기능을 제공하고 있다. 그 중에서 주로 사용하는 read_csv와 read_table만 사용해보자. 해당 예제파일은 쉼표로 구분 되어있기 때문에 read_csv을 사용해서 dataframe으로 읽어올 수 있다. Read_table의 경우는 구분자를 쉼표로 지정해서 읽어올 수 있다. In [1]: !cat ex1.csv Out [2]: ,a,b,c,d 0,1,2,3,4 1,5,6,7,8 2,9,10,11,12 3,13,14,15,16 In [3]: df = pd.read_csv('ex1.csv', index_col = 0) In [4]: df Out [5]: abcd 01.. 2022. 8. 25.