본문 바로가기
728x90

전체 글429

실전 시계열 분석 - Intro 시계열의 개요와 역사 시계열 분석(Time Series Analysis)은 시간 순서대로 정렬된 데이터에서 의미 있는 요약과 통계 정보를 추출하기 위한 것으로 과거 행동을 진단할 뿐만 아니라 미래행동을 예측하기 위해 이용된다. 과거부터 의학, 기상학, 경제학, 천문학등 다양한 학문에서 이용되어왔고 최근들어 기술의 발전으로 더욱 의미 있는 높은 수준의 결과를 만들어내고 있다. 머신러닝에서 시계열 분석 기계 학습은 시계열 데이터를 분석하는 데 점점 더 인기 있는 도구가 되었다. 시계열 분석에 적합한 머신러닝 알고리즘 예시들은 다음과 같다. 자기 회귀 통합 이동 평균(ARIMA): ARIMA는 관측치와 과거 관측치의 선형 조합 사이의 의존성을 모델링하는 시계열 예측 알고리즘이다. 지수 평활(ETS): ETS는.. 2023. 3. 5.
Baekjoon Training #1715 #1715 카드 정렬하기 import heapq import sys input = sys.stdin.readline n=int(input()) cards = [int(input()) for _ in range(n)] heapq.heapify(cards) # cards 리스트를 힙으로 바꿔주는 함수 ans = 0 # 결과의 초기값을 0으로 설정 while len(cards) > 1: # cards 리스트의 길이가 1보다 클때 연산을 진행 tmp = heapq.heappop(cards) + heapq.heappop(cards) # 최소값 두개의 합을 tmp에 저장하고 heapq.heappush(cards, tmp) # 해당 tmp값을 heap에 넣음 ans += tmp # 정답에 tmp값을 더해나감 prin.. 2023. 3. 5.
Lecture1,2 - 알고리즘 설계와 분석의 기초(1) 알고리즘이란? 알고리즘이란 어떤 작업을 수행하기 위해 입력을 받아 원하는 출력을 만들어내는 과정을 체계적 으로 기술한 것을 말한다. 다음은 문제, 입출력 및 알고리즘에 대한 간단한 예시이다. ▪ 문제: 100명의 학생들의 시험점수 중 최대값을 찾으라 ▪ 입력: 100명의 학생들의 시험점수 ▪ 출력: 위 100개의 시험점수들 중 최대값 ▪ 알고리즘: Algorithm maxScore(x[], n) { x[1...n]의 값을 차례대로 보면서 최대값을 계산 위에서 찾은 최대값을 반환 } 또한 현존하는 어떤 알고리즘으로도 polynomial시간 내에 최적의 해를 구할 수 없는 "Travelling Salesman Problem"도 있다. ▪ 입력: 어떤 영업사원이 방문해야 할 고객 n명의 위치 ▪ 출력: 모든 .. 2023. 3. 5.
Lecture1,2-Vector Analysis(1) Scalar vs Vector Scalar: 크기만 존재하는 물리량 ex) temperature, time, ditance, mass, density, pressure, voltage... Vector: 크기와 방향이 모두 존재하는 물리량 ex) force, velocity, acceleration Scalar field: 스칼라장(스칼라 물리량의 위치별 분포) Vector field: 벡터장(벡터 물리량의 위치별 분포) Vector 벡터는 위와 같이 시점, 종점, 길이로 표현이된다. 벡터간의 연산은 다음과 같다. 벡터 연산도 결합법칙과 교환법칙이 성립된다. Vector Representation using Orthogonal Rectangular Unit Vectors 위의 방식처럼 벡터를 표현하면 다.. 2023. 3. 3.
Yale - Financial Markets (Lesson #2) VAR VAR은 두가지 의미로 쓰인다. 하나는 variance(편차), 또다른 하나는 "value at risk"(최대예상손실액)이다. 포트폴리오의 편차는 변동성의 척도로 정의된다. 최대예상손실액이라는 뜻인 VaR은 a를 소문자로 쓰고 1987년 주식 폭락 이후에야 생긴 신생 용어이다. 이는 재무 담당자가 투자나 포트폴리오의 위험성을 정량화하기 위해 사용되는 단위이고 확률과 기간에 따라 달러 단위로 표현된다. 예를 들어 1%, one-year value at risk of $10 million라고 한다면 1년동안 1000만 달러를 잃을 확률이 1%라는 것이다. Stress Tests 2007-2008년의 금융 위기 이후에 인기가 많아진 위험성을 표현하는 또다른 방식이다. 이는 기업이나 포트폴리오의 위험성.. 2023. 3. 2.
Yale - Financial Markets (Lesson #1 - Intro) Financial Markets 코세라에서 예일대학교의 금융시장 강의를 수강하여 금융시장에 대한 기본 지식을 쌓으려고 한다. 강의를 시작하기에 앞서 예일 대학교의 카탈로그에 오랫동안 있던 안내문의 내용이 인상적이어서 담아보았다. " Financial institutions are a pillar of civilized society, directing resources across space and time to their best uses. (금융 기관은 공간과 시간을 넘나드는 자원을 최대한 활용하도록 유도하는 문명 사회의 기둥이다.) " 금융 기관의 중요성을 한줄로 나타내는 좋은 표현으로 느껴졌다.금융 기관의 중요성을 한줄로 나타내는 좋은 표현으로 느껴졌다. Finance is Technology 금.. 2023. 3. 1.
Udemy - 머신러닝의 모든 것 (Multiple Linear Regression-2) 스타트업 투자 프로그램 위와 같은 데이터 셋을 이용하여 투자해야할 스타트업을 선정하는 프로그램을 만들어본다. Data preprocessing 기본적으로 데이터 전처리 과정이 필요하다. state 항목이 수치형 데이터가 아니라 항목형 데이터이므로 encoding과정을 통해 수치형 데이터로 변환을 해준다. 이때 one-hot encoding 방식, 즉 3개의 범주이므로 3개의 항목을 만들어주어 해당하는 항목에만 1이들어가고 나머지는 전부 0으로 맞춰주는 방식을 이용하여 수치형 데이터로 만들고자 한다. Training from sklearn.linear_model import LinearRegression sklearn(사이킷런) 라이브러리에서 linear_model 모듈의 LinearRegression 클.. 2023. 2. 28.
Google ML crash course (6) Linear regression(2) 이번에는 실제 데이터셋을 이용해보고자 한다. 캘리포니아의 집값에 대한 데이터셋을 이용하여 선형회귀 과정을 밟아보자. #@title Import relevant modules import pandas as pd import tensorflow as tf from matplotlib import pyplot as plt # The following lines adjust the granularity of reporting. pd.options.display.max_rows = 10 pd.options.display.float_format = "{:.1f}".format 머신러닝에서 csv파일을 이용하는데 csv파일이란 Comma-seperated values 파일로 콤마.. 2023. 2. 27.
Google ML crash course (5) tf.keras tf.keras를 사용하여 선형 회귀를 구현해보고자 한다. import pandas as pd import tensorflow as tf from matplotlib import pyplot as plt build_model(my_learning_rate)라는 빈 model을 build하는 함수와 train_model(model, feature, label, epochs)라는 model을 학습시키는 함수를 정의한다. #@title Define the functions that build and train a model def build_model(my_learning_rate): """Create and compile a simple linear regression model.""" # .. 2023. 2. 25.
Baekjoon Training #11053 #11053 가장 긴 증가하는 부분 수열 import sys input = sys.stdin.readline n = int(input()) # 수열의 크기 입력 num_list = list(map(int,input().split())) # 수열을 이루는 숫자 입력 # dp 리스트 생성 dp = [0 for _ in range(n)] # 이중 for문을 이용하여 증가수열 관리 for i in range(n): for j in range(i): if num_list[i] > num_list[j] and dp[i] < dp[j]: dp[i] = dp[j] dp[i] += 1 print(max(dp)) # 최대 증가수열의 크기 출력 이중 for문은 최대 증가수열을 찾는 알고리즘으로 이 코드의 핵심 발상이다. 우.. 2023. 2. 24.
Baekjoon Training #2606 #2606 바이러스 직관적으로 푼 풀이 import sys input=sys.stdin.readline num=int(input()) # 컴퓨터의 수 입력 net=int(input()) # 연결된 컴퓨터쌍의 수 pc=[0 for _ in range(num+1)] # 컴퓨터수+1개의 0으로 이루어진 pc리스트 생성 pc[1]=1 # 감염시킬 1번 컴퓨터를 1로 세팅 for i in range(net): a,b=map(int,input().split()) if (pc[a]==1 or pc[b]==1): # 연결된 컴퓨터중 한대라도 감염되어있다면 # 전부 감염됨 pc[a]=1 pc[b]=1 # 1번 컴퓨터로 인해 감염된 컴퓨터의 수 출력 print(pc.count(1)-1) 첫번째 풀이는 문제를 읽자마자 간단.. 2023. 2. 22.
OpenAI 숨바꼭질 전문(?) AI Intro Two Minute Papers라는 평소에 즐겨보는 AI 논문 리뷰 유튜브에서 정말 재미있는 주제의 내용이 있어서 소개하고자한다. https://www.youtube.com/watch?v=Lu56xVlZ40M 간단하게 캐릭터들의 시야각이 존재하고 해당 시야에 들어오면 도망치는 팀이 잡히는 구조이다. 해당 룰만 주어지고 잡는팀, 도망치는 팀이 어떻게 숨바꼭질의 전문가가 되어가는지 알아보는 실험이다. 다만 필드에 중립 물체가 존재해서 해당 물체들을 움직여서 각팀에 유리하게 활용할 수 있다. 실험을 진행한 초반에는 아무 의미 없이 두팀이 뛰어다니다가 시야에 걸리면 게임이 끝나는 것이 반복이었으나 어느새 도망치는 팀은 필승전략을 생각해냈다. 주어진 두 물체로 문 두개를 막아서 절대 술래에게 걸리지 않.. 2023. 2. 19.
728x90