본문 바로가기
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.
Chapter 2. Pandas 1편 : Time Series 머신러닝을 위한 Python 필수 라이브러리 2.2 Time Series 머신러닝을 위한 Python 필수 라이브러리, Pandas 1편 Pandas란? Python Data Analysis Library의 약어이며, R을 모티브로 하여 만들어진 파이썬 라이브러리이다. 쉽고 직관적인 관계형 또는 분류된 데이터로 작업할 수 있도록 설계된 빠르고 유연하며 표현이 풍부한 데이터 구조를 제공하고 있다. Pandas가 필요한 이유는 Numpy의 ndarray 데이터 구조는 산술 연산 작업에서 포맷이 잘 정리된 데이터 타입을 위한 기능들을 제공하고 있지만, 현실 데이터는 생각보다 정돈이 잘 되어있지 않기 때문이다. Pandas는 데이터를 표(table) 형태로 처리할 수 있어서 수집된 데이터의 전처리 등 각종 데이터 핸들링을 쉽고 편하게 할 수 있다. 그렇기.. 2022. 8. 25.
Chapter 2. Numpy 2편 : Time Series 머신러닝을 위한 Python 필수 라이브러리 1편에서는 array의 생성 방법과 타입 확인, 텐서 차원 등을 실습해 보았다면, 2편에서는 array를 직접 적용하여 실습해 보고자 한다. 2-4. numpy 인덱싱, 슬라이싱, 전치행렬 2-4-1. 인덱싱 인덱싱은 Python 리스트와 동일한 개념으로 사용되고, ‘,’(쉼표)를 통해 각 차원의 인덱스에 접근이 가능하다. 그리고 Ndarray에서 원하는 좌표 또는 특정 데이터만을 선택하는데 유용하게 사용된다. 이때 인덱싱을 할 때 0번부터 인덱스가 시작하는 것을 주의하고, 원하는 축을 지정하려면 axis를 통해 선택할 수 있다. 인덱싱 종류로는 '특정 데이터만 추출', '슬라이싱', '팬시 인덱싱', '불리언 인덱싱' 등이 있다. 인덱싱 및 슬라이싱 '특정 데이터만 추출'은 말 그대로 원하는 위치의 인.. 2022. 7. 27.
Chapter 2. Numpy 1편 : Time Series 머신러닝을 위한 Python 필수 라이브러리 Time Series 머신러닝을 위한 Python 필수 라이브러리, Numpy 1편 머신러닝 알고리즘을 공부하기 앞서, 시계열 데이터를 다루기 위해서 Python 언어의 라이브러리 사용법에 익숙해져야 할 필요가 있다. 이번 챕터에서는 라이브러리를 중점적으로 살펴보며, 여러 실습 예제를 다뤄볼 것이다. Numpy와 Pandas는 큰 규모의 데이터를 탄력적으로 작업할 수 있도록 많은 고성능 도구들을 제공한다. Numpy와 Pandas가 무엇인지 살펴보고, 그 핵심 기능들에 대해 알아보자. 실습을 위한 환경으로는 크게 Jupyter notebook을 직접 구축하여 로컬에서 사용하는 방법과 Google Colab을 사용하는 방법이 있다. 빠른 실습 환경 구축을 위해 Colab을 활용하기를 권장한다. * Nump.. 2022. 7. 27.
Chapter 1. 기초 선형대수 및 통계학 : Time Series 머신러닝을 위한 Python 필수 라이브러리 Time Series 머신러닝을 위한 기초 선형대수 및 통계학 머신러닝과 딥러닝 공부를 시작하고 싶은 분들을 위해, 여러 분야 중 시계열 데이터를 활용한 데이터 처리 및 머신러닝, 딥러닝 알고리즘을 소개하고자 한다. 이는 엑셈의 AI 기반 IT 운영 지능화 솔루션인 XAIOps의 알고리즘 모델들에 대해 이해할 수 있는 첫 걸음이기도 하다. 학습이 모두 끝난 후에는 머신러닝과 딥러닝이 무엇이며, XAIOps의 알고리즘들이 어떤 방식으로 모델링 되는지에 대한 기초적 이해에 도움이 될 것이다. 이에 앞서 데이터 처리 및 AI 알고리즘을 이해하기 위해 사전 지식으로 요구되는 기초 선형대수 및 통계학에 대해 알아보자. 우리는 왜 행렬을 공부해야 할까? 많은 양의 데이터(행렬) 구조를 변환할 때, 알고리즘(모델)의.. 2022. 6. 27.