목록 code review/study (31)
KEEP GOING
1. 주성분분석(PCA. Principal Component Analysis) 여러 독립변수들을 주성분이라는 서로 상관성이 낮은 변수들의 선형결합으로 만들어 변수들을 요약, 축소하는 기법이다. - 공분산행렬이나 상관계수행렬을 통해 모든 변수들을 잘 설명해주는 주성분을 찾는다. - 독립변수들과 주성분과의 거리를 나타내는 정보손실량을 최소화하고 분산을 최대화한다. - 제1주성분이 전체 변동을 최대로 설명할 수 있어야 하고 제2주성분은 제1주성분과 상관성이 낮아 제1주성분이 설명하지 못하는 나머지 변동을 가장 잘 설명할 수 있어야 한다. * 공분산행렬과 상관계수행렬의 차이 공분산행렬 상관계수행렬 변수의 측정단위를 그대로 반영한다. 변수의 측정단위를 표준화한다. 특징 변수들의 측정단위에 민감하다. 사용 사례 모..
목차 1. 시계열 데이터 시계열 데이터란 시간의 흐름에 따라 관측된 데이터이다. 시계열 분석을 통해 미래 값을 예측하고 어떤 경향이나 주기, 계절성 등을 파악할 수 있다. 시계열 데이터는 두 가지로 나뉘는데 1) 비정상 시계열 시계열 분석으로 핸들링하기 어려운 자료로 대부분의 시계열 자료가 비정상 시계열이다. 2) 정상 시계열 비정상 시계열을 변환하여 만든 핸들링 하기 쉬운 시계열 자료를 말한다. 정상 시계열이 되기 위해서는 정상성이라는 조건을 따라야 한다. 2. 정상성(Stationary) 시계열 데이터는 정상성이라는 3가지 성질을 만족해야 한다. 1) 시간에 관계없이 평균이 일정하다. 2) 시간에 관계없이 분산이 일정하다. 3) 공분산은 시간에 의존하지 않고 오직 시차에만 의존한다. 세 가지 중 하나..
목차 1. 회귀분석 하나 또는 여러 개의 독립변수(x)가 종속변수(y)에 미치는 영향을 추정하는 통계 기법이다. 2. 회귀분석 종류 1) 단순선형회귀 2) 다중선형회귀 3) 로지스틱회귀 4) 다항회귀 5) 비선형회귀 2. 회귀분석의 가정 1) 회귀분석의 가정 - 선형성: 선형회귀분석에서 독립변수와 종속변수는 선형관계여야 한다. (예외적으로 다항회귀/비선형회귀는 선형성을 갖지 않아도 된다.) 산점도를 통해 변수 간의 선형관계를 파악할 수 있다. 만약 독립변수와 종속변수 간에 선형관계가 아니라면 로그 변환을 통해 직선을 만들거나 비선형회귀분석을 하면 된다. - 비상관성 다중선형회귀일 경우, 독립변수들 간에 상관관계가 없어야 한다. 즉, 다중공선성 문제를 해결해야 한다. 그리고 잔차들끼리 상관관계가 없어야 한..
[미로1] https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14vXUqAGMCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제의 경우 dfs와 bfs 두가지 방식으로 모두 구현할 수 있다. 출발지에 도달하는 경우 dfs는 return문을 걸어 재귀를 빠져나가고 bfs는 while문을 break해주는 방식으로 풀이하였다. (nx, ny)가 방문하지 않는 좌표라면 이동할 수 있는 경우이기 때문에 탐색을 이어가고 visited[nx][ny] = 1로 방문 처리한다. [dfs : 정답 코드] def dfs(x,..
[기타레슨] https://www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net [성공한 코드] 블루레이 크기를 mid로 두고 이진 탐색으로 풀이한다. 이때 블루레이 크기는 최소 1이어야 되니까 start는 1, 그리고 최대 크기는 길어봤자 전체 강의 길이이므로 end는 max(blue_rays)로 잡는다. 그리고 블루레이 크기(answer)는 강의를 자를 수는 없기 때문에 아무리 작아도 최대 강의 길이(max(blue_rays)보다 작아선 안된다. # 크기가 mid인 ..
https://www.acmicpc.net/problem/2473 2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net [투포인터] n = int(input()) lst = sorted(map(int, input().split())) liquid = 4*(10**9) answer = [] for i in range(n-1): start, end = i+1, n-1 while start < end: total = lst[i] + lst[start] + lst[end] if abs(total) <..
https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net [dfs] 트리의 지름을 구하는 공식을 모르면 풀 수 없는 문제 * 트리의 지름 구하기 : 아무 노드나 하나를 정해서(root) 가장 먼거리에 있는 노드(far_node)를 구하고, 그 노드와 가장 먼 노드의 거리를 구하면 트리의 지름이다. * 귀류법을 사용하면 명제를 증명할 수 있다고 한다. import sys sys.setrecursionlimit(10**5) def dfs..
https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net board = [list(input().rstrip()) for _ in range(12)] moves = [(1,0), (0,1), (-1,0), (0,-1)] answer = 0 def dfs(x, y, count, color): global tmp tmp[x][y] = True for dx, dy in moves: nx = dx + x ny = dy + y if 0