목록분류 전체보기 (100)
nathan_H
Ensemble 앙상블이란 여러개의 weak learning을 만들어 학습 시킨후 결합시켜 최종 결과를 만드는 기법이다. 그리고 여러개의 weak learning을 만들고 그 결과를 결합시켜 최종 결정을 함으로써 다음과 같은 장점들을 가지고 있다. 1) Error 최소화 - 다양한 모델의 결과를 종합하여 전반적으로 오류를 줄여준다. 2) Overfitting 감소 - 각 모델별 bias가 존재하고 다양한 bias를 종합하여 결과를 생성하게 되어, overfitting을 줄여줌. 3) Low bias, High Variance - Variance을 줄이기 위한 기법. 이러한 장점으로 Ensemble은 많은 성능 향상 효과를 가지고 있다. 직관적으로 해석하자면 많이 다양하게 학습시키고 그 결과를 종합해 최종..
정규식에서 ?는 앞에 있는 식이 등장해도 돼도 안돼도 된다는 의미. ex) [0-7][2-5][2-9]? -> 이면 [2-9]라는 식은 등장유무에 상관없이 만족.(매칭 안돼도 상관 없다.) dir - > 해당 객체의 멤버 변수들 호출. p = re.compile("[1-8][0-9][1-8]") python console창에서 p.match("123") >> # 인터프리터 창에선 함수 리턴값을 보여준다. a = p.match("123") # a라는 변수에 객체 저장 print(a) >> a+ -> 1개 이상의 글자 = "a" -> 연속 했을때!! ex) >>> p = re.compile("a+") >>> p.match("a") >>> p.match("aaaa") >>> p.match("aaaaabaaaa..
joint distribution이 주어졌을 때, 즉, 두 개가 동시에 일어날 확률이 주어졌을 때, variable 하나에 대해서 관심이 없는 상태입니다. 예를 들어서 동전을 두 개를 던집니다. 그런데, 이 동전 두 개가 독립적이지 않다고 합시다. 첫번째 동전이 어떻게 나오느냐에 따라서, 두번재 동전이 head이냐, tail이냐가 바뀐다고 했을 때, 그런데 어느 순간 보니까 첫번째 동전은 아무 의미가 없는 것 같습니다. 만약 우리가 두번째 동전이 head가 나온 것이 중요하다고 생각한다면, 두번째 동전이 head가 나온 case에 대해서 첫번째 동전의 case를 모두 더합니다. 그럼 그것이 marginalize라는 것입니다. 여러 개의 확률 변수로 구성된 조합 확률분포(joint distribution)..
KNN알고리즘이란 Instance-Based-Learning(Memory-based learning)로 학습 데이터로부터 임의의 모델 파라메터를 학습하는 것이 아닌, 학습데이터와 테스트 데이터를 직접 '비교' 하는 알고리즘이다. (Non - Parametric) 그리고 결국 학습 데이터의 Lable을 이용하요 사용하는 분류하는 문제이기 때문에 지도학습에 속한다. 동작 원리. 예시를 통해 동작원리를 알아보자. k = 1일 경우는 제일 가까운 C만 고려, -> 동그라미로 분류. K = 2 일경우 C,D,E 까지 고려 (다수결 원칙) -> 세모로 분류 K= 5 일때 ,C, D, E, B, A 까지 고려. 동그라미로 분류. Euclidean Distance KNN도 k를 정하기 전에 선행되되어야 하는 작업이 있..
K-means 알고리즘. k-means알고리즘 대표적인 분리형 군집화 알고리즘 가운데 하나이며, 말그래도 k개 평균으로 군집을 나눠주는 알고리즘이다. 각 개체는 가장 가까운 중심에 할당되며, 같은 중심에 할당된 개체들이 모여 하나의 군집을 형성한다. 그래서 k-means알고리즘 적용시 사용자가 사전에 군집 수를 정해야 한다. K가 hyperparameter라는 이야기이다. 수식은 아래와 같다. 여기 rnk는 n번째 데이터가 k번째 cluster에 속하면 1, 아니면 0인 값을 가지는 binary variable이며, ck는 k번쟤 cluster의 중심을 뜻한다. 즉 k-means clustering 을 실행한다는 것은 주어진 데이터 x에 대하여 rnk와 ck 값을 설정하는 것과 같다. k-means의 표..
무지보다 무서운 것은 잘못된 지식과 오해이다. 오해와 잘못된 지식은 올바는 것을 제대로 바라보고 받아들이지 못하게 만든다. 그래서 항상 자신의 지식을 점검을 통해 올바른 생각과 시각을 가지는 것이 중요하다. 하지만 생각보다 많은 사람들은 오해속에 세상을 바라보고 있는 경우가 많다. 여기 질문에 대한 정답을 찾아보아라. 지난 20년간 세계 인구에서 극빈층 비율은 어떻게 바뀌었을까? A: 거의 2배로 늘었다. B: 거의 같다. C: 거의 절반으로 줄었다. 아마 바로 정답을 고르지는 못할 것이다. 대부분 감으로 정답을 선택할텐데 결과는 바로 C이다. 이 문제에 정답을 맞춘 한국 사람의 비율은 고작 9%밖에 되지 않는다. 10명에서 한명만 정답을 맞췄다는 것이다. 그리고 다른나라의 정답률도 우리나라와 별차이가 ..
"인간은 왜 다른 선택과 행동을 하며 어떻게 하면 인간을 올바르게 바라볼 수 있을까" 라는 의문에 다양하고 복잡한 인간의 본성과 심리를 통해 대답해주는 책. "인간은 더 큰 무언가에 일부가 되기를 바란다." - 평점 4.5 / 5 점 (사실 책의 내용이 쉽지 않아 제대로 이해 하지 못한 부분이 많아 재독을 통해 다시 서평을 쓸 예정.)
OOP의 주요 특징인 캡슐화는 여러 가지 멤버를 하나의 형식으로 묶는 과정을 말하며 클래스를 통해 구현한다. 특히 클래스에 멤버를 정의할 때 어느 영역에서 해당 멤버에 접근할 수 있는지를 지정할 수 있게 하여 주요 멤버에 외부에서 접근하여 잘못된 상태가 만들어지지 않게 만들 수 있게 지원합니다. 이러한 특징은 접근 지정을 통한 정보 은닉이라고 부른다. 이러한 이유로 많은 OOP 언어에서는 멤버의 접근 지정을 설정할 수 있는 키워드(흔히 public, private, protected)를 제공하고 있다. 하지만 Python에서는 멤버의 접근 지정을 설정하는 키워드를 제공하고 있지 않다. Python에서 클래스를 정의할 때 멤버 이름에 따라 접근 지정을 설정할 수 있다. 멤버 이름 앞에 언더바(_)가 두 개..