분류 전체보기

1. PCA 주성분 분석 고차원의 데이터를 낮은 차원의 데이터로 바꿀 때, 어떻게 바꿔야 최대한 특징을 살리면서 차원을 낮출 수 있을까를 고안하다가 나온것이 PCA 입니다. 그렇다면 어떻게 해야 '잘' 차원을 축소시킬까? 2가지 방법이 있습니다. 1. 데이터들의 분산을 최대로 하는 축을 기준2. 데이터들의 정사영의 축을 기준 이 두 가지 방법 모두 같은 결과를 나타냅니다. 수학적으로는 다음과 같은 순서를 통해 얻을 수 있습니다. 1. N차원의 데이터로부터 Covariance Matrix 를 생성합니다.2. 생성된 covariance matrix 에서 N 개의 Eigenvector, Eigenvalue 를 찾습니다.3. 찾은 Eigenvector 를 Eigenvalue 가 큰 순서대로 정렬합니다.4. 줄이..
0. 기본 세팅 우선 한글 폰트를 설치하고, seaborn 에 한글 폰트를 설정을 해야합니다.# 한글 폰트 설치# 이 셀을 실행시키고 '런타임 > 세션 다시 시작'을 해주세요!sudo apt-get install -y fonts-nanum!sudo fc-cache -fv!rm ~/.cache/matplotlib -rfimport matplotlib.pyplot as pltimport seaborn as sns# 한글 폰트 설정sns.set_theme(font ='NanumGothic', rc = {'axes.unicode_minus' : False}, style ='whitegrid')# 샘플 플롯 생성plt.figure(figsize=(8, 6))plt.plot([-2, -..
1. Selenium Selenium 은 웹을 동작시키는 하나의 도구입니다. Selenium 패키지가 자주 업데이트 되기 때문에 Selenium 을 설치하는 방법은 매번 달라집니다. 우선 Colab 환경에서 Selenium 을 설치하는 방법입니다.from google.colab import drivedrive.mount('/content/drive')!pip install selenium!apt-get update!apt install chromium-chromedriver# !cp /usr/lib/chromium-browser/chromedriver '/content/drive/MyDrive/Colab Notebooks' # (최초 1회)!pip install chromedriver-autoinstal..
1. 웹 크롤링 크롤링? 스크래핑? 웹 크롤링은 인터넷 상에 존재하는 모든 웹 페이지를 방문하며 데이터를 수집하는 방법입니다. 크롤링은 대부분의 검색 엔진에서 사용되며(* Page Rank) 이를 통해 인덱싱 작업을 수행합니다. 스크래핑과 가장 큰 차이점은 특정한 웹 페이지가 아닌 URL 을 타고 다니며 반복적으로 데이터를 가져오는 과정이 진행된다는 점 입니다. 웹 스크래핑은 특정한 웹 사이트에서 필요한 데이터를 수집하는 방법입니다. 스크래핑은 크롤링보다는 좁은 범위에서 데이터 수집에 주로 사용됩니다. 예를 들어, 온라인 쇼핑몰에서 상품 정보를 추출하거나, 뉴스 사이트에서 최신 기사를 수집하는 등의 작업을 수행할 때 주로 사용됩니다. 크롤링에 비해 스크래핑은 특정한 웹 사이트에서 필요한 데이터를 추출하는..
https://www.acmicpc.net/problem/16946쉬워보였다. 처음에는 BFS 처음에는 그냥 속는셈 치고 문제 그대로 풀어보았다.주어진 입력을 전부 탐색하면서 벽(* 1)을 만났을 때마다 BFS 를 해준다. 그리고 이동할 수 있는 칸(* 0)의 개수를 구해서 저장해준다. 하지만, 당연히,시간초과 생각해보면,N이 최대 1,000 이고, BFS 는 최대 O(NlogN) 의 시간복잡도를 갖는다.따라서 모든 맵의 노드들에 대해(* N^2) 벽(* 1)을 만나면 BFS(* NlogN) 을 진행하므로 최대 시간복잡도는 N^3 * logN(* 10억, 10초)을 갖는다. 시간 단축을 위해서는? 시간 단축을 위해서는 중복 계산을 피해야한다. 다음과 같은 입력이 들어왔다 가정해보자4 51100100111..
https://www.acmicpc.net/problem/28707처음에는 BFS를 생각했었다.하지만 정답은 역시 다익스트라였다. BFS? 한 상태에서 여러 가지 경우로 뻗어 나갈 수 있고, 최단 거리나 최소 비용을 원하는 것이므로 처음에는 BFS 를 생각했었다.주어진 배열의 최대 길이가 8이니, 가능한 모든 배열 원소들의 조합의 경우의 수는 8! = 40320 개이다. 제한시간은 1초이므로, 중복을 제외할 수 있다면 충분하다고 생각했다. 그러기 위해서는 각 배열의 상태가 하나의 노드가 되어야했다.배열이 하나의 노드가 되어 탐색이 되어야한다는 것이다. Hash? 그래서 처음 생각한 것은 Hash 였다. 해쉬값을 통해 배열을 임의의 int 타입 데이터로 변환한다면해쉬값을 내용으로 하는 노드를 만들 수 있을..
https://www.acmicpc.net/problem/1509분할정복이다. 문제 이해 우선 팰린드롬 분할의 수가 최소가 되려면 일반적으로 팰린드롬 분할들의 길이가 길면 된다.팰린드롬 분할들의 길이가 길면 당연히 분할의 수가 반대로 줄어들기 때문이다. 그렇다면 팰린드롬의 길이를 늘릴 방법은 무엇일까? 우선 팰린드롬이 되는 조건먼저 살펴보자 조건 팰린드롬은 첫 문자와 마지막 문자가 일단 같아야한다.예를 들어 {A, B, A} 는 팰린드롬이다. 첫 문자와 마지막 문자가 같기 때문이다.{A} 는 팰린드롬이다. 첫 문자이자 마지막 문자가 A로 같기 때문이다. 하지만, 위 조건만으로는 부족하다.예를 들어 {A, B, C, A} 는 팰린드롬이 아니다. 첫 문자와 마지막 문자가 같아도 말이다. 그 다음 조건으로는 ..
https://www.acmicpc.net/problem/2098그냥 외판원 순회문제 .. 근데 나는 몰랐고 ;; 외판원 순회 외판원 순회 문제는여러 도시들이 있고 한 도시에서 다른 도시로 이동하는 비용이 모두 주어졌을 때, 모든 도시들을 단 한 번만 방문하고 원래 시작점으로 돌아오는 최소 비용의 이동 순서를 구하는 문제이다. 그래프 이론의 측면에서 해당 문제는 가장 작은 가중치를 갖는 해밀턴 순환을 구하는 문제로 치환할 수 있다. 해당 문제는 NP-난해라는 것이 증명되었다는 점에서 유명하다. NP-난해 NP-난해, NP-hard 는 NP에 속하는 모든 판정 문제를 다항 시간에 풀 수 없는 문제들의 집합이다.다항 시간이란 우리가 흔히 말하는 시간복잡도의 형태인 O(N) 과 같은 형태이다. 미리 말하자면,..
건대다니는 컴공생
'분류 전체보기' 카테고리의 글 목록 (21 Page)