내가 까먹을까봐 만든 블로그

전체 글

Data Science/Statistics

[Python] 유클리드 거리(Euclidean Distance), 맨하탄 거리(Manhattan Distance), 해밍 거리(Hamming Distance)를 이용한 두 점 사이의 거리 구하기

주요 개념 유클리드 거리(Euclidean Distance) 맨하탄 거리(Manhattan Distance) 해밍 거리(Hamming Distance) 두 점 사이의 거리를 구하는 방법은 유사도(Similarity)와 관련이 있다. 거리가 가까울수록 해당 데이터가 가지고 있는 특징(feature)이 유사할 가능성이 크기 때문이다. 두 점사이 거리를 구하기 위한 대표적인 방법으로 아래 세 가지가 있다. 하지만 아래 방식들은 데이터의 차원과 요소 개수가 동일해야 한다. 유클리드 거리(Euclidean Distance) 우선 유클리드 거리(Euclidean Distance)는 아래 그림과 같이 계산할 수 있다. 피타고라스 정리와 크게 다르지 않다. 다만 차수가 많아져도 아래와 같이 계산할 수 있다. $$ d ..

Languages/JavaScript

[JavaScript] "?"의 기능들

1. 삼항 연산자(Ternary Operator) if-else 문으로 처리할 수 있지만 삼항 연산자를 사용하면 가독성은 떨어질 수 있지만 간결하게 표현이 가능하다. 브런치(Branch)문의 원래 기능처럼 런타임에 변수나 상태 등을 변경할 때 사용할 수 있다. const actions = ["Work", "Eat", "Leave"]; console.log(actions.includes("Eat") ? "Hamburger" : "Coding"); // "Hamburger" 2. 선택적 체인(Optional Chaining) 존재하지 않는 속성(property)을 호출하면 오류를 반환한다. 이때 오류가 아닌 undefined를 반환하도록 하는 선택적 체인(Optional Chaining) 방법이 있다. An..

Languages/Python

[Python] 파이썬 속도에 영향을 주는 GIL(Global Interpreter Lock)과 Garbage Collection

주요 개념병렬처리GIL(Global Interpreter Lock)Garbage Collection(GC)Thread 파이썬은 일반적으로 컴파일 언어보다 속도가 느리다. 이는 GIL(Global Interpreter Lock) 때문인데 이는 파이썬 객체에 대한 다중 접근을 보호하기 위한 Mutex(Mutual Exclusion, 상호 배제)로서 여러 쓰레드가 동시에 병렬적(Parallel)으로 실행하지 못하도록 하는 것이다. 따라서 한 파이썬 프로세스는 파이썬 인터프리터에 의해 한 쓰레드만이 작업 공간을 점유할 수 있다. 즉 파이썬에서 멀티 쓰레딩을 사용하게 되면 시분할 방식으로 프로세스들이 돌아가며 작업을 수행한다. 병렬 처리, 분산 처리를 통해 속도를 향상시키는 여러 기술이 나왔지만 파이썬은 해당 기..

Data Science/Statistics

구조방정식 모델링에서 B, Beta, t, se, p의 의미

주요 개념구조방정식 모델링(structural equation modeling, SEM)BBeta(\(\beta\))tsep 회귀분석 모델링을 진행하며 많은 논문들을 접하게 된다.논문들 표에서 B, \( \beta \), t, se, p와 같은 약어와 기호들로 자주 표기하곤 한다. 이는 경로 분석, 회귀분석, 요인 분석을 합쳐 발전시킨 통계 방법인 구조방정식 모델링(structural equation modeling, SEM) 모형 분석을 할 때 필요한 수치들이다.예시로 아래 논문의 표가 있다. 우선 B = estimates 값을 의미한다. 이는 회귀 모델에 얼마나 영향을 끼치는가를 나타내는 지표로 해석할 수 있다. 일차 방정식 y=ax+b에서 x의 계수가 B가 된다. 해당 회귀 모델에서 영향력이 큰 독..

Data Science/Statistics

[자연어 처리] [Python] TF-IDF(Term Frequency-Inverse Document Frequency)의 이해와 구현

TF(Term Frequency) 우선 TF(Term Frequency)란 1개의 문서 안에서 특정 단어가 출현하는 빈도를 뜻한다. 문단을 문장으로, 문장을 단어로 나누고 더 깊이 단어를 형태소로 나눌 수 있다. 전체 단어 또는 형태소 목록 중 특정 단어가 얼마나 자주 나왔는지 파악해 해당 문서의 특성을 파악할 수 있다. 영어에서는 a bat에서 a와 같이 1글자만 나오는 단어는 생략할 수 있지만 한글을 그러면 문맥이 바뀌는 경우가 있어 생략이 쉽지 않다. 한글은 키보드로 입력하기에 매우 효율적이지만 자연어 처리 부분에서는 굉장히 까다롭다. 아래는 파이썬으로 구현한 tf이다. def tf(t, d): return d.count(t) DF(Document Frequency) 다음으로 DF(Document ..

Languages/JavaScript

[JavaScript] JavaScript와 싱글 쓰레드(Single Thread) 그리고 비동기(Asynchronous)

주요 개념 싱글 쓰레드(Single Thread) 비동기(Asynchronous) JavaScript는 싱글 쓰레드(Single Thread) 언어이다. 한 번에 하나의 작업만 수행이 가능하다는 의미로 받아들일 수 있다. 하지만 우리가 사용하는 웹 페이지에는 여러 컴포넌트들과 기능들이 동시다발적으로 수행되고 있다. 이는 JavaScript는 메인 쓰레드인 이벤트 루프가 싱글 쓰레드이기 때문에 이렇게 불리지만 결국 실행한 후(런타임)에는 NodeJS와 같은 멀티 쓰레드 환경에서 구동되므로 동시다발적으로 여러 동작이 가능하다. 기존의 동기식 요청은 인터프리터 언어이므로 위에서 차례대로 수행된다. 앞에서 연산이 오래 걸리는 작업을 수행하고 뒤에 금방 끝날 수 있는 연산을 계속 미루게 되면 리소스의 낭비가 있어..

AlienCoder
외부 저장소
loading