ML&DL&AI
-
스택ML&DL&AI/자료구조 2024. 6. 14. 17:21
스택(Stack)스택은 먼저 들어온 데이터가 나중에 나가는(FILO, 선입후출) 자료 구조입니다.흔히 박스가 쌓인 형태를 스택(Stack)이라고 비유합니다. 스택 자료 구조의 중요성스택은 가장 기본적인 자료 구조 중 하나입니다.기계 학습 분야뿐만 아니라 다양한 프로그램을 개발할 때도 필수적으로 사용됩니다. 스택 자료의 시간 복잡도 연산시간 복잡도설명1삽입(Push)O(1)스택에 원소를 삽입하는 연산2추출(Pop)O(1)스택에서 원소를 추출하는 연산3최상위 원소(Top)O(1)스택의 최상위 원소(마지막에 들어온 원소)를 확인하는 연산4EmptyO(1)스택이 비어 있는지 확인하는 연산 연결 리스트로 스택 구현스택을 연결 리스트로 구현하면, 삽입과 삭제에 있어서 O(1)을 보장 할 수 있다.연결 리스트로 구..
-
파이썬 리스트 자료형 함수ML&DL&AI/자료구조 2024. 6. 14. 16:46
연산시간 복잡도사용 예제설명1 Indexing O(1) arr[i] 리스트의 특정 인덱스의 값 얻기 2 Storing O(1) arr[i] = x 리스트의 특정 인덱스에 값 저장하기 3 Append O(1) arr.append(5) 리스트의 가장 뒤에 데이터 넣기 4 Pop O(1) arr.pop() 리스트의 가장 뒤에서 원소 꺼내기 5 Length O(1) len(arr) 리스트의 길이 얻기 6 Clear O(1) arr.clear() 리스트 내 모든 원소 제거하기 7 Slicing O(b-a) arr[a:b] 리스트에서 인덱스 a부터 b-1까지의 원소만 꺼내 새 list 만들기 8 Extend O(len(other)) arr.extend(other) 기존 리..
-
연결 리스트ML&DL&AI/자료구조 2024. 6. 14. 16:09
연결리스트(Linked List)각 노드가 한 줄로 연결되어 있는 자료 구조각 노드는 (데이터,포인터) 형태를 가진다.포인터 : 다음 노드의 메모리 주소를 가리키는 목적으로 사용된다.연결성 : 각 노드의 포인터는 다음 혹은 이전 노드를 가리킨다. 연결 리스트 vs 배열배열(Array) - 특정 위치 데이터 삭제배열에서는 특정 위치의 데이터를 삭제할 때 O(n) 시간이 소요됩니다. 이는 삭제 후 나머지 요소들을 한 칸씩 이동시켜야 하기 때문입니다.- 데이터 삽입배열에서 특정 위치에 데이터를 삽입할 때도 O(n) 시간이 소요됩니다. 이는 삽입할 위치 이후의 요소들을 한 칸씩 이동시켜야 하기 때문입니다. 연결 리스트(Linked List)- 특정 위치 데이터 삭제연결 리스트에서는 특정 위치의 데이터를 삭제..
-
배열ML&DL&AI/자료구조 2024. 6. 14. 15:34
배열가장 기본적인 자료구조 입니다.여러 개의 변수를 담는 공간으로 이해 할 수 있다.배열은 인덱스가 존재하며, 인덱스는 0부터 시작한다.특정한 인덱스에 직접적으로 접근 가능 > 수행 시간: O(1) 배열의 특징컴퓨터의 메인 메모리에서 배열의 공간은 연속적으로 할당된다.캐시 히트 가능성이 높으며, 조회가 빠르다.배열의 크기를 미리 지정해야 하는 것이 일반적이므로, 데이터의 추가 및 삭제의 한계가 있다. 연결 리스트(Linked List)컴퓨터의 메인 메모리상에서 주소가 연속적이지 않다.배열과 다르게 크기가 정해져 있지 않고, 리스트의 크기는 동적으로 변경 가능하다.장점 : 포인터(pointer)를 통해 다음 데이터의 위치를 가리킨다는 점에서 삽입과 삭제가 간편하다.단점 : 원소를 검색할 때는 앞에서부터 ..
-
자료구조ML&DL&AI/자료구조 2024. 6. 14. 14:42
자료구조자료구조는 다수의 데이터를 효율적으로 담기 위한 구조입니다.데이터의 수가 많아질수록 효율적인 자료구조가 필요하게 됩니다.ex) 학생 수가 1만 명 이상인 학생 관리 프로그램에서는 효율적인 자료구조가 필수 자료구조의 필요성효율성데이터가 많아질수록 적절한 자료구조를 사용하지 않으면 메모리와 자원의 낭비가 될 수 있습니다.효율적인 자료구조는 데이터의 저장, 검색, 삽입, 삭제 등의 작업을 빠르고 효율적으로 수행할 수 있게 합니다.성능 측정자료구조와 알고리즘의 성능을 측정하고 이해하는 것은 중요합니다.성능 측정 기준에는 시간 복잡도와 공간 복잡도가 있으며, 이를 통해 알고리즘의 효율성을 평가할 수 있습니다. 자료 구조의 종류선형 자료 구조(linear data structure)배열(array)연결리스트..
-
데이터 추출ML&DL&AI/통계 2024. 6. 14. 13:34
데이터 추출 (Data Sampling)데이터 추출은 기계 학습 모델을 훈련시키기 위해 데이터셋에서 일부 데이터를 선택하는 과정입니다. 이는 데이터의 크기를 줄이거나, 데이터의 다양한 특성을 반영한 작은 샘플을 만드는 데 유용합니다.랜덤 추출랜덤 추출은 데이터셋에서 임의로 데이터를 선택하는 방법입니다. 1. 단일 랜덤 추출choice() 메서드를 사용하여 1개의 원소를 랜덤으로 추출할 수 있습니다.import numpy as npdata = np.arange(100) # 0부터 99까지의 배열 생성random_sample = np.random.choice(data)print(random_sample) 2. 랜덤 추출 (중복 없이):sample() 메서드를 사용하여 k개의 데이터를 중복 없이 추출할 수..
-
최소 제곱법ML&DL&AI/통계 2024. 6. 14. 13:21
선형 회귀(Linear Regression)선형 회귀는 주어진 데이터를 학습하여 가장 합리적인 선형 함수를 찾아내는 문제입니다.이 방법은 데이터 포인트들이 선형 관계를 가질 때, 그 관계를 설명하고 예측할 수 있도록 도와줍니다.일반적으로 학습 데이터가 3개 이상일 때 의미가 있습니다. 선형 함수 모델이제 우리의 모델(W와 b)을 수정해 나가면서 가장 합리적인 식을 찾아낼 수 있다.가설함수 : f(x) = Wx + b 비용우리의 모델이 뱉은 답이 실제 정답과 얼마나 다른지 수치화한 것우리의 모델이 정확하지 않다면, 높은 비용이 발생비용은 다른 말로 손실(loss)이라고 한다. 최소제곱법(Least Square Method)평균 제곱 오차를 이용 할 수 있다.따라서 다음식을 최소화하는 파라미터(W,b)를 ..
-
편향과 오차ML&DL&AI/통계 2024. 6. 13. 14:31
편향된 데이터실제 데이터를 반영하지 못 하고, 편향된 데이터유명 해외 얼굴 데이터 세트는 대부분 서양인 얼굴로 구성ex) 한국인을 대상으로 하는 서비스에 적합하지 않다 편향(Bias)과 분산(Variance)편향이 높을떄 모델의 예측한 값이 정답과 멀리 떨어져 있는 경우분산이 높을 때 모델이 예측한 값이 서로 멀리 떨어져 있는 경우 오차(Error)기계 학습 모델의 성능을 평가하기 위해 오차를 계산하기는 과정현재 학습 중인 모델이 얼마나 잘못되었는지 측정할 필요 평균 제곱 오차(Mean Squared Error)대표적인 오차 계산 함수 중 하나가 평균 제곱 오차평균 제곱 오차는 오차를 제곱한 값의 평균