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

전체 글

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/Data Analysis

구조방정식 모델링에서 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/Data Analysis

[자연어 처리] [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와 같은 멀티 쓰레드 환경에서 구동되므로 동시다발적으로 여러 동작이 가능하다. 기존의 동기식 요청은 인터프리터 언어이므로 위에서 차례대로 수행된다. 앞에서 연산이 오래 걸리는 작업을 수행하고 뒤에 금방 끝날 수 있는 연산을 계속 미루게 되면 리소스의 낭비가 있어..

Data Science/Data Analysis

[자연어 처리] [Python] 코사인 유사도(Cosine Similarity)를 이용한 문장간 유사도 분석

주요 개념 자연어 처리 코사인 유사도(Cosine Similarity) 유클리드 거리(Euclidean distance) 코사인 유사도(Cosine Similarity)는 내적 공간의 두 벡터 간 각도의 코사인 값을 이용하여 측정된 벡터 간의 유사한 정도를 의미한다. 각도가 0°일 때의 코사인 값은 1이고 이외 다른 모든 각도의 코사인 값은 1보다 작다. 이 값은 벡터의 크기가 아닌 방향의 유사도를 판단하는 목적으로 사용되며, 두 벡터의 방향이 완전히 같을 경우 1, 90°의 각을 이룰 경우 0, 180°로 완전히 반대 방향인 경우 -1의 값을 갖는다. 이때 벡터의 크기는 값에 아무런 영향을 미치지 않는다. 코사인 유사도는 어떤 개수의 차원에도 적용이 가능하지만 특히 결과값이 [0,1]의 범위로 떨어지는..

Data Science/Data Analysis

Mallow's Cp와 AIC, BIC를 이용한 회귀모델 변수 선택

머신러닝 공부를 하다 보면 오컴의 면도날(Occam's Razor)이란 단어를 종종 마주하게 된다. 단순성의 원리에 대해 강조하기 위해 등장하곤 하는데 의미는 아래와 같다."많은 것들을 필요 없이 가정해서는 안된다" (Pluralitas non est ponenda sine neccesitate.)"더 적은 수의 논리로 설명이 가능한 경우, 많은 수의 논리를 세우지 말라."(Frustra fit per plura quod potest fieri per pauciora.) 즉, 어떤 현상을 설명할 때 불필요한 가정을 해서는 안 된다는 것이다. 더 쉽게 말하면 같은 현상을 설명하는 두 개의 주장이 있다면, 간단한 쪽을 선택하라는 뜻이다.예를 들어 성적이 F가 나왔다는 사실이 있으면 이를 해설하기 위해 아래와..

AlienCoder
외부 저장소
loading