이글은 이전글과 이어집니다. dsbook.tistory.com/255 C로 만드는 자료구조- 힙(Heap)이란? 힙 (Heap)이란? 힙은 이진 트리의 하나이다. 힙의 특징은 루트 노드가 언제나 그 트리의 최댓값 또는 최솟값을 가지는 것이다. 힙의 루트 노드가 최댓값을 가지면 최대 힙, 최솟값을 가지면 최소 dsbook.tistory.com 위 글에서는 힙이란 무엇인지, 힙의 추상 자료형과 그 중 핵심인 삽입과 삭제 연산에 대해 다루었다. 이제는 실제로 코드 구현은 해볼려고 한다. 이글에서는 배열을 이용해 구현하려고 한다. 배열을 이용한 이진 트리 이진 트리는 자식 노드가 최대 2개 이기 때문에 규칙을 만들어 배열의 인덱스를 이용하여 부모,자식 노드간의 관계를 나타낼 수 있다. 규칙은 다음과 같다.( 편..
데이터 사이언스 사용 설명서 검색 결과
힙 (Heap)이란? 힙은 이진 트리의 하나이다. 힙의 특징은 루트 노드가 언제나 그 트리의 최댓값 또는 최솟값을 가지는 것이다. 힙의 루트 노드가 최댓값을 가지면 최대 힙, 최솟값을 가지면 최소 힙이라고 한다. 최대 힙은 모든 부모 노드가 자식 노드보다 큰 값을 가지느 최대 트리의 특성을 가지고 있고 최소 힙은 모든 부모 노드가 자식 노드 보다 작은 값을 가지는 최소 트리의 특징을 가지고 있다. 마지막으로 힙은 항상 완전 이진 트리이다. 힙이 되기 위한 조건을 정리하면 아래와 같다. 1. 완전 이진 트리여야 한다. 2. 최대 트리 혹은 최소 트리의 특징을 가진다. 아래는 최대 힙과 최소 힙의 예시이다. 두 개의 이진 트리 모두 완전 이진 트리이며 최대 힙은 모든 부모 노드가 자식 노드의 값보다 크기 때..
시계열 데이터 분석을 위해서 사용하는 데이터는 https://github.com/cheonbi/OnlineTSA/tree/master/Data/BikeSharingDemand에서 다운받을 수 있다. cheonbi/OnlineTSA Online Course of Time Series Analysis. Contribute to cheonbi/OnlineTSA development by creating an account on GitHub. github.com 원본 데이터는 Kaggle에서 가져온 것으로 https://www.kaggle.com/c/bike-sharing-demand/overview 에서 다운받을 수 있다. 데이터 전처리 과정 String to DateTime Frequency 설정 시계열 데..
다음의 랭킹 뉴스 페이지는 "많이 본 순", "열독률 높은 순", "댓글 많은 순", "연령, 성별"로 정리되어 있다. 각각의 랭킹뉴스 페이지의 url은 다음과 같은 형식으로 이루어져 있다. 많이 본 순 : "https://news.daum.net/ranking/popular?regDate=" + str(date) 열독률 높은 순 : "https://news.daum.net/ranking/kkomkkom?regDate=" + str(date) 댓글 많은 순 : "https://news.daum.net/ranking/bestreply?regDate=" + str(date) 연령, 성별 : "https://news.daum.net/ranking/age?regDate=" + str(date) 기본적으로 각각의..
본격적으로 시계열 분석에 들어가기 전에 기본적인 데이터 분석의 진행 방향에 대해서 먼저 다뤄보자. 이상적인 데이터 분석 단계 1. 데이터 수집 2. 데이터 전처리 3. 데이터 정리 4. 데이터 분석 5. 결과 정리 하지만, 현실적인 데이터 분석의 과정에서는 이 과정들이 칼로 벤 것처럼 딱 맞아 떨어지지 않는다! 데이터 분석 1단계 문제를 정의하는 단계 - 무엇을 예측할 것인가? (ex> 직원들의 퇴사율) - 필요한 데이터는 어떤 것인가? (ex> 직원들이 의자에서 일어나는 횟수, 화장실 가는 빈도 등) - 각 상태를 나타내는 기준은 어떻게 정할 것인가? 2단계 통상적으로 현재 우리가 집중적으로 공부하고 있는 분야 - 데이터 전처리 - 최적의 알고리즘 선정 - 선정한 알고리즘에 전처리한 데이터 입력 및 결..
ggplot2는 그래프를 만들 때 주로 사용하는 패키지로, 데이터 시각화를 쉽게 할 수 있다. ggplot2에서 많이 쓰이는 함수는 ggplot()과 qplot()이다. qplot()은 ggplot()에 비해 사용하기는 편하지만, 세부적인 기능이 적어서 전처리 단계에서 활용된다. 반면, ggplot()은 그래프의 세부 기능을 다루기 쉽기 때문에 시각화 단계에서 많이 활용된다. 1) 산점도 medical_data %로 함수를 연결하지만, ggplot2 패키지에서는 함수 연결을 +로 한다. 2) 막대 그래프 #ggplot(data = medical_data, aes(x = age, y = mean_disease)) + geom_col() ggplot(data = medical_data, aes(x = dis..
크롤링 (5), beautifulsoup4로 네이버 기사 크롤링하기 네이버 랭킹 뉴스 페이지가 개편되어 해당 코드로 기사를 가져올 수 없습니다. 해당 코드는 참고용으로만 봐주시기 바랍니다. (JY) 융합연구 1 - 크롤링 (4), beautifulsoup4로 네이버 기사 크롤링하기 dsbook.tistory.com 네이버 랭킹 뉴스만 볼 수 있던 페이지가 전면적으로 개편되면서 위 게시글에서 작성한 코드를 사용했을 때 뉴스를 가져올 수 없었다. 그래서 이번에 개편된 랭킹 뉴스 페이지를 기반으로 새롭게 크롤링하는 코드를 작성해보았다. 랭킹 뉴스 페이지에서 이전처럼 정치, 경제, 사회, 과학 등 분야별로 따로 나누어서 게시글을 찾아볼 수 없었다. 대신 각 언론사별로 많이 본 뉴스와 댓글이 많은 뉴스를 나누어서..
1. 데이터 합치기 1) 열 기준 합치기 data1
이전글에서 이진 트리의 순환을 다루었다. dsbook.tistory.com/245(이전 글) C로 만드는 자료구조- 이진 트리의 순회 트리의 순회란? 트리의 순회란 트리의 모든 모드를 한 번씩 방문 하는 것을 의미한다. 트리를 사용하면서 트리의 내용을 출력하거나 트리에서 원하는 노드를 찾고자 한다면 트리의 노드를 한 dsbook.tistory.com 이번 글에서는 이진 트리의 함수들을 다루고자 한다. 1) 복사 2) 동일성 검사 3) 노드 개수 구하기 4) 단말 노드 구하기 5) 이진 트리의 높이 구하기 위 함수들은 이진 트리의 구조와 순환 알고리즘들을 정확하게 이해하고 있다면 별다른 어려움 없이 구현이 가능하다. 이때 중요한점은 각 전위 순환, 중위 순환 ,후위 순환 알고리즘 중에서 함수에 적합한 순환..
트리의 순회란? 트리의 순회란 트리의 모든 모드를 한 번씩 방문 하는 것을 의미한다. 트리를 사용하면서 트리의 내용을 출력하거나 트리에서 원하는 노드를 찾고자 한다면 트리의 노드를 한 번씩 방문해야 한다. 근데 트리는 리스트,스택,큐와 같은 선형 자료구조가 아니라 계층 구조이기 때문에 순회 알고리즘을 잘 이해해야 하고 알고리즘에 방향성에 따라 다양한 순회 방법이 가능하다. 트리의 다양한 함수,알고리즘들은 기본으로 순회를 기반으로 하기 때문에 순회 알고리즘을 이해하고 사용용도에 따른 순회 알고리즘을 선택하는 것이 중요하다. 이진 트리의 순회 이 글에서 다루는 것은 이진 트리의 순회를 다룰 것이다. 이진 트리는 최대 차수가 2이기 때문에 구성요소를 크게 3가지로 (L: 왼쪽 서브트리 R: 오른쪽 서브트리 V..
최근댓글