전체 글 189

시계열 데이터 분석하기 : 데이터의 정상성

시계열 데이터를 분석하는 목적은 아래와 같습니다. 시간에 따른 데이터의 패턴을 파악하기 위함. (ex. 계절성, 추세와 같은 변동성 + 자기상관성 등) 분석된 패턴에 기반한 예측 모형을 통해 Forcasting(시계열 예측)하기 위함. 시계열 분석은 쉽게 말하면 과거의 값의 패턴을 분석해서 미래의 값을 추정하기 위한 것입니다. 이를 위해 가장 기본적인 것은 시계열 데이터가 정상성을 유지해야한다는 것입니다. Why? 왜 정상성을 유지해야하는가?? 왜 잡음만 있는 상태에서 시계열을 예측해야하는가? 먼저 이론적으로는 정상성을 띈다는 말은 시계열 데이터가 시점과 상관없이 일정한 평균과 분산을 가진다는 의미이다. 어떤 시점에 데이터를 측정해도 일정한 변동폭(정규분포를 따르는 잡음)을 가진다는 의미입니다. 이를 ..

AI/Time Series 2024.03.05

Swift언어로 IOS앱 만들어보기 : XCode 시작하기

Apple에서는 Vision, Vision Kit, CoreML 등 컴퓨터비전에 관련된 다양한 툴들을 제공하고있습니다. 이러한 도구들을 활용해서 OCR기능이 되는 IOS앱을 만들어보려고 합니다. 우선, IOS앱을 만들기 위해서는 swift라는 언어를 사용해야하고, XCode라는 macOS전용 개발 툴을 사용해야합니다. 우선 xcode를 mac app store에서 설치한 후, 실행해줍니다. 실행하면 아래와 같은 화면이 뜨게 되는데, 여기에서 원하는 방식으로 프로젝트를 생성하거나 불러옵니다. 아래의 방식으로도 Create New Project 와 같은 동작을 수행할 수 있습니다. 아래의 사진처럼 필요한 내용들을 입력해주고, Next를 눌러 프로젝트를 생성하면 app을 만들 첫번째 준비가 되었습니다. 위..

시계열 데이터 EDA(Exploratory Data Analysis) 하기 (2)

이전 글에서는 보편적인 EDA 과정에 대해서 간략하게 소개하였습니다. 이번 글에서는 좀 더 구체적으로 시계열 분석 및 예측을 하기 위해서 EDA 과정 중에 어떤 데이터 처리가 필요한지 알아보겠습니다. 결측치 처리 (대치법: imputation) 이전 글에서는 결측치 데이터를 제거하는 방법에 대해서만 다루었습니다. 결측치 제거 이외에도 다양한 방법으로 결측치를 처리할 수 있는 대치법에 대해 설명하겠습니다. 선형 보간법(interpolation) : 앞뒤의 데이터 값에 대해 선형식을 세워 중간의 누락데이터를 채워넣는 방법 그 외의 보간법 : 전체 데이터에 대한 min(최소), max(최대), mean(평균), mode(중앙값) 등을 채워넣는 방법 forward fill(포워드 필) : 누락 직전의 값을 그대..

AI/Time Series 2024.02.22

시계열 데이터 EDA(Exploratory Data Analysis) 하기 (1)

EDA는 데이터를 잘 이해하기 위해서 꼭 필요한 과정으로, 일반적으로 시계열 예측 모델을 생성하기 전에 인사이트를 얻기위해 주로 수행하게 된다. 이번 글에서는 EDA의 전반적인 절차와 구체적인 방법들에 대해 자세히 다루어보려 한다. 보편적인 EDA 과정은 세가지 분류로 나누어볼 수 있다. Data Description (ex. 변수 설명, 통계량 요약 등) Cleaning (ex. 전처리, 결측치 처리 등) Visualization (ex. 그래프 시각화) * 해당 글은 캐글의 Time Series Prediction Tutorial with EDA 를 참고하여 작성되었습니다. 코드와 데이터에 구체적인 사항은 원문을 읽어보시길 바랍니다. 보통 시계열 데이터들은 csv (excel) 파일로 저장된다. 따라..

AI/Time Series 2024.02.20

시계열 데이터 기초 용어, 이론, 특징 알아보기

