목록전체 글 (120)
Hippo's data
오늘은 다운캐스팅(Downcasting)에 대해 알아보겠습니다!데이터를 불러와서 모델링을 하다보면 데이터가 너무 커서 속도가 너무 오래걸리거나, 메모리 초과(OOM: out-of-memory) 오류가 발생하는 경우가 종종 있는데욥! 이를 해결하기 위해 데이터 사이즈를 줄이는 다운캐스팅(Downcasting) 방법을 이용할 수 있습니다!! 파이썬(Python)에서는 정수, 부동소수점 변수 저장시 메모리에서 차지하는 바이트에 기반하여 데이터 타입을 선택하게되는데욥 데이터 값을 손상시키지 않으면서 각 변수를 저장하는 가장 용량이 적은(메모리를 적게 사용하는) 데이터 타입으로 저장하여 데이터의 총 사이즈를 줄일 수 있습니다. 즉, 무손실 압축(lossless compression)이 가능합니다! 예) int64..
안녕하세욥 오늘은 EDA (Exploratory Data Analysis)를 도와주는 여러가지 라이브러리에 대해 소개해보겠씁니당! 항상 본격적인 데이터분석에 앞서 EDA가 진짜 중요하다고들 하는데욥 특히 캐글이나 데이콘과 같은 분석 대회에서도 상위권 유저들의 EDA를 통해 도출한 분석 및 모델링 전략들은 정말 대단하도라구요,,,, 그렇다면 EDA (Exploratory Data Analysis)가 무엇일까요?한국어로는 탐색적 데이터 분석이라고 하는데욥 단어 그대로 데이터를 탐색하는 과정이라고 할 수 있습니다!즉, 데이터를 시각화하거나 통계량을 통해서 분포, 관계를 파악하며 데이터가 어떻게 생겼는지 파악하는 단계라고 할 수 있는데요! 근데 처음에는 어떤 그래프를 그리고 어떤 통계량을 살펴볼지 잘 모르겠고..
오늘은 데이터분석, AI 연합동아리 (투빅스, 보아즈, 비타민) 지원후기를 올려보려고 합니당 저는 데이터, AI 분야에 흥미를 가진 후로 줄곧 혼자 공부해왔었는데욥 이번기회에 여러명이서 체계적으로 함께 공부하면 좋을 것 같아서 여러 활동, 스터디들을 찾아보다가 데이터, AI 분야 유명한 연합동아리들을 발견했는데욥 대표적으로 3개 (투빅스, 보아즈, 비타민)를 추릴 수 있었습니다!지원서는 돈드는거 아니라고,,,, 다다익선으로 다 지원을 해보았는데욥 이와 관련해서 지원서, 면접 후기를 남겨보려 합니답!!면접본지 꽤 지나가지구 확실히 기억나진 않지만 제 기억 저편의 조각들을 잘 조합해서 후기를 남겨보겠습니담 지원과정은 서류, 면접으로 동일했고 비타민 동아리만 코딩테스트가 추가로 있었습니답 비타민1차 서류1..
오늘은 비교정렬 중 하나인 힙 정렬(Heap Sort)에 대해 알아보겠습니다힙 정렬은 힙 구조를 이용하여 정렬을 수행하는데욥 힙구조란 무엇일까요? # 힙(Heap) 구조란?완전 이진 트리(Complete Binary Tree)의 일종인데욥(왼->오, 위->아래 순번끊김 없는 트리) 우선순위 큐(Priority Queue)에도 사용되는 구조입니다!https://hipposdata.tistory.com/104 우선순위 큐 구현 (PriorityQueue, Heap)오늘은 우선순위 큐 구현에 대해 알아보겠습니다! # 우선순위 큐란?일반적인 큐(queue) 구조는 선입 선출인 FIFO(First In, First Out) 방식으로 작동합니다! https://hipposdata.tistory.com/11 스택(..
오늘은 정렬 알고리즘인 쉘 정렬(Shell Sort)에 대해 알아보겠습니다!쉘 정렬(Shell Sort)의 쉘(Shell)은 1959년 해당 알고리즘을 고안한 도널드 셸(Donald L. Shell)의 이름을 따서 지어졌는데욥삽입 정렬(Insertion Sort)의 개선된 버전으로 값을 비교하며 정렬하는 비교정렬에 속합니다!https://hipposdata.tistory.com/108 삽입 정렬 (Insertion Sort) 알고리즘오늘은 비교정렬 알고리즘인 삽입 정렬 (Insertion Sort) 알고리즘에 대해 알아보겠습니다! # 동작과정 삽입정렬은 이름과 같이 매번 적절한 위치에 해당 값을 삽입하는 알고리즘입니다!간단한hipposdata.tistory.com # 동작과정 데이터를 일정 간격(gap)..
오늘은 선택문제(Selction Problem)에 속하는 Median of medians 알고리즘에 대해 알아보겠습니다! 지난번에 선택문제에 대해 다뤘었는데욥 다시 복습하자면선택문제란, k번째로 작은(또는 큰) 요소를 찾는 문제입니다! 해당 문제를 해결하는 방법에는 여러 전략이 존재하는데욥 1) 매번 큰 값을 찾아 k번째 큰 값을 찾기가장 쉽게 생각할 수 있는 전략이다매번 큰 값을 찾아 총 k번 큰 값을 찾으면, k번째로 큰 값을 찾을 수 있다 총 비교횟수를 생각해보면1st max : n-12nd max: (n-1) + (n-2) = 2n-33rd max: (n-1) + (n-2) + (n-3) k번째 max: (n-1) + (n-2) + (n-3) + ... + (n−k) 등차수열의 합: 항의개수k..
오늘은 정렬 알고리즘의 안정성(Stability)에 대해 알아보겠습니다! 지금까지 매우 다양한 정렬 알고리즘들을 소개해 보았는데요이러한 정렬 알고리즘에서 정렬이 얼마나 빨리 가능한지 속도(시간복잡도) 측면이 제일 중요하지만또 다른 기준인 안정성(Stability) 또한 중요합니다 # 안정성(Stability) 이란?정렬 전후 값이 동일한 데이터들의 순서가 동일한지 여부를 의미하는데요안정적인(Stability) 정렬 알고리즘은 동일한 값의 데이터가 정렬 전후에 원래의 순서를 유지하는 반면.안정적이지 않은(Unstability) 정렬 알고리즘은 동일한 값의 데이터가 정렬 전후에 순서가 바뀌게 됩니다! 예) 3_a, 2, 3_b, 5, 3_c 1, 7 7개의 값을 오름차순으로 정렬하려고 합니다 (3인 중복된 ..
오늘의 포스팅은 프림 알고리즘(Prim's)의 변형인 다익스트라 (Dijkstra) 알고리즘입니다!다익스트라 알고리즘은 데이크스트라라고도 불리는데욥TMI)백준 알고리즘분류에는 데이크스트라라고 분류되어 있네욤,,,여담으로 다익스트라 알고리즘은 1956년에 네덜란드 태생 컴퓨터 과학자인 다익스트라에 의해 개발되었다고 하는데욥까페에서 피앙세를 기다리던 도중 20분정도만에 아이디어를 생각해낸 알고리즘이라고 합니다,,,, 다익스트라 알고리즘은 특정 노드에서 모든 노드로 가는 최단 경로(Shortest path)를 구하는 알고리즘인데요양의 가중치를 가지는 그래프에서만 사용 가능합니다! (음의 가중치는 벨만-포드 알고리즘 사용) 다익스트라 알고리즘은 greedy알고리즘에 속하기도 하는데욥매번 현재 노드에서 가장 가까..