
이 알고리즘은 학습한 후, 저장된 데이터 세트와 하나의 데이터 요소를 근접성을 이용해 비교하고 예측을 수행하는 머신러닝 알고리즘이다. 서로 유사한 요소가 가까이에 위치한다는 가정을 기반으로 한다. 즉, “끼리끼리 모인다”라는 속담과 같다. 분류 또는 회귀 문제를 처리할 수 있다.분류 알고리즘: 이웃한 데이터 중 다수 세트에 새로운 데이터 요소를 할당회귀 알고리즘: 쿼리(새로운 데이터 포인트) 지점에 가장 가까운 값의 평균을 기반으로 예측을 수행 knn은 지도 학습 알고리즘으로, 여기서 ‘k’는 분류 또는 회귀 문제에서 고려되는 최근접 이웃의 수를 나타내고, ‘nn’은 k로 선택된 수에 대한 최근접 이웃을 나타낸다. 🏛️ [알쓸코잡] KNN 알고리즘의 역사미군을 위해 수행된 연구 중 1951년 Evely..

이번에는 도커와 관련하여 배포에 대해 공부해볼 것이다. 곧 프로젝트에서 실무를 경험할 수도 있으니, 미리 개념은 확실하게 잡아두고자 한다. 01 로컬, VM 기반의 배포일단 첫 번재로, 로컬 환경에서의 배포 문제를 살펴본다. 개발 환경과 배포 환경이 다르면 문제가 발생할 수 있다. 예를 들어, 로컬에서 개발한 JAVA 11 기반의 Spirng Boot 애플리케이션이, 배포 환경에서는 JAVA 8만 지원될 때 오류가 발생한다. 이 문제를 해결하기 위해 등장한 것이 가상 머신(Virtual Machine) 기반 배포이다. VM을 사용하면 격리된 환경을 제공할 수 있고, 서로 다른 서비스가 서로 다른 VM에서 실행되므로 충돌 없이 동작이 가능하다. OS 및 라이브러리 충돌이 없고, 여러 개의 VM을 띄울 수..

데이터 전처리: 원시 데이터를 분석과 모델링에 적합하도록 정리하고 변환하는 작업 “데이터 과학의 80%는 데이터 클리닝에 소비되고, 나머지 20%는 데이터 클리닝하는 시간을 불평하는 데 쓰인다.” - Kaggle 창립자 Anthony Goldbloom분석의 80% 시간을 데이터 수집 및 전처리에 사용한다고 한다. 실무에 사용되는 데이터셋은 바로 분석이 불가능할 정도로 지저분(messy)하다.아래와 같은 이유로, 분석이 가능한 상태로 만들기 위해 전처리 단계가 중요하다.여러 데이터 소스 활용: 테이블 스키마나 Label, Type 등이 상이하여, 분석을 위해 일관적인 방식으로 통합/변환 필요데이터 기록/수집의 누락 및 오류 (Missing Value, Errors, typo 발생)자연스러운 혹은 기계적으로..

이 개념이 속도 및 성능 개선에 중요한 포인트라고 한다.우선 의미를 동기 = 순서, 스레드 = 공간(일꾼) 이라고 잡고 시작한다. 01 동기 vs. 비동기동기: 순차적으로 실행되는 것비동기: 요청을 받은 뒤 먼저 작업이 끝난 순으로 실행되는 것 02 프로세스 vs. 스레드프로세스 (Process)실행 중인 프로그램의 기본 단위독립된 메모리 공간을 가짐 → 프로세스 간에는 메모리를 공유하지 않음컨텍스트 스위칭(heavyweight context switching)이 필요 → (메모리를 공유하지 않기 때문에) 전환 비용이 큼스레드 (Thread)하나의 프로세스 내에서 실행되는 작은 실행 단위같은 프로세스 내에서는 메모리를 공유 → 데이터 공유가 용이 [여러 스레드가 같은 데이터(변수, 객체 등)에 접근 가능..

01 대상과 구조수학에서 '구조'란 집합(Set)에 추가적인 특징을 부여하여 의미를 부여하는 것이다.이 특징은 연산(Operation), 관계(Relation), 거리(Metric), 위상(Topology) 등 다양한 형태로 나타날 수 있다. 그 중, 숫자들의 모임인 자연수 집합에서 덧셈(+)과 곱셈(x)을 추가하면 대수적 구조를 가진다. 여기서는 대수적 구조를 중심으로 살펴볼 것이다. 집합과 구조의 관계수학에서 다루는 대상은 크게 집합(Set)과 함수(Function)로 나눌 수 있다.집합: 관심 있는 수학적 대상들의 모임 (ex. 자연수 집합, 실수 집합, 행렬 집합 등)함수: 한 집합에서 다른 집합으로 요소를 연결하는 규칙집합이 단순한 원소들의 모임이라면, 여기에 어떤 연산(+) 같은 특징을 추가하..

결측치 처리데이터프레임이나 시리즈에서 누락된 값을 탐지하고 제거하거나 대체하는 작업주로 NaN(Not a Number) 또는 None으로 표시사용 이유: 데이터 분석의 정확성과 신뢰성을 확보하기 위해서 "데이터가 누락된 것보다 더 나쁜 유일한 것은 누락된 데이터가 있다는 사실을 무시하는 것입니다." – Andrew Gelman, 컬럼비아 대학교 통계 및 정치학 교수 Pandas의 데이터 정제 및 변환 기능Pandas는 결측치 처리, 중복 데이터 제거, 데이터 필터링, 그룹화 등 다양한 정제 기능을 제공한다.복잡한 데이터 변환 작업도 간단한 코드 몇 줄로 처리할 수 있어, 데이터 준비 시간을 크게 단축할 수 있다.Pandas의 장점간결한 코드다양한 데이터 포맷(CSV, 엑셀, SQL 등) 지원matplo..

파이썬과 다른 언어를 비교했을 때, 파이썬이 초급자에게 적합한 이유영어와 유사한 구문을 가지고 있어, 개발자가 쉽게 읽고 이해할 수 있다.파이썬 커뮤니티는 전 세계 수 많은 개발자가 지원하고 있기 때문에, 문제가 발생하면 빠른 지원을 받을 수 있다. 그만큼 인터넷에 유용한 리소스, 개발 가이드가 많다.다른 언어들과 달리 중괄호 대신, 들여쓰기를 사용하여 가독성이 높다.웹 애플리케이션, 소프트웨어 개발, 데이터 과학, 기계 학습(ML) 등 넓은 분야에 사용할 수 있다.그리고 한계점파이썬의 가장 큰 한게점은 "느리다." 해석 언어이기 때문에, 속도가 중요할 때는 최선의 선택이 아니다.파이썬이 모든 곳에 개방된 만큼 protect / obfuscate/ limit이 어렵다.인기 있는 솔루션(PHP 등)에 비해..