'전체'에 해당되는 글 1002건

  1. 2012.02.09 머리가 (4)
  2. 2012.02.09 randomForest in GNU R
  3. 2012.01.11 K-means clustering in GNU R 예제 (5)
  4. 2012.01.10 GPS 트랙을 단순화 하기
  5. 2012.01.09 빵 굽는 오븐
  6. 2012.01.09 GEO 단대에서 쓰는 소프트웨어
  7. 2012.01.08 평균에 대해 이야기 하기
  8. 2012.01.06 설명과 이해에 대해 (6)
  9. 2012.01.04 작성중 JAGS 와 OpenBUGS
  10. 2012.01.03 못 - 날개

머리가

2012.02.09 23:21 from 분류없음
깨질 것 같다. 
내일은 학기 마지막 날이고, 박사과정 마지막이 될 지도 모르는 발표와 회의가 있다. 준비 상태는 그냥 바닥이 빈 수영장같다. 나는 어디에 쓸모가 있는 사람일까, 한국에 무척 돌아가고 싶다. 집에서 그냥 밥 먹고, 동네 공원에서 산책하고, 떡볶이에 김밥 먹고 공상하고 싶다 지금.
자신감이 지난 몇 달 간 한 번도 들지 않았어. 그것 하나만이 나를 꽤 오랜 동안 지켜줬었는데, 그냥 보통도 안되는, 평범도 안되는 박사과정 중도 탈락자 같이 느껴졌어.  
저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 4

randomForest in GNU R

2012.02.09 01:34 from 분류없음
분류에 요새 주로 이용되는 랜덤 포레스트 패키지를 가지고 분류 방법을 정리하고자 함. 

http://cran.r-project.org/web/packages/randomForest/index.html
CRAN 패키지

http://en.wikipedia.org/wiki/Random_forest
위키피디어

http://stat-www.berkeley.edu/users/breiman/RandomForests/cc_home.htm
여기 잘 된 소개 자료 하나  

http://www.webchem.science.ru.nl/PRiNS/rF.pdf

Classification and Regression by randomForest

page1image2112
Andy Liaw and Matthew Wiener 
저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 0
오늘 무감독 분류를 할 일이 있어서 좀 찾아보니 R에는 기본 패키지인 stats에 kmean()이란 함수가 존재했다.
코드 예제는 R 기본 패키지 설명에서 
(http://stat.ethz.ch/R-manual/R-patched/library/stats/html/kmeans.html)
require(graphics)
# a 2-dimensional example
x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2), matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))  #여기선 각각 다른 평균을 가지고 2 개의 난수를 발생시켜서 하나의 데이터셋으로 합쳤다. 그러니까, 두 개의 집단으로 원래 따로 넣은 애들이 분리되면 성공이 되는 문제로 만들었다. 
colnames(x) <- c("x", "y")
cl <- kmeans(x, 2) # 작업하는 함수. 데이터를 넣고, 몇 개의 집단으로 나눌 지 알려주면 끝. 여기선 두 개 집단으로 분리하라고 지시
plot(x, col = cl$cluster)
points(cl$centers, col = 1:2, pch = 8, cex=2)

kmeans(x,1)$withinss # if you are interested in that. 이번엔 하나 집단으로 나눠보기. 결과를 보면 재밌다. 

## random starts do help here with too many clusters
cl <- kmeans(x, 5, nstart = 25) # 이번엔 5개 집단으로 나눴다. 원래 특성은 두 개의 집단인데 5개의 집단으로 나눠보면 어떻게 될까? 란 아이디어. 
plot(x, col = cl$cluster)
points(cl$centers, col = 1:5, pch = 8)


k-means clustering 여기서는 차원을 더 높은 데이터로 해도 잘 됐다. 유클리드 공간이라 가정하고 하니까 최소제곱법과 같은 맥락에서 이해하면 무리가 없을 것이다. 알고리즘에 대해서는 위키를 참조하고 더 할 얘기가 있으면 적어두도록 하겠습니다. 

 http://en.wikipedia.org/wiki/K-means_clustering

