Data Story

데이터 사이언스, 쉽게 설명하기

알고리즘 8

Computer Vision - [CNN with tensorflow]

CNN(Convolution Neural Network)를 활용해 호머와 심슨을 분류해보자. 1. Import the library import matplotlib.pyplot as plt import seaborn as sns import zipfile import numpy as np from google.colab.patches import cv2_imshow import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, Dense, Flatten, MaxPool2D from tensorflow.keras.preprocessing.image import Im..

DL/Computer Vision 2024.02.20

Computer Vision - [얼굴 인식 2 (Face Recogintion using dlib, shape predictor 68 face landmarks)]

지난 번 포스팅에는 LBPH 알고리즘으로 얼굴 인식을 태스크를 진행했다. 이번에는 68개의 얼굴 포인트를 감지해서 정확도를 높혀보고자 한다. 1. 라이브러리 가져오기 import dlib import cv2 import PIL import Image from google.colab.patches import cv2_imshow 2. 데이터셋 가져오기 import os import zipfile path = "~/yalefaces.zip" zip_object = zipfile.ZipFile(file=path, mode='r') #read zip_object.extractall("./") zip_object.close() # 메모리 해제 3. 태스크와 모델 정의 # dlib에서 어떤 태스크를 수행할 것이며,..

DL/Computer Vision 2024.02.07

Computer Science - [Handling combined exclusive sets]

Handling combined exclusive sets 상호 배타적 집합의 처리 지원할 연산 - Make-Set(x) : 원소 x로만 이루어진 집합을 만든다. - Find-Set(x) : 원소 x를 가지고 있는 집합을 알아낸다. - Union(x,y) : 원소 x를 가진 집합과 원소 y를 가진 집합 합집합 ​ 연결리스트(Linked list)를 이용한 처리 - 같은 집합의 원소 => 하나의 연결 리스트로 관리 - 연결 리스트의 맨 앞의 원소를 대표원소 ​ 연결 리스트로 된 두 집합 ​ 무게를 고려한 Union - 연결 리스트로 된 두 집합을 합칠 때, 작은 집합을 큰 집합의 뒤에 붙인다. - 대표 원소를 가리키는 포인터 갱신 작업을 최소화 - union시 시간이 가장 많이 드는 작업은 대표원소를 가리..

Computer Science 2023.01.11

Algorithm - [Search Tree]

Search Tree 이진검색트리 Binary Search Tree - 최대 두개의 자식노드 - 노드의 키 값은 왼쪽 자식 노드의 키 값보단 크고 오른쪽 자식의 키 값보단 작다. - 이진 검색 트리에서의 삽입은 최악의 경우에도 이진트리가 균형이 잡혀있으면 시간복잡도는 O(logn). 이진 검색 트리에서의 삭제 - 삭제하고자 하는 노드 r이 리프 노드인 경우 : 삭제 - 삭제하고자 하는 노드 r의 자식 노드 하나가 있는 경우 : r을 제거하고 r 자리에 r의 자식으로 대체 - 삭제하고자 하는 노드 r의 자식 노드 두개가 있는 경우 : r의 직후원소를 찾고 r을 데체 ​ 레드블랙트리 Red-Black Tree (RB-Tree) 1. 루트 노드는 블랙이다. 2. 노드가 레드이면 자식은 블랙이다. 3. 모든 리..

Algorithm 2023.01.11

Algorithm - [Stack & Queue]

Stack & Queue Stack '접시 쌓기' (Last In First Out) - push : 스택에 자료를 한개 집어 넣는 동작 pop : 스택 안에 있는 자료를 한 개 꺼내는 동작 ​- Stack이 비어있을 때 stack.pop -> stack underflow | Stack이 가득 찼을 때 stack.push -> stack overflow 시간 복잡도 가장 위에 있는 원소에 접근하기 때문에 접근, 삽입, 삭제의 시간복잡도는 O(1) 예 - 재귀 알고리즘 - 괄호검사, 후위 연산법, 문자열 역순 - DFS(Depth First Search) Queue '줄 서기' (First In First Out) - enqueue : 큐에 자료를 한 개 집어 넣는 동작 dequeue : 큐 안에 있는 자..

Algorithm 2023.01.11

Algorithm - [Asymptotic notation]

Asymptotic notation 알고리즘의 수행 시간을 표기하기 위해, 필수적인 부분에 집중하고 불필요한 상세들을 무시한다. 예를 들어, f(n) = n^2 + 2n 일 때, 시간 복잡도는 n^2이라고 한다. n이 무한대로 가는 데에선 낮은 차수의 증가폭이 높은 차수의 증가폭을 넘지 못하기 때문이다. 점근법 표기법 상한 표기법 : Big- O 점근적 상한만 알고 있을 때 사용하며 기껏해야 f(n)의 비율로 증가하는 함수 e.g. 7n-2가 O(n)임을 증명하라. sol) Let. c>0 이고 n_0 >= 1 n = 7n-2를 만족하는 c, n_0가 존재하는가? ​-> c=7,n_0 = 1일때 존재한다. ​ 하한 표기법 : Big - Omega 점근적 하한만 알고 있을 때 사용하며 적어도 f(n)의 비..

Algorithm 2023.01.10

Algorithm - [Sort Algorithm]

Sort Algorithm 기초 정렬 알고리즘 1. 선택정렬 가장 작은 숫자를 구해 맨 왼쪽과 비교 수행시간 : (n-1) + (n-2) + ... + 2 + 1 = O(n^2) 더보기 장점 - n개의 원소에 대해서 n의 메모리를 할당하기 때문에 하나씩 정교하게 비교할 수 있다. - 역순으로 정렬할 선택 정렬이 높은 효율을 보여준다. 단점 - 이미 정렬되어 있는 자료에 한개라도 자료가 추가 된다면 처음부터 재정렬하기 때문에 최악의 시간복잡도를 보일 수 있다. 2. 버블정렬 맨 왼쪽부터 오른쪽에 있는 숫자와 하나씩 비교 수행시간 : (n-1) + (n-2) + ... + 2 + 1 = O(n^2) 더보기 장점 - n개의 원소에 대해서 n의 메모리를 할당하기 때문에 하나씩 정교하게 비교할 수 있다. 단점 -..

Algorithm 2023.01.10

Computer Science - [Algorithm]

Algorithm - 문제 해결 절차를 체계적으로 기술한 것 (입력으로부터 출력을 만드는 과정 기술) ​ 바람직한 알고리즘 1. 명확성 2. 효율적 3. 간결성 알고리즘 입출력의 예 e.g.입력 : 100개의 변수 (배열) x[1].x[2] ...x[100] , 출력 : x[1], x[2], ...x[100] 중 최대값 maxScore(x[], n) { x[1,...n]의 값을 차례때로 보면서 최대값을 계산; return 위에서 찾은 최대값; } 알고리즘 공부의 목적 1. 특정한 문제를 해결하기 위한 알고리즘 습득 2. 체계적 생각 훈련 - 문제자체를 해결하는 알고리즘 학습 - 그 과정에 깃든 '생각하는 방법' 배우는게 중요 3. 미래에 다른 문제를 해결하는 생각의 빌딩블록 제공 - 지적 추상회의 레벨 ..

Computer Science 2023.01.02