시계열 데이터는 하나의 변수에 대해 일정한 시간 간격으로 기록된 데이터이다. 다양한 예시로 날씨 온도, 주가의 시간에 따른 변화, 인구성장률 등이 있다. 추가 예시들과 시계열에 대한 자료는 패스트캠퍼스 깃허브에서 살펴볼 수 있다. 현실에서 시계열 데이터에서는 하나의 변수이외에 여러 변수들이 값에 영향을 미칠 수 있다.횡단면 데이터(cross-sectional data) : 한 시점에서 여러 변수에 대해 모아둔 데이터종단면 데이터(longitudinal data) : 한 변수에 대해서 여러 시점에 대해 시계열로 모아둔 데이터패널 데이터(Panel data) : 횡단면 데이터 + 종단면 데이터를 모아둔 전체 데이터 시계열 데이터를 분석할 땐, 횡단면 데이터끼리 i.i.d(independent and iden..

AI/Time Series 2024.02.18

무엇을 이루기 위한 전제 조건.

그 무엇보다 꾸준함에 대한 이야기가 좋아서 샤라웃 해봅니다. 유튜브 [수학의 즐거움, Enjoying Math]의 영상 https://youtu.be/HWDNVMVBfUs?si=oNegdFcakAVHNIvk 어떤 상황, 환경에서든지 내 책임, 의무만 다하면 된다. 그 외의 시간에는 무엇을 해도 상관없다. 어떤 것에 프로가 되기 위해서는 10년 이상 꾸준히 해야한다. 누구나 할 순 있지만 10년 이상 꾸준히 하는 것은 아무나 이루어내지 못한다. 한순간에 모든 것을 이룰 수 있을거라는 생각을 하지 않는게 좋다. 끝까지 만족되는 앎은 없다. 나 자신이 꾸준히 잘 할 수 있다는 것을 믿지 말자. 보통 꾸준히 하기 어렵기 때문이다. 내가 계속해서 할 수 밖에 없는 환경을 만들어라. 공부의 양은 무리수를 던지지 않..

Thought 2024.02.16

[IT상식] shim 심 이란?

애플리케이션에 구현된 프레임워크의 버전이 deprecated(구 버전이되어 더이상 지원하지 않는)되어 신규버전에서 호환되지 않는 경우가 흔히 발생한다. 심(shim)은 이러한 경우에 기존 애플리케이션이 돌아갈 수 있도록 지원하는 코드들이라고 생각할 수 있다. 참고 : https://en.wikipedia.org/wiki/Shim_(computing) Shim (computing) - Wikipedia From Wikipedia, the free encyclopedia Software that intercepts and modifies behavior Not to be confused with shm, an abbreviation for shared memory, often pronounced "shim"..

English/expressions 2024.01.25

[Tensorflow 2.0] 텐서플로우 데이터 구조 파악하기 (tf.data.Dataset + TFRecord)

텐서플로우로 딥러닝 모델을 학습시키기 위한 첫번째 단계로 인풋데이터를 마련해야한다. 우선, 먼저 Tensorflow에서 지원하는 data input pipeline 문서를 보고 파악해보고자 한다. https://www.tensorflow.org/guide/data tf.data: TensorFlow 입력 파이프라인 빌드 | TensorFlow Core tf.data: TensorFlow 입력 파이프라인 빌드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. tf.data API를 사용하면 간단하고 재사용 가능한 조각으로 복잡한 입력 파 www.tensorflow.org The tf.data API input pipeline은 데이터 소스에서부터 시작해야한다. tf.data.D..

[tensorflow] RaggedTensor란?

tensorflow에서 지원하는 텐서를 담을 수 있는 데이터구조 중에서 RaggedTensor라는 것이 있다. ragged는 irregular와 같은 의미로, RaggedTensor는 각 차원마다 다른 길이(length)를 가질 수 있는 데이터 구조이다. 예시로 tf.RaggedTensor( values=Tensor("StringSplit/StringSplitV2:1", shape=(None,), dtype=string), row_splits=Tensor("StringSplit/RaggedFromValueRowIds/RowPartitionFromValueRowIds/concat:0", shape=(None,), dtype=int64) ) values는 실제로 포함하고있는 데이터로 "StringSplit/..

PySpark SQL 시작하기

https://spark.apache.org/docs/latest/sql-getting-started.html#getting-started Getting Started - Spark 3.5.0 Documentation spark.apache.org 공식문서를 참고하여 작성하였습니다. 1. Starting Point : SparkSession 먼저 java를 먼저 설치하고, java/bin 경로를 환경변수로 설정해야한다. - java 설치 - 리눅스에서 java 환경변수로 설정하는 방법 셋팅을 완료하였다면 아래의 코드로 Session을 생성해준다. from pyspark.sql import SparkSession spark = SparkSession \ .builder \ .appName("Python S..

Programming/python 2024.01.04