본문 바로가기
Chapter 3-4. 앙상블과 랜덤 포레스트 Chapter 3-4. 앙상블과 랜덤 포레스트 이전 회에서 다루었던 과적합 문제를 해결하는 방법 중, 앙상블이 머신러닝에서 많이 사용된다. 이번 회에서는 앙상블의 종류와 앙상블이 어떻게 모델 성능을 향상시키는지 알아보고 랜덤 포레스트에 대해 실습해 볼 것이다. 앙상블이란? 가장 좋은 모델 하나를 사용하는 것보다 여러 모델의 예측을 결합하면 더 좋은 예측 결과를 얻을 수 있다. 앙상블이란 여러 모델을 결합하여 만든 예측기를 뜻한다. 아래 예시로 앙상블을 이해해보자. 위 이미지의 5개 모델은 전부 70%의 정확도를 가진다. 5개 모델을 앙상블로 만들었을 때 성능이 얼마나 향상되는지 알아보자. 5개 모델이 예측 결과를 각각 만들었을 때 최종 결과는 5개 모델의 과반수를 따르는게 타당하다. 나올 수 있는 전체 .. 2023. 3. 30.
창의력, 사실 AI가 잘하는 일 챗GPT가 등장하자 알파고 이후 전 세계에서 다시 인공지능을 주목하고 있습니다. 현재의 인공지능은 2016년 알파고 등장과는 또 다른 위압감으로 다가옵니다. 챗GTP가 주는 충격은, 바둑에 한정하지 않고 Anyone, Anytime, Anywhere이기 때문입니다. 챗GPT는 누구나 어디에든 활용할 수 있는 대화형 인공지능 서비스입니다. ‘이거 알 방법 없나?’ 싶을 때 요즘은 너도나도 챗GPT에 물어보라고 합니다. 한마디로 흥미롭고 무섭다고 해야 할까요? 스테이플러의 역사, 중학생 회장선거 연설문, 크로아티아에서 이탈리아로 가는 페리 정보부터 시작해, 홈페이지에 들어갈 광고 배너 문구, MS Bing에서 기업 주소를 변경하는 방법까지 10초 안에 요구에 거의 근접한 정보를 줍니다. 『챗GPT-4 인공지.. 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.
Chapter 2. Pandas 2편 : Time Series 머신러닝을 위한 Python 필수 라이브러리 2.2 Time Series 머신러닝을 위한 Python 필수 라이브러리, Pandas 2편 2.2.3 원소선택, 인덱싱 2.2.3.1 series 인덱싱 인덱싱은 [위치] 또는 [‘인덱스명’]으로 인덱싱이 가능하다. In [1]: import pandas as pd import numpy as np In [2]: series_data = [2,4,6,8] In [3]: series_data = pd.Series(series_data) In [6]: series_data Out[6]: 0 2 1 4 2 6 3 8 dtype: int64 In [7]: series_data[1] Out[7]: 4 * 여러 값 인덱싱 및 슬라이싱 한 번에 여러 값을 인덱싱 하게 될 때는 위치나 인덱스명 둘 다 짝을 이루는 값.. 2022. 8. 25.