일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- data science
- 딥러닝
- Artificial Intelligence
- Big Data
- openCV
- 빅 데이타
- c++
- 우리들교회
- nodeJS
- 통계
- R
- 데이터 과학
- Statistics
- probability
- 주일설교
- Machine Learning
- Deep learning
- MongoDB
- WebGL
- 몽고디비
- node.js
- 김양재
- 확률
- 인공지능
- 빅 데이터
- No SQL
- 빅데이터
- 김양재 목사
- 빅데이타
- 김양재 목사님
- Today
- Total
목록Big Data (126)
Scientific Computing & Data Science
by Geol Choi | February 2, 2014우선 다음과 같이 "food" 컬렉션에 array 타입으로 도큐먼트를 추가한다:> db.food.drop() > db.food.insert({"_id" : 1, "fruit" : ["apple", "banana", "peach"]}) > db.food.insert({"_id" : 2, "fruit" : ["apple", "kumquat", "orange"]}) > db.food.insert({"_id" : 3, "fruit" : ["cherry", "banana", "apple"]}) "apple"과 "banana" 모두를 포함하는 도큐먼트는 ID 1과 ID 3이다. "$all"을 통해 이 두 가지 모두를 포함하는 도큐먼트를 검색해 보자.> db.f..
by Geol Choi | January 31, 2014이번 글에서는 findAndModify를 통해 도큐먼트를 업데이트하는 방법에 대해 알아보겠다. findAndModify는 제시된 기준의 아이템을 찾고 업데이트하는 일련의 과정을 한 번에 처리할 수 있는 편리한 명령이다. findAndModify 명령어의 인자에는 sort 기능이 있는데 지금까지 다룬 적이 없으므로 이 부분을 우선 이해하고 넘어가도록 하겠다.다음과 같이 데이터를 준비하자.db.tasks.insert({todo : "shopping", status : "READY", priority : "4"}) db.tasks.insert({todo : "studying Mongo DB", status : "READY", priority : "1"})..
누적 분포 함수(Cumulative Distribution Function; CDF) \(F(x)\)를 갖는 연속 확률 변수 \(\mathbf{X}\)의 중간값(Median)은 다음 관계식이 만족되는 \(\mathbf{X}\)를 의미한다. \(F(X) = 0.5\) (1) 일반적으로 이산 문제에서 값을 얻는 것이 불가능하다.중간값은 값의 분포가 한쪽으로 치우쳐지는가를 판단할 수 있는 지표가 되기도 하나, 다음과 같은 결함을 가지고 있다.(2) 값을 찾는 것이 번거롭다. 만약 중간값과 기대값이 일치하는 경우 이를 "대칭 확률 변수"라고 한다.
Expected Value of a Discrete Random Variable확률밀도함수 \(P(X = x_i) = p_i\)를 갖는 이산확률변수의 기대값(Expected Value 또는 Expectation)은 \(\displaystyle{\mathrm{E}(\mathbf{X})} = \sum_{i}{P_i x_i}\)이며, \(\mathrm{E}(\mathbf{X})\)는 확률변수로 취해지는 평균값을 의미한다. 또한 확률변수의 평균이라고도 알려져 있다.Expectation of a Continuous Random Variable확률밀도함수 \(f(x)\)를 갖는 연속 확률 변수의 기대값은 \(\displaystyle{\mathrm{E}(\mathbf{X}) = \int_{\mathrm{state \..
\(A_1, ..., A_n\)이 샘플 공간의 분할이면, 사건 \(B\)의 조건 하에 사건 \(A_i\)의 Posterior Probability는 확률 \(P(A_i)\)와 \(P(B \mid A_i)\)를 이용하여 다음과 같이 구할 수 있다. \(\displaystyle{ P(A_i \mid B) = \frac{P(A_i)P(B \mid A_i)}{\sum_{j=1}^{n}{P(A_j)P(B \mid A_j)}} }\) 이를 Bayes' Theorem이라고 한다. Bayes' Theorem은 확률이론에 있어 매우 중요한 결론이다. 이는 새로운 정보가 기존의 확률 정보의 업데이트 또는 개정에 어떻게 유용하게 사용될 수 있는가에 대한 방법을 제시해 주기 때문이다. 어떤 경우에 있어 Prior Probab..
A1, ..., An을 샘플 공간 S의 분할이라고 하고 각 Ai를 상호 배타적이라고 하면, \(S = A_1 \cup ... \cup A_n\) 라고 할 수 있다. n개의 이벤트에 대한 확률 P(A1), ... ,P(An)이 알려져 있으며 또한 조건부 확률 \(P(B|A_i)\) 도 알려져 있다고 하자. P(B)를 계산하기 위해 P(Ai)와 P(B|Ai)를 이용한다. 사건 \(A_i \cap B\)가 상호 배타적이라면 다음이 성립된다: \(P(B) = \displaystyle{\sum_{j=1}^{n}{P(A_j)P(B|A_j)}}\) 이 결과를 "전체 확률의 법칙(Law of Total Probability)"라고 한다. 다시 한 번 정리하면: 만약 \(A_1\), ..., \(A_n\)을 샘플 공간의..
by Geol Choi | January 30, 2014"update" 쿼리는 기본적으로 기준에 부합하는 첫번째 도큐먼트만 업데이트 한다. 즉 기준에 부합하는 도큐먼트가 더 있을 경우 부합하는 첫번째 도큐먼트를 제외한 나머지 도큐먼트의 내용은 그대로 유지된다. 만약 기준에 부합하는 모든 도큐먼트를 업데이트하려면 "update"의 네번째 파라미터를 "true"로 설정한다. 우선 테스트용 데이터를 다음과 같이 준비하는데 고객의 이름과 생일을 입력해 보자.db.customers.remove() db.customers.insert({name: "gchoi", birthday:"08/22"}) db.customers.insert({name: "jmpark", birthday:"04/02"}) db.customer..
Written by cinema4d"upsert"는 "update"의 특별한 형태 (명령어는 아니며 DB의 컨셉)이다. "update" 기준에 일치하는 도큐먼트가 없을 경우 그 기준을 포함하는 도큐먼트로 업데이트한다. 만약 일치하는 도큐먼트가 있을 경우 정상적으로 업데이트 된다. "upsert"는 컬렉션의 구조를 정하고 시작할 필요가 없기 때문에 편리하게 사용할 수 있다.우선 다음과 같이 명령어를 입력해 보자. db.math.remove() db.math.update({"count" : 25}, {"$inc" : {"count" : 3}}, true) 첫번째 라인을 통해 math 컬렉션을 삭제(컬렉션이 존재할 경우 "true"를 컬렉션이 존재하지 않을 경우 "false"를 반환한다)한 후, 두번째 라인에..
Written by cinema4d앞서 설명한 바와 같이 "$push" modifier를 통해 동일한 아이템을 추가할 경우 중복적으로 추가됨을 살펴 보았다.만약 동일한 아이템을 추가할 때 중복적으로 추가하지 않도록 하려면 "$addToSet" modifier를 사용하면 된다.우선 다음과 같이 입력해 보자. use foobar var user = {"username" : "gchoi", "age" : 37}; db.users.insert(user); db.users.update({"username" : "gchoi"}, {$push : {"email" : "gchoi@gmail.com"}}); 결과를 확인해 보면 다음과 같다.> db.users.find() { "_id" : ObjectId("52e3d4d..
Written by cinema4d이번 글에서는 "$push" modifier에 대해 알아 보겠다."$push" modifier는 DB에 item을 계속 추가하는 명령어이다.우선 설명에 앞서 다음 명령어를 준비하자. use foobar var user = {"username" : "gchoi", "age" : 37}; db.users.insert(user); 다음과 같은 결과를 확인할 수 있을 것이다.> db.users.find() { "_id" : ObjectId("52e3c2e4623bbd008840d66f"), "username" : "gchoi", "age" : 37 } 이제 "$push" modifier를 통해 "email"을 추가해 보자. db.users.update({"username" : ..