전체 글
공부 기록
-
t-SNE(t-distributed stochastic neighbor embedding) 높은 차원의 복잡한 데이터를 2차원에 차원축소하는 방법이다. 고차원 공간에서 유사한 두 벡터가 저차원에서도 유사하도록 원공간에서 점들 간의 유사도를 보존하며 차원을 축소한다. 시각화에 주로 사용하며 대표적으로 워드 임베딩을 시각화할 때 사용된다. 이전에 소개한 PCA, LDA와 달리 비선형적인 차원 축소 방법이다. t-SNE에 대해 자세히 알아보기 위해 먼저 이름의 뜻부터 살펴보도록하자. t-distributed: t-분포를 따른다. stochastic: 반복 프로세스에서 무작위로 선정 neighbor: 관심 있는 데이터 지점 근처에 위치하는 데이터 지점 embedding: 임베딩. 고차원에서 저차원으로 만든다. ..
[ML] Dimensionality Reduction #2 t-SNE, LLEt-SNE(t-distributed stochastic neighbor embedding) 높은 차원의 복잡한 데이터를 2차원에 차원축소하는 방법이다. 고차원 공간에서 유사한 두 벡터가 저차원에서도 유사하도록 원공간에서 점들 간의 유사도를 보존하며 차원을 축소한다. 시각화에 주로 사용하며 대표적으로 워드 임베딩을 시각화할 때 사용된다. 이전에 소개한 PCA, LDA와 달리 비선형적인 차원 축소 방법이다. t-SNE에 대해 자세히 알아보기 위해 먼저 이름의 뜻부터 살펴보도록하자. t-distributed: t-분포를 따른다. stochastic: 반복 프로세스에서 무작위로 선정 neighbor: 관심 있는 데이터 지점 근처에 위치하는 데이터 지점 embedding: 임베딩. 고차원에서 저차원으로 만든다. ..
2023.02.03 -
Curse of dimensionality(차원의 저주) 일반적으로 차원이 증가할 수록 데이터 포인트 간의 거리가 기하급수적으로 멀어진다. 즉, 희소한 구조(sparse)를 가지게 되고 공간의 성김이 생기게 된다. 위 그림에서 볼 수 있다시피 1차원에서 보이는 점들의 거리가 차원이 늘어날수록 멀어지는 모습을 볼 수 있다. 이런 현상이 일어나게 될 경우, 위와 같은 데이터로 학습 시켰을 때 예측 정확도가 떨어지는 현상이 나타난다. 이런 현상은 거리기반의 모델인 KNN에서 특히 치명적이다. Dimensionality Reduction(차원 축소) 고차원, 즉 데이터의 피처가 많으면 차원의 저주 뿐만 아니라 개별 피처 간에 상관관계가 높기 때문에 선형 모델(대표적으로 linear regression)에서 다중..
[ML] Dimensionality Reduction #1 PCA, LDACurse of dimensionality(차원의 저주) 일반적으로 차원이 증가할 수록 데이터 포인트 간의 거리가 기하급수적으로 멀어진다. 즉, 희소한 구조(sparse)를 가지게 되고 공간의 성김이 생기게 된다. 위 그림에서 볼 수 있다시피 1차원에서 보이는 점들의 거리가 차원이 늘어날수록 멀어지는 모습을 볼 수 있다. 이런 현상이 일어나게 될 경우, 위와 같은 데이터로 학습 시켰을 때 예측 정확도가 떨어지는 현상이 나타난다. 이런 현상은 거리기반의 모델인 KNN에서 특히 치명적이다. Dimensionality Reduction(차원 축소) 고차원, 즉 데이터의 피처가 많으면 차원의 저주 뿐만 아니라 개별 피처 간에 상관관계가 높기 때문에 선형 모델(대표적으로 linear regression)에서 다중..
2023.02.03 -
문제 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합니다..
[프로그래머스][파이썬] LV.3 이중우선순위큐문제 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합니다..
2023.02.03 -
문제 설명 길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다. 큐는 먼저 집어넣은 원소가 먼저 나오는 구조입니다. 이 문제에서는 큐를 배열로 표현하며, 원소가 배열 앞쪽에 있을수록 먼저 집어넣은 원소임을 의미합니다. 즉, pop을 하면 배열의 첫 번째 원소가 추출되며, insert를 하면 배열의 끝에 원소가 추가됩니다. 예를 들어 큐 [1, 2, 3, 4]가 주어졌을 때, pop을 하면 맨 앞에 있는 원소 1이 추출되어 [2, 3, ..
[프로그래머스][파이썬] LV.2 두 큐 합 같게 만들기문제 설명 길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다. 큐는 먼저 집어넣은 원소가 먼저 나오는 구조입니다. 이 문제에서는 큐를 배열로 표현하며, 원소가 배열 앞쪽에 있을수록 먼저 집어넣은 원소임을 의미합니다. 즉, pop을 하면 배열의 첫 번째 원소가 추출되며, insert를 하면 배열의 끝에 원소가 추가됩니다. 예를 들어 큐 [1, 2, 3, 4]가 주어졌을 때, pop을 하면 맨 앞에 있는 원소 1이 추출되어 [2, 3, ..
2023.02.02 -
문제 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망의 v1..
[프로그래머스][파이썬] LV.2 전력망을 둘로 나누기문제 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망의 v1..
2023.02.01 -
문제 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으로 한 칸씩 이동하며, 게임 맵을 벗어난 길은 갈 수 없습니다. 아래 예시는 캐릭터가 상대 팀 진영으로 가는 두 가지 방법을 나타내고 있습니다. 첫 번째 방법은 11개의 ..
[프로그래머스][파이썬] LV.2 게임 맵 최단거리문제 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으로 한 칸씩 이동하며, 게임 맵을 벗어난 길은 갈 수 없습니다. 아래 예시는 캐릭터가 상대 팀 진영으로 가는 두 가지 방법을 나타내고 있습니다. 첫 번째 방법은 11개의 ..
2023.01.31