T'SPACE

다채로운 에디터들의 이야기

728x90
반응형

컴퓨터공학 109

Back Tracking 백트래킹 알고리즘

백트래킹 알고리즘여러 다양한 방법을 순서대로 탑색하면서조건을 만족시키는 솔루션을 찾을 때 까지 되돌아가서 찾는 방법이다마치 미로를 탐색하는 것을 생각하면 되고탐색하다가 Promising 하지 않은 길이면 (미로같은 경우 dead end) back track해서 마지막 갈림길로 돌아가 다른 길로 탐색하는 알고리즘이다탐색 Tree를 전체 탐색하지 않는 버젼의 DFS라고 할 수도 있다 이 알고리즘을 활용한 문제들이 여러개 있는데 N-Queens 문제N-Queens 문제는 N x N 체스보드에 N개의 퀸을 서로 위협하지 않도록 배치하는 방법을 찾는 문제이다. 각 퀸은 자신의 행, 열, 대각선 상에 있는 다른 퀸을 위협하지 않는 배치를 찾는 문제이다 백트래킹을 사용하여 N-Queens 문제를 해결할 때, 상태 공..

파이선 pandas 라이브러리 get_dummies()

get_dummies()https://tonnykang.tistory.com/216 k-Nearest Neighbors (k-NN) 모델 KNNk-NN(k-Nearest Neighbors)는 지연 학습 알고리즘이다.정의k-NN은 함수가 Locally (가깝게) 근사되고, 모든 계산이 함수 평가 시점까지 미뤄지는 지연 학습 알고리즘이다. 분류와 회귀 모두에서 알고리즘은tonnykang.tistory.comKNN 모델은 참 편하고 단순한 Base 모델로 사용하기에는 너무나 좋은 모델이다 하지만 각 instance간의 거리를 구해야하는 모델이기에범주형 Catagorical Feature같은 경우에는 문제가 생긴다... 예를 들어 아래와같은 데이터가 있다고 하자data = { 'Color': ['Red',..

Naive Bayes model, 네이브 베이즈 모델