Given a set of observations (x1x2, …, xn), where each observation is a d-dimensional real vector, k-means clustering aims to partition the n observations into k sets (k ≤ nS = {S1S2, …, Sk} so as to minimize the within-cluster sum of squares (WCSS):

\underset{\mathbf{S}} {\operatorname{arg\,min}} \sum_{i=1}^{k} \sum_{\mathbf x_j \in S_i} \left\| \mathbf x_j - \boldsymbol\mu_i \right\|^2
where μi is the mean of points in Si. 
저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 5
http://neonstorm242.blogspot.com/2010/12/douglaspeucker-line-simplification.html
오늘은 이걸 결국 찾았다. GPS 트랙을 바탕으로 도로지도 만드는 중인데, 알고리즘 궁금해서 좀 찾아보다가. R에서 어떻게 하면 제일 깔끔할 지 생각 중.
 
 http://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm
일단 R에선 maptools 라이브러리 gSimplify 란 함수에 구현되어 있었다.  
저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 0

빵 굽는 오븐

2012.01.09 06:46 from 분류없음
번은 200/160 섭씨 도에서 10분 정도.
괜찮았다 저녁으로.
 
저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 0
수업은 학사, 석사, 박사 과정들이 섞여서 듣는다. 원래는 학사와 석사가 분리되지 않았던 나라이다 보니, 상대적으로 학사 과정에 대한 기대감이 높은 편이다. 그리고 논문도 보면 잘 쓰고, 괜찮다. 물론 어쩔 수 없이 학사로 분리되면서 수준을 낮출 수 밖에 없겠지만 멀지 않은 미래에. 


소프트웨어는 GEO 단대에서 수업 듣다가 문득 재밌겠다 싶어서 캡쳐해 본 것. 전산실 시스템은 윈도우지만 실제 연구자들은 유닉스 계열을 반절 정도는 쓴다. 설치된 프로그램도 오픈소스가 꽤 많은 걸 알 수 있다. 기억해 보면 90년대 후반 한국 대학도 전산실은 유닉스 계열였는데 (그래서 배우기 어려웠던 생각은 분명 든다) 어떻게 보면 나름 긴 컴퓨터 이용의 역사에서 윈도우가 서버 빼고 거의 모든 시장을 완벽하게 석권했던 건 2000년 부터 7-8년 정도라고 봐야지 않나 싶다. 개인컴퓨터 시장은 그보다 조금 더 일찍 시작했지만, 그래도 완전히 독점했던 건 10년이 못 되는 것 같다. 
전반적으로 커리큘럼에서는 R의 강세가 두드러지고, 위의 설치된 소프트웨어들도 많은 것이 R로 흘러들어가고 있다.  
GEO 단대는 위의 소프트웨어를 종합적으로 쓰는 과정이라는 것이 사실 흥미로운 이유다. 내가 학부 들어갈 때 기대했던 '지구환경시스템공학'이 대충 이런거 아니었나 싶은 그런 아쉬운 점이 쫌 있다.  

저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 0
나는 평균에 대해 이야기 할 때와 특정한 개체에 대해 이야기 할 때를 구분하려 애쓴다. 그리고 개인을 바탕으로 끌어낸, 혹은 아주 적은 표본에서 어떤 집단의 평균에 대해 이야기 하는 것을 꺼리는 편이다. 표본을 바탕으로 이야기 할 때는, 너무 당연하지만 표본의 수와 표집에 있어서 편의를 고려해야 한다. 주관적이고 사전적인 믿음을 집어넣고 싶을 때도 가급적이면, 물론 계산을 하면서 이야기 할 수 없지만, 믿음을 계속 취득하는 자료를 바틍으로 갱신해서 이야기 해야 한다는 강박을 가진다. 
오늘 글 몇 개를 보다가, 이 얘기를 하는 것이 어쩌면 내가 평생 할 일이 될지도 모르겠단 느낌을 가지게 됐다. 이의 불가능성에 대해 자주 생각한다 하지만.  

--------

불가능성에 대해.
한동안 지키던 의견은 이랬다. 어떤 목적과 상황에 적절한 설명의 복잡성(길이로 치환하자)이 있다. 여기에 척도 개념을 넣기도 했지. 한강의 수질 정화를 통한 하구 주거지역의 경제적 후생 극대화란 목적을 두고 상류 하천의 생태계 (수질로 단순화 하자)를 기술할 때 적절한 설명의 길이가 있다, 는 식이었다. 이 설명의 길이와 내용은 서울시 물수지를 계산할 때 고려할 수 있는 상류 하천 생태계에 대한 적절한 설명과는 전연 관계가 없다는 아이디어였고, 아주 간단한 두 개의 다른 목적(목적함수)를 위한 현상의 기술도 결코 동일할 수 없고, 가산 불가능할 것이다란 아이디어. 그래서 이 맥락에서 생태계 서비스의 합산을 위한 모든 시도를 공박했다.
그래도 하나의 목적 (명확하게 시공간적 척도가 특정된)을 위한 설명, 혹은 기술에는 최적의 내용을 찾을 수 있다는 일종의 기대, 희망은 있었다. 모든 사람이 통계를 더 잘 알고, 잘 쓰면 도달할 수 있을 것 같은 이상적인 담화에 대한 꿈이 있었다, 모든 사람의 통계학자화. 
근데 그게 가능한가, 실질적으로 백만인에게 통계 교육을 할 수 없다는 것, 교육을 받는다고 다들 동일하고 충분히 고도화된 이해에 도달 할 수 있을지에 대한 의심을 차치하고나서도, 아주 단순한 한 가지 목표 혹은 의미에 대해서도 최적의 통계학적 자료 설명, 규격화가 가능한가에 대한 회의가 들었다 잠깐. 이게 수학적 바탕을 가지고 얘기할 수 있으면 좋은데 실력이 없는 것이 안타깝다.
사실 여기서 취할 수 있는 접근이 여러가지 있을 건데.. 하나 적고 나중에 추가하도록 하자.
- 가용한 자료를 중심에 놓고 그 자료를 기준점으로 하여 최적의 설명 방법을 찾는 것. 이걸 자료와 모형의 적합성으로 끌어내려와서 얘기하면 전통적으로 그리고 여전히 다뤄지고 발전하고 있는 통계적 적합의 문제로 축소할 수 있을 것이다만, 그 보다 조금 더 많은 걸 한 번에 다루고 싶었다. 사실 그리고 일반적으로 가장 좋은 설명 이나 기술(혹은 단순화해서는 모형)을 찾는 것이 불가능하다고 널리 통계학에서는 가르쳐지고 있는데, 한 두 가지 정리를 이용해서 어떻게 얘기해야 할 지는 좀 더 생각해 봐야겠음. 있지만 자료에 침투한 무작위성 때문에 우리가 알 수 없다고 단순히 얘기하는 것이 더 좋을지, 더 세련되게 아예 불가능하다고 얘기해야 할 지 많이 헷갈린다. 연결해서 생각할 수 있는 것이 애로우 불가능성 정리도 있고 할텐데 뭐 그냥 막 연결시키면 안 될 것 같고 검토가 충분히 되어야 할 것임.. 생각이 꼬리를 무는 건, 어디선가 많이 듣던 얘기고 많이 연구되었는데 그냥 내가 모르고 있는 것 같다는 느낌 사실;
- 관련된 인간, 집단, 행위자, 시스템의 이해와 요구를 가용한 자료라는 제약보다 위에 놓고 최적의 기술을 찾아야 한다는 주장은 어떨까. 아니 이건 첫 번째랑 분명히 갈리지 않았다. 더 생각해 봐야해..
    - 암묵적으로 가정된 이해와 효용 함수가 정치적이기 때문에 (당연히 정치적이지 않다고 말 할 순 없다. 아니 그냥, 정치적으로 결정되었다) 그걸 중심으로 놓고 주 논의를 부칠 수도 있다. FTA 효과 연구에서 GDP 극대화를 하냐 1인당 GDP 추정량의 분산을 같이 보냐 이런 식으로 생각해 볼 수 있을 거시다. 섹터 별로 따로 평가해 볼 수도 있고, 계산 방법의 오류 지적하는 반박 만큼이나 흔히 볼 수 있는 사례. 
   

이어서 계속.. 

 
저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 0
"만약 오랫동안 어려운 공부를 하지 않은 비전문가에게 설명하여 이해시킬 수 없다면 우리가 정말로 세상을 이해하고 있다고 말할 수 있을까? (…) 우리가 무언가를 이해하고 있는지를 판명하는 진정한 시험은, 아무것도 예상하지 않는 열린 마음을 가진 비전문가에게 지식을 설명하여 이해시킬 수 있는지를 보는 것이다."

마르틴 보요발트의 '빅뱅 이전'에서. 책은 읽었고, 인용부분은 프레시안 기사에서 재인용.
위의 주장에 깊히 동감해 왔으나 최근 이에 대해 물음을 던질 기회가 있었다. 왜 그래야 하냐, 그런 강박은 어디서 온 거고 어떻게 주입된 거지? 란 질문, 내가 이해한 바로는. 더 본질적인 물음이라면, 우리는 우리가 아는 것을 설명할 수 있는가, 설명할 수 있다는 것은 이해한다는 것을 입증하는가 아니면 더 안전하게 얘기하면, 설명할 수 없다는 것이 이해하고 있지 못하다는 것을 말하나. 
일단 아주 쉬운 반례를 들 수 있다. 내가 들은 많은 강의에서 몹시 훌륭한 강연자들이 제대로 설명해 내지 못하는 경우가 많았고, 그 중의 일부는 분명 제대로 이해하지 못하고 있는 것으로 봐야겠지만 다른 일부는 완벽하게 이해하고 있으면서도 그저 말하기에 열의를 보이지 않는 것처럼 보였다. 가끔 경제학 공부할 때 좋은 논문을 쓰는 교수보다 고시학원 동영상이 더 쉽게 설명하는 것처럼 느껴지기도 했다. 물론 고시학원 동영상에서는 수험용 경제학이고 무척 제한적인 내용만 다루지만, 그래도 그 내용을 좋은 연구자가 온다고 더 쉽게 설명할 수 있는지에 대해선 의문. 학원 강사는 설명 자체에 전문화가 되니까. 
그러니까 내가 살짝 문제를 비틀어, 더 좋은 설명을 한다는 것이 더 나은 이해를 보장하지 않는 것 같다는 주장을 펼쳤다. 그래도 물론 말하기나 설명에 대한 기술이 부족하더라도 어떻게든 다른 사람에게 의사를 전달할 수 있지 않은가 이건 중요한 판단기준일 수 있는데, 넓게 알려진 예로 뷰티풀 마인드 영화를 들고 싶다. 영화 보고 나서 수업에서 관련된 내용이 있었기에 직접 논문을 읽어보기도 했다. 일본 학자의 정리를 인용했고, 두 페이지 짜리 논문이었다. 어려운 버전의 중간값 정리 같은 걸 이용했던 기억이 난다 (대학원에서는 수학과가 아니더라도 좀 더 일반적이고 보편적인 수학을 쓰기 시작하고 그래서 특수한, 단순화된 버전의 수학 정리들을 다시 일반적인 정리로 배운 다음에 사용하는 것이 수업 시간의 많은 부분을 할애한다. 이게 어떻게 생각하면 시간 낭비처럼 보일 수도 있지만 내 느낌으론 교양 수준과 전공 수준을 가르는 차이였다). 내쉬는 영화에서도 사회적 관계에 많은 어려움을 가지는 것으로 그려졌고, 학교에 있다보면 그런 특징을 내쉬와 공유하는 사람들을 찾기가 그리 어렵진 않다. 요새 내가 좋아하는 귤의 심리학 포스팅을 바탕으로 추측하면, 자기 공부에 집중력을 할애하느라 다른 어떤 것에도 별로 노력을 기울이지 않는 그런 느낌. 남자 자취생들이 청소에 별 집중력을 할애하지 않는 것으로 비유하면 적당하지 않을까. 한 마디로 말하라면, 공부에 관심이 있지 설명이나 공유에 별 관심을 기울이지 않기 때문에 대중적인, 비전문가를 상대로는 거의 한 마디도 하지 못하는 사람들이 나는 존재하는 경우라고 생각한다.  

그래도 나는 당분간 저 믿음을 유지하기로 했다. 일단 내가 설명과 지식의 보급이나 소매에 많이 관심있기도 하고, 내가 공부하는 내용은 내가 이해만 한다면 쉽게 셜명할 수 있는 정도의 명료한 것들이라 생각하기 때문이다. ㅡ리고 많은 다른 나의 일상과 마찬가지로 다소의 물음표가 남겨진 상태에서도 일단 최선을 다하는 편이 더 나았다 과거 경험에선.  
하지만 다른 공부하는 사람들을 단지 설명에 대한 의지나 역량을 바탕으로 재단하는 것은 실수일 것이다, 라고 생각하게 됐다. 물론 많은 설명하지 못하는 사람들은 사기꾼이었지만, 모두 그렇지 않다는 것을 기억해야 한다. 
저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 6
http://www.johnmyleswhite.com/notebook/2010/08/20/using-jags-in-r-with-the-rjags-package/
jags 와 rjags 쓰는 예제 


http://bayesiancomputation.wordpress.com/2010/06/19/openbugs-vs-jags/
OpenBUGS와 JAGS 사용에 관한 굉장히 중요한 코멘트 


몇 달이 넘게 OpenBUGS로 헤멨는데, JAGS가 대안이라는 생각이 오늘 저녁에 갑자기 들었다. 맥에서는 OpenBUGS 정상적 사용이 진짜 어려웠고. 리눅스에서 환경 다 갖춘 후에도 알 수 없는 에러가 정말 많았는데, OpenBUGS 자체에 대해 서서히 회의를 하기 시작했음 그러다. 
JAGS가 구조적으로 우수한 점이 많이 있는 것 같다, OpenBUGS가 새로운 기능을 몇 더 갖추고 있지만. 
사실 오픈 벅스에 매달린 건, 작년에 학회 갔다가 이게 업계의 사실상 표준 de facto standard 라고 들었기 때문인데. 꼭 그렇진 않다는 생각이 요새 많이 듬. 그리고 OpenBUGS  홈피가 너무 오래 업데이트 안되고 있고.. 작년에 실습하면서 보니까 윈도우에서도 정말 기기묘묘한 에러가 많이 나는 것을 발견할 수 있었고 좀 아무튼 그렇다. 

앞으로 며칠 동안 JAGS로 기존 코드 돌리던 것 옮겨서 잘 작동하는지 보겠음. 
 
----------

OpenBUGS를 스탠드얼론으로 돌리는 것은 맥이나 리눅스에서도 별 문제가 없다고 할 수도. 그런데 내가 가지는 문제는 대부분 R에서 호출하려고 할 때 생김. 단적으로, OpenBUGS로는 리눅스 위에서도 안전하게 돌아가는 코드가 R2OpenBUGS나 BRugs에서는 알 수 없는 에러를 내고, 디버깅도 사실상 불가능한 경우가 잦음. 
그리고 뭔가 좀 해보려고 하면 R 등을 안 쓸 수가 없다; 
저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 0

못 - 날개

2012.01.03 05:02 from 분류없음

밴드 MOT. 
저작자 표시 비영리 변경 금지
신고
Posted by 관리자.. 트랙백 0 : 댓글 0