본문 바로가기
728x90

전체 글430

Lecture2 - Sequential experiments Sequential experiments 연속적인 실험의 예시를 봐가며 이해를 해보자. 0에서1 사이의 무작위 실수 10개를 선택했을때 초기 5개의 숫자는 1/4이하이고 그후 5개의 숫자는 1/2이상일 확률을 구하는 것이다. 우리는 당연히 (1/4)^5 * (1/2)^5로 계산을 할 것이다. 각각의 event가 독립적이기 때문에 이런식으로 곱으로 표현하면된다. The Binomial Probability Law 동전의 앞뒷면 같이 둘중의 하나의 결과로 나오는 binomial한 상황이다. 이때 (nk) (세로로 나열)은 nCk 즉 n개 중에서 k번을 선택하는 경우의 수 이다. 이 경우도 eror, not error 두가지로 나누어지는 예시문제를 통해 알아보자. encoding, decoding과정에서 오류.. 2023. 3. 22.
Yale - Financial Markets (Lesson #6) Forecasting 위 그래프는 S&P500을 통해 알아본 2016년도까지의 주식시장 추세이다. 위의 Dinner Experiment는 교수님이 저 추세 그래프를 보고 2050년까지의 주식시장 추세를 예측해보라고 학생들에게 시킨 것이다. 그랬더니 대부분의 학생들은 상승과 추락의 반복인 다음과 같은 그래프를 그렸다. 그러나 시장 경제의 효율성을 믿는 사람이라면 위와 같이 예측할 수 없는 상승점과 하락점을 선택하면 안된다. 현재의 시장가격이 미래의 시장가격과 일치할 것이라고 예측하고 일직선을 그려야한다. 위와 같은 경향성은 행동경제학의 개념과도 연관이 있다. 이는 대표성 휴리스틱이라고 하는 것으로 사람들은 진짜 '예측'을 하는 것이아니라 과거의 일이 미래의 일을 대표한다고 생각한다. 랜덤워크이론은 1905.. 2023. 3. 21.
Lecture4-Vector Analysis(3) 벡터 성분 변환 Rectangular, Cylindrical, Spherical 좌표계간에 벡터 변환도 자연스럽게 진행할 수 있어야한다. 위처럼 직교좌표계에서 원기둥, 구좌표계로 변환이되는 것이고 이는 아래와 같은 표로 정리하여 암기하면 효율적이다. 예제를 통해 연습해보면 도움이된다. 직교 좌표계에서의 벡터 표현을 원기둥 좌표계로 바꾸는 과정이다. ρ,Φ,z에 해당하는 공식을 적용하여 변환하는 과정을 볼 수 있다. 미소표현 각각의 좌표계에서 미소길이, 미소넓이, 미소부피 표현을 알아두어야 적분연산을 자유롭게 진행할 수 있다. 직교좌표계에서의 미소표현 원기둥좌표계에서의 미소표현 구좌표계에서의 미소표현 2023. 3. 21.
Udemy - 머신러닝의 모든 것 (회귀 모델 성능 평가) R Squared R Squared는 아래와 같이 회귀선 기준으로 계산한 잔차제곱합(SSres)과 평균Y값을 기준으로 계산한 총제곱합(SStot)으로 계산된다. 위의 그래프와 식을 보면 알 수 있듯이 총제곱합은 평균값에 의해 결정된 고정값이므로 R Squared값을 1에 가깝게 만들기 위해 잔차제곱합을 최소화하려고 노력할 것이다. Adjusted R Squared R Squared의 대표적인 문제점은 새로운 feature가 들어올때 발생한다. 예를들어 아래 그림과 같이 x1,x2 feature가 존재하던 다항회귀모델에 새로운 x3 feature가 들어오면 문제가 발생한다. y값에는 변화가 없으니 총제곱합은 일정할텐데 새로운 변수가 들어와 SSres값을 높여서 R Squared값을 높이니 모델은 x3의 가.. 2023. 3. 20.
Lecture5,6 - 정렬알고리즘(1) Selection Sort 선택정렬(Selection Sort)은 배열(array)을 정렬할 때 가장 간단한 방법 중 하나이다. 이 알고리즘은 배열을 처음부터 끝까지 반복하면서 가장 작은 값을 찾아서 배열의 맨 앞에 위치시키는 과정을 반복하는 방식으로 동작한다. 이전에 다루었었기 때문에 정렬알고리즘은 간단하게 그림으로 설명하고 넘어간다. SelectionSort Psuedo code SelectionSort(A) // A는 배열 n = A.length // 배열의 길이를 구합니다. for i = 0 to n-1 do // 첫 번째 인덱스부터 끝까지 반복합니다. minIndex = i // 가장 작은 값의 인덱스를 저장할 변수를 초기화합니다. for j = i+1 to n do // i 다음 인덱스부터 끝.. 2023. 3. 20.
Google ML crash course (8) Validation Training set과 test set을 이용해 모델 개발을 반복하는 방식은 반복할때마다 학습 데이터를 학습하고 테스트 데이터를 평가하여 그 평가 결과를 사용하여 learning rate와 feature과 같은 다양한 모델 초매개변수의 선택 및 변경사항을 결정한다. 이러한 반복은 비용이 많이 발생하지만 모델 개발에서 중요한 부분이다. 초매개변수 설정은 모델 품질을 크게 향상할 수 있으며, 가능한 한 최상의 품질을 얻을 수 있도록 항상 시간과 컴퓨팅 리소스에 예산을 투자해야 한다. 그러나 여기에는 문제가 있다. Training set에 반복하여 학습할 경우 과적합의 위험이 점점 증가한다는 것이다. 따라서 이러한 문제를 방지하기 위해 Validation set(검증데이터)를 구축한다. .. 2023. 3. 19.
Pytorch Basic Intro 4/1부터 데이터 인텔리전스 연구실에서 학부연구생으로 연구활동에 참여하게 되어서 해당 연구실에서 최소한의 연구를 진행하기 위해 필요한 배경지식을 쌓는 과정의 일환으로 Pytorch에 대해 공부를 하고자한다. 파이토치의 라이브러리나 모듈 문법같은 내용은 아래 첨부한 링크인 위키독스에서 굉장히 잘 정리되어있기 때문에 개념적인 내용이나 새롭게 알게된 내용들 위주로 정리하고자한다. Tensor 딥러닝에서 텐서란, 다차원 배열을 나타내는 데이터 구조이다. 텐서는 기본적으로 스칼라, 벡터, 행렬 등과 같은 다양한 차원의 배열을 나타낼 수 있으며, 딥러닝에서 입력 데이터, 가중치, 편향 등의 모든 데이터를 텐서로 표현한다. 예를들어 딥러닝에서 가중치와 편향을 표현할 때도 텐서를 사용하며, 이러한 텐서들은 .. 2023. 3. 18.
Udemy - 머신러닝의 모든 것 (Random Forest Regression) Random Forest 랜덤 포레스트는 앙상블 학습의 한 버전인데 앙상블 학습에는 그라데이션 부스팅 같은 다른 버전들도 있다. 앙상블 학습은 여러 알고리즘이나 같은 알고리즘을 여러개 조합하여 훨씬 더 강력한 알고리즘을 만드는 것을 의미한다. 이때 랜덤 포레스트는 여러 개의 의사 결정 트리를 결합한 앙상블 기법을 이용했다. 랜덤 포레스트를 단계별로 살펴보자. STEP1: Training set에서 랜덤한 K 데이터 포인트들을 고른다. STEP2: 고른 데이터들에 연관된 의사 결정 트리를 만든다. STEP3: 몇개의 트리를 만들지 결정하고 STEP1,2를 반복하여 여러개의 트리를 만든다. STEP4: 학습된 각각의 트리에서 결과를 받아서 예측 값을 도출한다. (적어도 500개정도의 트리, 즉 500개의 결.. 2023. 3. 18.
Udemy - 머신러닝의 모든 것 (Decision Tree) CART CART는 Classification Trees와 Regression Trees를 모두 포함한 개념이다. 회귀를 공부하고 있었던 만큼 이번에는 Regression Tree에 집중해서 공부해보고자 한다. 위와 같이 데이터들을 어떤 기준에 따라 나누어 가다가 정보 엔트로피라는 복잡한 수학적 개념에 따라 알고리즘이 split을 멈춰야할 때를 파악하고 정보추가를 멈춘다. 이 잎(위와 같은 데이터를 leaf라고 부름)들을 가르는 기준선의 수에 따라 알고리즘에 정보를 더 넣을 수도 있고 넣는 걸 멈출 수도 있다. 4가지 split을 통해 구성된 알고리즘이다. x1 < 20이 기준인 split1 이후에 20보다 큰 값들을 x2 < 170이 기준인 split2로 또 나누고 20보다 작은 값들은 x3 < 200.. 2023. 3. 17.
Yale - Financial Markets (Lesson #5) Invention takes time 후대에 보기에는 당연한 것처럼 느껴지는 많은 발명품들이 해당 발명품이 나오며 발전을 이룩하기까지 많은 시간이 걸린 경우가 허다하다. 예를들어 바퀴라는 개념은 최소 650년에서 950년에는 나왔다. 그 근거는 당시 멕시코 지역의 아이들의 장난감에 바퀴가 등장했기 때문이다. 그러나 요즘은 정말 당연한 바퀴달린 여행가방은 1972년이 되어서야 Bernard Sadow에 의해 발명되어 등장하였다. 그리고 1991년에서야 요즘들고 다니는 여행가방에 달린 롤러보드가 발명되어 가방을 끄는것에 안정감을 더했다. 금융시장도 이처럼 오랜시간이 지남에 따라 점점 발전하고 있다. Limited liability 유한책임은 1811년 뉴욕주에 의해 개념이 완전히 정립되었다. 유한 책임( L.. 2023. 3. 17.
실전 시계열 분석 - 시계열 데이터 발견 및 다루기(1) 시계열 데이터는 어디서 찾는가 시계열 데이터를 찾기 위해서는 우선 어떤 데이터를 찾아야 하는지 정확히 아는 것이 중요하다. 어떤 자료가 제일 적합할지는 두 가지 목적에 따라 달라진다. 1. 학습과 실험 목적에 맞는 데이터셋 찾기 2. 시간 지향적인 형태가 아닌 데이터에서 시계열 데이터 생성하기 첫번째 목적의 경우 나의 분석이 옳은 것인지 판단할 수 있는 데이터셋을 찾아야한다. 보통 캐글과 같은 대회용 데이터셋이나 저장소 데이터셋이 적절하다. 반면 두번째 목적의 경우 타임스탬프가 찍힌 데이터를 식별하고, 이를 시계열로 변환하고, 다듬고, 또다른 데이터와 결합하여 흥미로운 시계열 데이터를 만들기 위해 다양한 방법을 고안해야한다. 미리 준비된 데이터셋을 찾으려면 시계열 데이터 저장소를 알고 있어야 한다. UC.. 2023. 3. 16.
Baekjoon Training #11501 #11501 주식 import sys input = sys.stdin.readline n = int(input()) # 몇번의 거래를 진행할지 입력 for _ in range(n): # 거래 횟수만큼 반복 days = int(input()) # 몇일동안 거래진행할지 결정 stock = list(map(int, input().split())) # 거래일동안 주식가격 리스트 stock = list(reversed(stock)) # 역순정렬 리스트로 변경 max_price = stock[0] # max_price 초기화 profit = 0 # 총 이익 0으로 초기화 for price in (stock[1:]): # 0번 인덱스를 max_price로 설정하였으므로 1번 인덱스부터 조사 진행 if price > .. 2023. 3. 16.
728x90