본문 바로가기

전체 글

[C++] 연결리스트 (list.h , node.h , CMakeLists.txt)-컴도리돌이 우리는 간단한 linked list data 구조를 만들 것이다. 링크된 목록은 연결된 형태의 노드를 말하며, 각 노드가 다음 노드를 가리킨다. List 클래스는 head라고 불리는 특별한 노드를 가지고 있다. 다음 헤드 노드는 목록의 첫 번째 요소를 가리킨다. 목록의 첫 번째 요소 중 다음 요소는 목록의 두 번째 요소를 가리키며, 이러한 방식으로 nullptr(0x0)이 나타날 때까지 목록을 반복하여 반복적으로 반복할 수 있다. #include #include #include "node.h" template class List { public: List() : count(0) { head = new Node(0, nullptr); } ~List() { // TODO: write your code her.. 더보기
[C++] Dynamic array (std::vector) - 컴도리돌이 STL에는 동적 배열용 std::vector가 있다. std::vector를 사용하면 배열을 사용한 것처럼 크기와 랜덤 액세스에 관계없이 요소를 삽입하거나 삭제할 수 있다. 이러한 std::vector와 같은 동적 배열을 생성하려면 메모리를 할당하고 요소 추가로 인해 메모리 크기가 충분하지 않을 경우 재할당해야 한다. *len , push_back 및 pop_back 구현* #include using namespace std; template struct dynamic_array { T* pointer = nullptr; size_t cap = 0; public: dynamic_array(size_t cap) : cap(cap) { this->pointer = new T[cap]; } int array_.. 더보기
[머신 러닝] 가우시안 혼합 모델(Gaussian Mixture models) - 컴도리돌이 Mixture models 전체 모집단 내 하위 모집단의 존재를 나타내는 확률론적 모델. 즉 여러 개의 분포가 혼합되어 있는 모델이다. GMM(Gaussian Mixture models) 가우시안 혼합 모델은 여러 개의 가우시안 분포가 혼합된 clustring 알고리즘이다. 현실에 존재하는 복잡한 분포들을 k개의 가우시안 분포를 혼합하여 표현을 한다. EM for Gaussian mixture 주어진 데이터 Xn에 대하여 데이터가 어떠한 가우시안 분포가 생성되는지 찾기 위해 responsibility r(ik)를 다음과 같이 정의하였다. Xn에 따른 GMM의 k번째 가우시안 분포가 선택되면 1, 아니면 0의 값을 갖는다. r(ik)가 1이라는 것은 Xn이 k번째 가우시안 분포에서 생성되었다는 것을 의미한.. 더보기
[머신 러닝] EM(Expectation-Maximization) vs MLE(Maximum likelihood estimation) soft clustering , k-means clustering - 컴도리돌이 MLE(maximum likelihood estimation) -> 어떤 시행의 결과에 대해서 가장 발생 가능성이 높은 가설 H를 찾는 방법 그림과 같이 A와 B 모델의 결과를 나타내는 데이터가 5개가 있다. 주어진 데이터를 가지고 물어보는 데이터가 어느 데이터 모델인지 예측을 해보자 1. 주어진 모델들의 데이터와 물어보는 데이터가 앞면과 뒷면이 몇 번 나왔는지 구한다. 2. 각 모델을 분류(classification)를 하고 분류한 표에 해당 모델의 데이터 값을 정리한다. 3. 주어진 데이터에서 각 모델에 대한 precision을 구한다. A모델 : 주어진 데이터 3개에서 실제 앞면이 24번 나온 값에 앞면이 24번, 뒷면이 6번의 합으로 나눠준다. -> 0.8 B 모델 : 주어진 데이터 2개에서 실제.. 더보기
[머신 러닝] performance evaluation(precision,recall) - 컴도리돌이 ->Precision : 프로그램이 positive를 한 예상 중에서 맞춘 확률 ->Recall : 프로그램이 결과에서 내린 예상에서 맞춘 확률 example 전체 데이터 집합 : 100 Positive : 50 Negative : 50 프로그램이 예상한 Positive : 100 Precision = 50 / (50 + 50) = 0.5 Recall = 50/ 50 (false negative를 예상하지 않았기 때문에 0이다.) = 1 더보기
[머신 러닝] Overfiting - 컴도리돌이 -데이터에서 사용할 수 있는 모든 구조를 포함하지 않을 경우, training data에 underfits 한 모델 -training data의 특성을 너무 많이 포함할 경우 training data에 overfits 한 모델 가설 h에 대하여, -> training 데이터에 대한 오류율: error(training)(h) -> 모든 데이터에 대한 실제 오류율: error(true)(h) -> error(training)(h) < error(true)(h) 일 경우 h overfits 예를 들어, 노란색 고양이를 보며 고양이의 특성을 학습한 사람이 검은색이나 흰색 고양이를 보고는 그것을 고양이라고 인식하지 못하는 현상이 overfitting과 유사한 경우이다. 더보기
[머신러닝] Supervised and Unsupervised , MLE - 컴도리돌이 Supervised learning 지도 학습(Supervised learning)은 입출력 관계의 쌍을 사용하여 매핑(mapping)을 학습한다. 표본이 n개인 데이터 집합 '(x1, y1, y1,…(xn, yn)'을 고려할 때, 예시는 "만약 집의 평방 피트가 x 평방피트라면 가격을 예측하라"이다. -> 목표 함수(빨간색 그래프)와 가설(주황색 그래프)의 차이를 최소화하고자 함 = 오류 함수( error function) -> Regression(회귀-회귀 분석 입력을 연속 출력으로 매핑) : 어떤 데이터들의 특징(feature)을 토대로 값을 예측하는 것. 결과 값은 실수 값을 가질 수 있다. -> classification(분류 - 입력 내용을 클래스 집합 중 하나로 매핑) : 어떤 데이터에 대해.. 더보기
[머신러닝] Introduction to Machine Learning - 컴도리돌이 머신 러닝이란 ->컴퓨터에게 정확한 프로그래밍되지 않고 학습할 수 있는 능력을 부여하는 연구 분야다. ->컴퓨터 프로그램은 일부 과제 T와 성과 측정 P에 관해서 경험 E로부터 배운다고 하며, 만약 경험 E에 의해 측정된 T에 있어서의 과제에서의 성능이 향상된다면 P에 의해 측정된다고 한다. example - 암 질병 문제 T : 특정 환자에 대한 암 상태를 예상하는 것P : 정확하게 분류된 환자의 비율E : 주어진 암 상태를 가진 연속적인 DNA의 집합 problem setting 1. Set of examples X = {x1, ... , xn} 2. Unknown target function f: X -> Y 3. set of unction hypothesis H = {h | h : X-> Y } .. 더보기

728x90