본문 바로가기
728x90

전체 글431

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.
Yale - Financial Markets (Lesson #4) Eggs in One Basket 포트폴리오 관리를 위해 다양한 자산을 소유함으로써 위험도를 낮춤을 통해 보험을 대신할 수 있다. 이에 관한 유명한 격언 "Don't put all your eggs in one basket."이 있다. 인간이 모두 같은 리스크를 갖고 있고 측정된 데이터가 같다면 모두가 같은 포트폴리오를 원하겠지만 현실은 그렇지 않다. 위험을 감수하고자하는 정도도 모두 다르고 위험에 따른 내성과 유동성 또한 다르다. 그럼에도 변하지 않는 진리는 "전체"적인 포트폴리오 구성이 중요하고 경제관념이 있는 경제인이라면 한회사의 주가가 떨어지거나 오른것에 일희일비하면 안되고 전체 포트폴리오 평균 수익률에 반응을 해야한다는 것이다. Risk 헤지 펀드는 일반 소매시장에서 허가받지 못한 투자회사이다... 2023. 3. 15.
Baekjoon Training #2470 #2470 두 용액 메모리 초과 오답 import sys import itertools input = sys.stdin.readline n = int(input()) sol_list = list(map(int,input().split())) # 산도를 입력받음 combi_list = itertools.combinations(sol_list, 2) # 모든 조합 생성후 리스트에 담음 mixed_list = [sum(t) for t in combi_list] # 튜플로 구성된 리스트에서 튜플값들을 더하여 리스트에 다시 입력 acid_list = [abs(num) for num in mixed_list] # 해당 값들의 절대값을 리스트에 담음 min_mix = min(acid_list) # 그중 최소값을 찾음.. 2023. 3. 14.
Udemy - 머신러닝의 모든 것 (SVR) Support Vector Regression 기존의 최소 제곱법은 회귀선을 그리고 점과 회귀선 사이의 거리의 제곱의 합을 최소화하는 방법을 통해 적절한 회귀선을 찾았다면 SVR에서는 ε-Insensitive Tube를 이용한다. 이 튜브는 이름 그대로 튜브 내부의 점들의 오차는 무시한다. 튜브의 세로 길이가 중요하다. 이는 중심선에 수직이 아니라 x1축에 수직으로 측정한다. 모형에 일정 수준의 오차 허용 범위를 제공하는 것이다. 중요한 것은 튜브 외부의 점들이다. 해당 점들의 오차는 튜브중심이 아닌 튜브 그 자체까지의 거리를 통해 연산한다. Support Vector Regression이란 이름도 vector로 표현되는 오차점들이 튜브의 구조를 형성한다고 해서 붙혀진 이름이다. 계산 식은 다음과 같다... 2023. 3. 12.
[논문 리뷰] Long Short-Term Memory Long Short-Term Memory Article in Neural Computation · December 1997 Sepp Hochreiter 논문 원본 Introduction LSTM은 NLP와 같은 분야에서도 쓰이지만 time-series data 특히 stock price prediction과 같은 금융 분야에서도 쓰일 수 있는 굉장히 성능이 좋은 architecture라는 것을 알게되어 해당 논문을 읽어보기로 하였다. 논문을 통해 LSTM이 deep한 모델을 학습하는 다양한 방법론들에 대한 기본적인 방향성을 제시했음을 알게 되었고 그만큼 LSTM이 반드시 완벽히 이해하고 있어야하는 중요한 모델임을 느꼈다. Background Knowledge Time-Series Data란 일정 시간 동.. 2023. 3. 12.
Udemy - 머신러닝의 모든 것 (Polynomial Linear Regression) 다항식 회귀 아래와 같이 polynomial linear regression은 multiple linear regression과 유사하다. 그러나 polynomial linear regression은 다양한 x1, x2, ... xn 변수들이 존재하는 multiple linear regression과는 달리 같은 x1변수에 대해 n제곱 꼴로 이루어져 있음을 알 수 있다. 아래와 같은 방식으로 데이터가 분포해 있을 경우 단순 선형 회귀 방식으로는 적절한 모델을 만들 수 없다. 데이터의 분포의 경향성이 곡선에 가깝기 때문이다. Why Linear? Polynomial Linear Regression은 polynomial함에도 linear이라는 이름이 붙어있다. 이는 굉장히 이상하게 느껴질 수 있다. 여기서 .. 2023. 3. 11.
Lecture1 - Basic Concepts of Probability Theory 머릿말 1주차는 공학도로써 확률변수론이 필요한 이유, 그리고 인공지능에 대한 관심이 높아짐에 따른 확률변수론 수강생이 많아진다는 다양한 주제화 함께 교수님이 가볍게 인사하는 시간을 가졌기에 1주차는 패스하고 내가 선택과목인 확률변수론을 수강하는 이유에 대해 간단히 이야기 하고자한다. 사실 인공지능을 연구하는 사람이라면 통계학이 필수라는 것을 모르는 사람은 없을 것이다. 그러나 머신러닝 공부를 시작하지 않은 사람들은 "통계는 어짜피 컴퓨터가 분석하는거 아닌가?? 내가 왜 공부를 해야하지??"와 같은 생각을 할 수 있다. 나 또한 머신러닝 초보지만 모델을 한번 짜보는 경험을 하면서 많은 것을 느꼈다. 물론 싸이킷런 라이브러리가 기본적인 모델의 구조를 잡아주지만 데이터를 제대로 다룰 수 없는 머신러닝 연구자는.. 2023. 3. 11.
Baekjoon Training #1062 #1062 가르침 오답(by chatGPT) import itertools import sys input = sys.stdin.readline N, K = map(int, input().split()) words = [input().strip() for _ in range(N)] if K < 5: print(0) else: alpha_list = set('abcdefghijklmnopqrstuvwxyz') - set('antic') max_count = 0 for comb in itertools.combinations(alpha_list, K-5): count = sum(all(c in comb for c in w[4:-4]) for w in words) max_count = max(max_count, .. 2023. 3. 10.
Baekjoon Training #3085 #3085 사탕 게임 import sys input = sys.stdin.readline n = int(input()) board = [list(input()) for _ in range(n)] # 게임판을 세팅할 2차원 배열 board정의 max_count = 0 # 결과를 도출할 최대값 카운터 0으로 초기화 def check(): # 같은 색의 사탕이 있나 체크하는 함수 global max_count # max_count값을 전역변수로 선언 for i in range(n): cnt = 1 # 기본적을 연속된 사탕의 수는 1로 초기화 for j in range(n-1): # 오른쪽 방향 체크 if board[i][j]==board[i][j+1]: # 우측 사탕과 색이 일치하면 cnt += 1 # cnt.. 2023. 3. 9.
Yale - Financial Markets (Lesson #3) Insurance Fundamentals Risk Pooling이 보험의 모든 가치의 원천이다. Risk pooling이란 여러 수요를 통합하여 관리하게 되면 수요의 불확실성이 상대적으로 감소하게 된다는 개념이다. 사망 확률을 p라고 두고 사람들의 수를 n으로 두면 다음과 같이 risk pooling 공식을 작성할 수 있다. 이는 사건 발생 수가 늘어난다면 그 결과의 평균은 기댓값에 가까워야한다는 대수의 법칙에 의해 설명된다. 여기서 대수의 법칙은 카지노가 유지되는 원리이다. 잭팟이 터진 순간은 카지노에 손해일지 몰라도 도박이 진행될 수록 확률은 기댓값에 수렴하기에 카지노는 일정한 수익을 낼 수 있는 것이다. Moral Hazard는 도덕적 해이인데 보험을든 개인이 부적절한 방법으로 보험금을 얻어 이익을.. 2023. 3. 9.
Lecture3-Vector Analysis(2) Dot product 이전 수업에 이어서 내적 연산에 대해 알아보았다. 위와 같이 기하학적인 해석으로 내적의 기본 연산을 이해할 수도 있다. 또는 위와 같이 기하학적인 해석을 통해 추가적인 성질도 구해볼 수 있다. Cross Product 외적은 위와 같은 연산으로 결과가 벡터이고 그 방향에 주의를 해야한다. 흔히 아래와 같이 나사를 통해 방향을 기억하곤한다. 방향이 있는 벡터 값이기 때문에 교환법칙이 성립하지 않고 부호가 변한다. (AxB = -BxA) 또한 식에 sin이 있는 것을 통해 같은 벡터 두개를 외적하면 sin0이 곱해져서 0이 된다는 사실도 유추할 수 있다. 해당 사실을 통해 아래와 같은 연산이 가능함을 알 수 있다. 해당 연산의 부호가 헷갈린다면 행렬의 det값을 계산하던것을 기억하여 이.. 2023. 3. 9.
Lecture4 - 점화식과 점근적 복잡도 분석 점화식의 이해 점화식이란 어떤 함수(보통 입력 변수를 n등의 미지수로 표현)를 자신보다 더 작은 변수에 대한 함수와의 관계로 표현한 식이다. 병합 정렬 알고리즘을 통해 살펴보자 mergeSort(A[],p,r){ if(p 2023. 3. 8.
728x90