전체 글
이번 파트는 수식이 좀 많다보니 직접 타이핑 한 것 보다 필기자료를 들고 오는게 나을 것 같아서 글보다 비교적 사진이 많을 예정이다. Support Vector Machine SVM은 기계 학습 분야 중 하나로 패턴인식, 자료 분석을 위한 지도학습 모델이다. Classification, Regression에 사용할 수 있다. 일단, Classification에 초점을 두고 SVM을 알아보자. 데이터를 두 부류로 분리할 때 여백을 최대로 가지는 초평면(hyperplane)을 찾는 것이 이 모델의 최종 목표이다. 위 그림에서 검정원과 흰 원은 d(x) = wx+b 에 의해 두 부류로 나뉘어졌다. 이때, 그 선에서 가장 가까운 점을 support vector라고 한다.왜 여백을 최대화 해야하는가? 그 이유는 ..
Ensemble 하나의 모델이 아닌, 여러 모델을 함께 사용하여 모델의 성능을 향상 시키는 방법이다. 앙상블을 이용하면 가장 좋은 individual predictor로 도출된 결과보다 더 좋은 결과를 얻을 때가 있다. 여러 predictor를 사용하기 때문에 '집단지성'과 유사하다. 앙상블 기법은 대표적으로 Voting, Bagging, Boosting이 있다. 이에 대해 자세히 알아보자 Voting 다양한 classifier를 이용한 결과를 앙상블하는 기법이다. classifier를 만드는 방법은 다른 classifier를 사용하는 방법도 있고, 하나의 classifier에 random한 subset을 주고 학습하는 법도 있다. voting을 이용하면 각각은 weak learner 였더라도 서로 결합..
오랜만에 자료구조 내용이다. 우선순위 큐를 하기 전에 다양한 자료구조들에 대해 간략하게 짚고 넘어가자 Stack First In Last Out 방식이다. 가장 먼저 들어간 데이터가 가장 나중에 나온다. Queue First In First Out 방식으로 큐와는 반대로 가장 먼저 들어간 데이터가 가장 먼저 나온다. Deque stack 과 queue의 중간 성질을 가진다. 양방향으로 input, output이 가능하다. Priority Queue Priority Queue(우선순위 큐)는 '가장 우선순위가 높은 원소'를 먼저 나오게 하는 자료구조이다. 이때, 우선순위는 Total Order를 지키는 어떠한 키로도 설정할 수 있다. 가장 기본적으로 가장 작은 값을 출력하는 min priority queu..
https://www.toptal.com/developers/sorting-algorithms Sorting Algorithms Animations Animation, code, analysis, and discussion of 8 sorting algorithms on 4 initial conditions. www.toptal.com 위 사이트는 여러 정렬 기법의 속도를 비교할 수 있는 곳이다. 교수님께서 소개해주셨는데 여러 케이스를 한 눈에 볼 수 있어 매우 유용하다. Quick Sort 기본 개념 정렬할 원소 중 하나를 기준값 v로 정한 후 =인 원소를 v의 오른쪽에 두는 분할을 반복 적용하는 정렬 방법이다. merge sort와 함께 정렬에서 가장 많이 쓰이는 방법이다. merge sort에 대해..
세상에는 다양한 정렬 기법이 있다. 이 중 가장 많이 사용되는 것은 Quick Sort와 Merge Sort이다. 오늘은 이 중 Merge Sort에 대해 정리해보겠다. Merge Sort(병합정렬) 기본 개념 Merge Sort는 두 정렬된 배열을 ~N시간에 하나의 배열에 정렬된 상태로 병합할 수 있다는 사실에 기반한 방법이다. 병합정렬은 정렬한 결과를 다른 배열에 담아야하기 때문에 ~N 만큼의 추가 공간이 필요하다는 단점이 있다. 위와 같이 주어진 배열을 하나짜리 배열로 나눈 뒤 순서대로 병합해 나간다. 시간복잡도 N개 값을 Merge해야하기 때문에 N에 비례한 비교를 진행한다. 그리고 이 과정을 log2(N)회 반복하기 때문에 (반으로 잘라 나가기 때문에) ~Nlog2(N) 의 시간복잡도를 가진다...
Shuffle Sort 에 대해 알아볼 것이다. 이름에 Sort가 들어가서 단순히 '정렬'문제인가 착각할 수 있는데 정렬을 이용하여 uniformly random한 값을 얻는 방법을 의미한다. Shuffle Sort Shuffle의 개념 셔플은 말 그대로 섞는 것이다. 입력 데이터의 순서를 임의로 섞어야 한다. N = [1,2,3] 이 주어졌으면, 나올 수 있는 순서는 어떤 것이 있을까? => [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]로 총 6가지이다. 일반적으로 N개의 데이터를 입력 받으면 N! 개의 경우의 수가 발생한다. 그리고 이 중 하나를 얻을 확률은 1/N!이다. 가장 쉽게 Shuffle하여 uniformly random한 결과를 얻는 방법은 ..
정렬이란, 임의의 순서가 있는 데이터가 무작위로 주어졌을 때 이를 순서대로 나열하는 것을 의미한다. 정렬 방식은 여러가지가 있으며 오늘은 그 중 Shell Sort에 대해 알아보자. Insertion Sort 기본 개념 Shell sort를 알기 위해서는 Insertion Sort부터 알아야한다. Insertion Sort 는 이미 정렬된 상태에 새로운 데이터의 위치를 찾아 넣는 방식이다. 위 이미지에서 파란 부분이 이미 정렬된 부분, 붉은 부분이 새로 넣고자 하는 원소이다. 붉은 원소를 파란 부분의 어느 위치에 넣을 것인지 찾아 '삽입'하는 형태로 정렬을 진행하기 때문에 '삽입 정렬'이라고 부른다. 코드 # input : 정렬되지 않은 list # output : 정렬된 list def insertio..
Overview of Database Design Process Database application : 특정 데이터 베이스를 가지고 있으며 queries와 update와 관련된 어플리케이션으로 application design과 database design 으로 나눌 수 있다. application design 프로그램과 DB의 접근 인터페이스에 집중하는 것 => 소프트웨어 설계에서 배우는 것 Database design Conceptual, Logical, Physical 위 그림이 Database design 의 주요 단계를 도식화 한 것이다. 수업에서는 왼쪽의 세로선을 따라가는 과정에 집중해서 학습을 할 것이다. Entity Types, Entity Sets, Attributes and Keys ..
Data Models, Schemas And Instances Data Models 데이터 추상화를 달성하기 위한 필수적인 의미로 structure, operations, constraints를 정의해 표현한다. structure data type, relationships, constraints operations database에서 값을 가져오고 update를 할 수 있어야한다. 기본적인 연산과 사용자가 정의한 연산(ex. 학점 계산)도 포함한다. constraints Valid data에 대한 제약조건을 만든다. DB는 유효한 데이터만 저장할 수 있으며 이 제약 조건은 '항상' 지켜져야한다. Categories of Data Models Conceptual data models (High Level..
Introduction Basic Definition data 기록되고 의미가 있는 알려진 사실 database : 관련된 데이터들의 모음 DBMS ( database management system) : 데이터베이스를 만들고 관리할 수 있도록 하는 소프트웨어 패키지 Database system ; DB + DBMS + application Types of Database and Database Application 전통적인 Application Numeric, Texture -> 은행, 도서관 등에서 사용 최근의 다양한 Application Multimedia, Biological, Data warehouses, mobile, etc. DB와 DB 관련 기술은 경제, 서비스업, 교육 등 다양한 분야에 ..