본문 바로가기
728x90

전체 글424

Baekjoon Training #2630 #2630 색종이 만들기 import sys input = sys.stdin.readline # 시간단축용 n = int(input()) # 색종이 변의 길이 base = [list(map(int,input().split())) for _ in range(n)] # 색 베이스를 2차원 배열로 세팅 ans_list = [] # 정답을 담을 ans_list 초기화 # 색 구분하는 check함수 def check(x, y, n): color = base[x][y] # 시작점 색을 기준점으로 설정 # 2중 for문을 통해 전체 색 조사 for i in range(x, x+n): for j in range(y, y+n): if color != base[i][j]: # 확인중인 칸의 색이 기준점 색과 다르면 n2 .. 2023. 3. 30.
Lecture6 - Electric Field 전기장 전기장은 다음과 같이 방향을 갖는 화살표를 이용하여 표현된다. Electric Field Intensity 아래 그림과 같이 Q1이 1쿨롱의 단위 전하에 미치는 힘을 의미한다. 쿨롱의 법칙을 이용하여 수식화하면 다음과 같이된다. Electric field of a charge off-origin 위는 전하가 중점에 존재하지 않은 경우의 공식이다. 위의 그림과 공식은 n개의 전하가 있을때 각각의 전하가 특정 점에 미치는 자기장을 각각 계산하여 더하는 것을 의미한다. 전하 & 전하 밀도 이를 벡터로 표현을 해보면 다음과 같다. 2023. 3. 30.
Lecture5 - Columb's Law 쿨롱의 법칙 쿨롱은 실험을 통해 자기력은 전하량과 비례하고 전하사이의 거리의 제곱에 반비례한다는 것을 알아냈다. 그 후에 정확한 계수를 알아내어 다음과 같은 공식이 나왔다. 벡터에 대해서 공부하였으니 그것을 이용하여 벡터 표현을 해본다면 다음과 같다. 위와 같은 상황이라면 다음과 같이 표현된다. 2023. 3. 30.
Udemy - 머신러닝의 모든 것 (로지스틱 회귀) Logistic Regression 다양한 회귀들에 대해서 배웠다. 그러나 다음과 같은 경우에 어떤식으로 회귀를 진행해야할지 전혀 감이 잡히지 않는다. 원래알고있던 회귀를 이용하면 굉장히 이상한 결과가 나온다. 사실 이런 데이터는 기업에서 본인들의 상품을 선택한 사람에 대한 데이터와 같이 yes or no인 겨우 많이 보일 수 있는 데이터인데 지금까지 배운 지식으로는 어떤 모델을 써야할지 판단할 수 없다. 이때 아래의 sigmoid함수와 수학적 식을 이용하여 만들어진 logistic regression function을 이용할 수 있다. Customer Prediction 고객의 나이와 추정수입을 통해 제품을 구매할 손님인지 구매하지 않을 손님인지 예측을 해보도록 하자 이는 실제 세계에서도 있을 법한 모.. 2023. 3. 26.
Baekjoon Training #1891 #1891 사분면 Source Code d, num = input().split() # d: 총 단계 수, num: 이동 경로를 나타내는 문자열 d = int(d) # d를 정수형으로 변환 x, y = map(int, input().split()) # x: 가로 이동거리, y: 세로 이동거리 size = (2**d) def find(num, idx, curX, curY, size): # 단계가 0이 되면 현재 좌표를 기억하고 리턴 if size == 0: # 전역 변수선언 global tarX, tarY tarX, tarY = curX, curY # 타겟 좌표 설정 return # 자리수별로 번호에 따른 다음 이동을 찾아 재귀 호출 if num[idx] == '1': find(num, idx+1, cur.. 2023. 3. 25.
Udemy - 머신러닝의 모든 것 (회귀 모델 선택) 최적 모델 선택 데이터 전처리과정은 생략하고 빠진 데이터나 범주 데이터가 없는 완전한 데이터셋을 이용하여 진행하도록한다. 이는 이전에 시계열 데이터 분석 책에서 다루었던 UCI 머신 러닝 저장소의 고전적인 데이터이다. 약 만개의 데이터로 이루어져있는 복합 발전소 데이터이다. 첫번째부터 엔진온도, 배기진공, 주변기압, 상대습도라는 독립 변수(features)와 에너지라는 종속 변수로 이루어진 데이터이다. Source Code 이전까지 배운 다양한 회귀 코드들의 끝에 R squared를 평가하는 코드를 추가하여 어떤 방식의 회귀가 가장 효율적인지 확인한다. from sklearn.metrics import r2_score r2_score(y_test, y_pred) 결과 # Multiple_linear [[.. 2023. 3. 23.
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.
728x90