머리가

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