[Python] 확률(Probability)과 우도(가능도, Likelihood) 그리고 확률 밀도 함수(probability density function, PDF)
확률이란 모델 파라미터 값이 관측 데이터 없이 주어진 상태에서 랜덤한 출력이 일어날 가능성이고,우도(가능도)는 특정 관측 결과가 주어진 상태에서 모델 파라미터 값들이 나타날 가능성이라고 볼 수 있다. ..
확률이란 모델 파라미터 값이 관측 데이터 없이 주어진 상태에서 랜덤한 출력이 일어날 가능성이고,우도(가능도)는 특정 관측 결과가 주어진 상태에서 모델 파라미터 값들이 나타날 가능성이라고 볼 수 있다. ..
주요 개념 라이브러리(library) 패키지(package) 모듈(module) 함수(function) 메소드(method) 비단 파이썬에서만 사용되는 용어는 아니지만 가끔 혼동해서 말하는 경우가 있어 정리해 둘 필요가 있을 것 같다. 먼저 라이브러리(library)는 여러 패키지와 모듈들을 모아놓은 것을 의미한다. 패키지(package)는 특정 기능과 관련된 여러 모듈을 한 폴더 안에 넣어 관리하는데 이를 패키지라고 한다. 예를 들어 Test라는 폴더 안에 __init__.py, test.py와 같은 파일들이 모여있는 것이다. 모듈(module)은 함수, 변수, 클래스를 모아놓은 것을 말한다. 일반적으로 한 파일을 말하는데 예를 들어 .py와 같은 하나의 파일 안에 함수와 변수, 클래스가 모여있는 것으..
파이썬의 라이브러리 안을 보다 보면 *args나 **kwargs와 같은 함수의 파라미터 부분에서 보인다. 마치 c++에서 아래와 같은 구문과 유사하게 보인다. 하지만 다행히 파이썬에서 *와 **는 포인터를 의미하는 것은 아니다. 파이썬에선 주소에 직접 접근해서 코딩을 하지는 못하기 때문이다. 아래는 c++ 코드이다. int main(int argc, char **argv) { return 0; } c++에서 argc는 argument의 개수, argv는 배열 형태로 argv[0]에는 실행 파일명이 저장되고 이후 argv[1], argv[2]...에는 입력한 인자(argument)값들이 들어가게 된다. 참고로 매개변수(parameter)와 전달인자(argument)는 혼용해서 사용하기도 하는데 일반적으로 ..
React Native를 사용하다 스타일링을 위한 스크립트를 작성하는 도중 ...Platform이라는 구문을 발견하게 되었다. 기존에 사용하던 언어들에서 보지 못한 특이한 종류의 구문들이 JS에서는 종종 보이는 것 같다는 느낌이 든다. 우선 이 전개구문(spread syntax)은 이름 처럼 객체나 배열들을 전개하여 사용할 수 있도록 해주는 문법이다. 마치 파이썬에서 함수에 인자 값들을 받을 때 *args를 이용하여 여러 인자를 한 번에 받을 때 사용하는 것과 비슷한 구문이라는 생각이 든다. 하지만 파이썬에선 *만 있으면 뒤에는 *qwer과 같이 앞에 *만 있다면 뒤에 오는 문자는 사용자 마음대로 써도 무관하지만 자바스크립트에서는 ...을 사용해야 한다는 차이점이 있다. {...obj} [...arr] ..
주요개념 VIF(Variance Inflation Factors) 다중공선성(Multicollinearity) 일반적으로 회귀분석은 독립 변수들을 선정하여야 한다. 이때 독립 변수 간 강한 상관관계가 나타나는 문제를 다중공선성문제(Multicollinearity)라고 한다. 이름에도 나와있듯 어떠한 독립 변수가 다른 독립 변수와 완전한 선형 독립이 아닌 경우를 말한다. 위의 그림처럼 독립 변수 n개를 이용하여 종속 변수 Y를 찾아내는 경우가 있다. 독립 변수들이 서로 상관관계가 높다면 결과를 도출하기 위한 데이터 분석 과정에서 부정적인 영향을 미치게 된다. 왜냐하면 독립 변수들의 영향력을 파악하여야 하는데 어떤 독립 변수 X1이 다른 독립 변수 X2에 영향을 미치고 있다면 우리가 원하는 "독립"된 변수가..
일급 객체(First-class Object) JS에서 함수는 일급 객체(First-class Object)에 해당한다. 일급 객체란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 이에 대한 정의는 아래와 같다. 객체지향 프로그래밍에서 자주 언급되는 단어인데 파이썬에서도 해당 개념은 물론 있다만 익숙해진 후엔 인지하고 사용하지는 않았던 것 같다. 변수에 할당(assignment)할 수 있다. 다른 함수를 인자(argument)로 전달 받는다. 다른 함수의 결과로써 리턴될 수 있다. 함수 선언 방식 함수 객체는 위의 조건을 모두 충족시키므로 일급 객체라고 볼 수 있다. 일급 객체이므로 고차 함수를 만들 수 있고 콜백을 사용할 수 있다. 이러한 일급 객체인 함수를 선언하는 방법..