네이브 베이즈는 베이즈 정리에 기반한 간단하지만 효과적인 확률론적 분류기의 집합이다."네이브(Naive)"라는 이름은 각 특성(또는 예측 변수)들이 클래스 레이블에 대해 서로 독립적이라고(independent) 가정하기 때문에 붙여졌다. 실제로 미국에서는나이브라고 발음한다단순한 사람보고  Don't be so Naive!이런식으로 사용된다 Independent 하다는 이 가정은 실제 데이터에서는 자 만족되지 않지만 계산을 크게 단순화시켜 준다.Bayes' Theorem 베이즈 이론P(C|X) = P(X|C)P(C) / P(X)  여기서:P(C|X)는 특성 X가 주어졌을 때 클래스 C의 사후 확률이다.P(X|C)는 클래스 C가 주어졌을 때 특성 X를 관측할 가능성인 값으로, 훈련 데이터 (Train Set..

k-Nearest Neighbors (k-NN) 모델 KNN

k-NN(k-Nearest Neighbors)는 지연 학습 알고리즘이다.정의k-NN은 함수가 Locally (가깝게) 근사되고, 모든 계산이 함수 평가 시점까지 미뤄지는 지연 학습 알고리즘이다. 분류와 회귀 모두에서 알고리즘은 Feature 공간에서 가장 가까운 k개의 훈련 예제를 기반으로 출력을 예측한다. 작동 방식학습 단계:k-NN의 학습 단계는 없다! Lazy Learning Algorithm학습 데이터는 단순히 저장되고, 명시적인 모델은 학습되지 않는다.예측 단계:분류:주어진 테스트 인스턴스에 대해, 알고리즘은 테스트 인스턴스와 모든 훈련 인스턴스 간의 거리를 계산한다.가장 가까운 k개의 훈련 인스턴스(이웃, neighbor)를 식별한다.테스트 인스턴스의 클래스 레이블은 k개 이웃 중 다수결 투표..

Merge Sort 합병 정렬

효율적인 정렬을 위한 강력한 무기, 합병 정렬 프로그래밍 분야에서 정렬 알고리즘은 매우 중요한 위치를 차지합니다. 데이터를 특정 순서로 정렬하는 것은 다양한 문제를 해결하는 데 필수적입니다. 이러한 정렬 알고리즘 중 하나인 머지 소트(Merge Sort)는 분할 정복(Divide and Conquer) 기법을 활용하여 효율적이고 안정적인 정렬을 수행합니다. 작동 원리 살펴보기 머지 소트는 다음과 같은 세 단계로 진행됩니다. 1. 분할(Divide) 먼저, 정렬해야 할 배열을 두 개의 서브 배열로 나눕니다. 이 과정을 재귀적으로 반복하여 배열의 크기가 1이 될 때까지 계속 분할합니다. 배열의 크기가 1이 되면 더 이상 나눌 수 없으므로, 이를 기저 조건(base case)으로 합니다. 2. 정복(Conqu..

퀵 정렬 퀵 소트 quick sort

퀵 정렬(Quick Sort) 이해하기 퀵 정렬이란? 퀵 정렬은 분할 정복(Divide and Conquer) 기법을 활용한 효율적인 정렬 알고리즘입니다. 1959년 영국 컴퓨터 과학자 토니 호어(Tony Hoare)가 개발했습니다. 불안정 정렬에 속하며, 비교 기반의 정렬 알고리즘 중 하나입니다. 동작 원리 피벗(Pivot) 선택: 정렬할 리스트에서 하나의 원소를 피벗으로 선택합니다. 일반적으로 리스트의 첫 번째 또는 마지막 원소를 피벗으로 사용합니다. 파티셔닝(Partitioning): 피벗을 기준으로 리스트를 두 개의 부분 리스트로 분할합니다. 피벗보다 작은 값은 왼쪽 부분 리스트에, 큰 값은 오른쪽 부분 리스트에 배치합니다. 재귀 호출(Recursive Call): 분할된 두 개의 부분 리스트에 ..

선택정렬 Selection Sort

안녕하세요, 오늘은 선택 정렬(Selection Sort)에 대해 알아보겠습니다. 선택 정렬은 가장 기본적인 정렬 알고리즘 중 하나입니다. 정렬되지 않은 배열에서 작은 값부터 차례대로 선택해 앞쪽으로 가져오는 방식으로 정렬을 수행합니다. 구현 방법이 매우 간단하고 이해하기 쉬운 것이 장점입니다. 선택 정렬의 동작 원리 배열에서 가장 작은 값을 선택합니다. 선택한 값을 맨 앞으로 옮깁니다. (첫 번째 자리) 남은 배열에서 두 번째로 작은 값을 선택합니다. 선택한 값을 두 번째 자리로 옮깁니다. 이런 식으로 배열의 끝까지 반복합니다. 이렇게 하면 매 단계마다 작은 값부터 순서대로 앞으로 이동하게 되어 정렬이 완성됩니다. 간단한 예시로 살펴보겠습니다. [5, 3, 8, 4, 9] 초기 배열 1. [3, 5, ..

삽입 정렬(Insertion Sort)

삽입 정렬은 간단하면서도 직관적인 정렬 알고리즘입니다. 이 알고리즘은 배열의 모든 요소를 차례대로 이미 정렬된 배열 부분과 비교하여, 각 요소를 적절한 위치에 삽입하는 방식으로 동작합니다. 이 과정을 통해 배열이 점차적으로 정렬됩니다. 삽입 정렬의 작동 과정은 다음과 같습니다: 배열의 두 번째 요소부터 시작하여, 해당 요소가 이전에 정렬된 배열 부분에 삽입될 올바른 위치를 찾습니다. 이 요소를 그 위치에 삽입하고, 필요한 경우 나머지 요소들을 오른쪽으로 이동시켜 자리를 마련합니다. 배열의 모든 요소에 대해 이 과정을 반복합니다. 삽입정렬의 장점: 간단하고 이해하기 쉽습니다: 코드 구현이 간단하여 초보자도 쉽게 이해하고 구현할 수 있습니다. 안정적인 정렬 방법입니다: 같은 값의 요소가 입력에 주어진 순서를..

Bubble Sort 버블 정렬

버블 정렬(Bubble Sort) - 단순하지만 효율적이지 않은 정렬 알고리즘 버블 정렬이란? 버블 정렬은 가장 기본적이고 직관적인 정렬 알고리즘 중 하나입니다. 배열의 인접한 두 원소를 비교하여 순서대로 정렬되어 있지 않으면 서로 위치를 교환하는 방식으로 동작합니다. 이 과정을 배열의 모든 원소가 정렬될 때까지 반복합니다. 버블 정렬의 작동 원리 배열의 첫 번째 원소와 두 번째 원소를 비교하여 순서대로 정렬되어 있지 않으면 서로 위치를 교환합니다. 이 과정을 배열의 마지막 원소까지 반복합니다. 이 과정을 배열의 모든 원소가 정렬될 때까지 반복합니다. 마지막 원소부터 차례대로 정렬이 완료되어, 가장 큰 원소가 배열의 끝으로 이동합니다. 버블 정렬의 장단점 장점: 구현이 매우 단순하여 이해하기 쉽습니다. ..

선형대수학의 행렬의 네 가지 주요 부분 공간 (Four Fundamental Subspaces)

처음 대학교 2학년때 선형 대수학을 배웠을 때가 생각난다 이 까지 진도를 나갔을 때 즘에는 종강이 한달도 남지 않은 여름 냄새가 풀풀한 1학기 말이였다 여름 열기에 안그래도 더운데 위에 이 4 Fundamental Subspace 그림은 전혀 도움을 주지 않았다... 어려워하는 학생들의 입장을 너무나 잘 알기에, 이번에 이해하는데 좀 도움을 주자고 한다 우선 부분공간은 뭘까? Subspace 부분공간(Subspace) 부분공간은 벡터 공간의 핵심 개념으로, 선형대수학에서 매우 중요한 역할을 합니다. 부분공간은 다음과 같은 특징을 가지고 있다: 영벡터의 포함: 부분공간에는 항상 영벡터(all-zero vector)가 포함되어 있습니다. 벡터 덧셈에 대한 폐쇄성: 부분공간의 두 벡터를 더하면 결과 벡터도 부..

728x90
반응형