자바로 프로그램을 개발하여 실행할 경우

컴파일 에러는 없지만, 실행시에 OutOfMemory 가 발생하는 경우가 많이 있다.

이 경우는 실제로 메모리가 부족해서라기 보다는
자바 프로그램이 기본적으로 할당한 메모리가 작기 때문이다. (정확히 몇 M ?)

C:> java prog -Xmx512m

위와 같이 -Xmx512m 이라고 쓴 의미는
이 프로그램에서 512M의 메모리를 사용하겠다는 의미이다.

더 많이 필요하다면, (그래도 OutOfMemory 에러가 발생한다면)
좀 더 크게, -Xmx1024m 또는 -Xmx2048m 등으로 1기가, 2기가 정도로 더 크게 잡으면 된다.

이제 다시 실행해보자. 문제가 해결되었을 것이다~!.
(혹시 해결이 안되었다면, 죄송... 다른 방법을 찾아보시길~)

참고로,
아래는 JBuilder 프로그램을 사용하여 자바 프로그램을 개발하고 실행할 경우
이 문제를 해결하기 위해 환경을 설정한 화면을 아래에 참고로 추가하였다.

사용자 삽입 이미지


참고로, 실제로 메모리가 부족하다고 할지라도 가상메모리를 사용할 수도 있기 때문에
이 문제를 해결하기 위해 구지 메모리를 구입해서 더 장착할 필요는 없다.
그리고 물리적 메모리가 4G, 8G 등으로 엄청 크다고 해도 위 에러가 발생하지 않는 것은 아니다.

by 에이아이 2010. 3. 2. 00:42

통계학의 많은 분석 방법들은
모수(Parameter)를 필요로 하는가 또는 필요로하지 않는가에 따라
모수통계학(Parametric Statistics)비모수통계학(Nonparametric Statistics)로 구분됩니다.

일반적으로 통계책에서 다루는 내용들은 모수통계학에 해당하는 내용들이 많습니다.
간단하게 몇 가지만 예를 들자면, t검정, 분산분석(ANOVA) 등이 모수통계 분석에 해당되는 분석방법들입니다.
반면에, 카이제곱 검정은 비모수 통계분석에 해당합니다.

본 강좌에서는 아래의 내용들을 정리하고자 합니다.

(1) 모수통계학과 비모수통계학의 정의
즉, 두 방법을 구분하는 기준을 설명합니다.

(2) 기존 다양한 통계방법들의 분류
통계학에서 제안되고 있는 다양한 방법들을 모수통계학과 비모수통계학으로
구분될 수 있습니다. 많은 경우 우리가 적용하고자 하는 분석 방법이 모수적 방법인지 비모수적 방법인지 명확하지 않을 수 있습니다. 본 자료에서는 <분류표>를 사용하여 많이 사용되는 분석법들을 분류하였습니다.

(3) 비모수통계 분석의 필요성
비모수통계학이 왜 필요한가? 어떤 상황에서 모수통계분석법이 아닌 비모수통계법을 선택해야 하는가? 를 설명합니다.

자세한 내용은 아래의 PPT 파일에 담아 첨부합니다.
(우선 현재는 간단한 내용만을 정리했으며, 추후에 내용을 보완한 후 다시 올릴 계획입니다.)



내용 중 일부를 그림으로 추가하였습니다.

< 비모수통계학에 대한 소개 내용 >



<모수통계와 비모수통계 분석법의 분류표>

by 에이아이 2010. 2. 22. 22:03
우연히 접하게 된 무료 통계 프로그램 입니다.

프로그램을 설치하지 않고 웹상에서 바로 사용할 수 있도록 개발한 것이 흥미롭습니다.

프로그램 이름은 i-Statistics 입니다.

http://qsp.snue.ac.kr/istat/

위 주소에 방문하셔서 바로 사용할 수 있습니다. 

저도 아직 사용해보지는 않아 기능은 잘 모르겠지만 참고하려고 링크만 걸어둡니다. 



 
by 에이아이 2010. 2. 3. 00:09
한양대학교 산업공학과 통계품질 연구실 에서 개발하여 무료로 배포하고 있는 통계 프로그램입니다.

연구실 홈페이지에 방문하신 후 회원가입하고 다운로드 받을 수 있습니다.

회원가입 후 메인화면에 링크 되있을 수도 있고,
혹시 안보이면 S/W download 에 가면 있습니다.

http://seaq.hanyang.ac.kr/


by 에이아이 2010. 2. 3. 00:09

엑셀 프로그램에 대한 강좌를 정리합니다.
2007 버전을 중심으로 필요한 강좌들을 만들어서 추가하려 합니다.

[1] 엑셀을 이용한 회귀분석 강좌
http://blog.naver.com/stmkywb?Redirect=Log&logNo=40066760896

[2] 엑셀 2007의 메뉴를 이전 메뉴(2003 버전)의 모양으로 전환해주는 방법 (프로그램)
http://ai-times.tistory.com/410

[3] 엑셀 2003 버전의 기능을 2007에서 찾는 방법 (플래쉬로 설명)
http://ai-times.tistory.com/487

by 에이아이 2009. 12. 20. 18:47

본 강좌에서는 Weka 프로그램을 사용하여 군집분석을 수행하는 방법을 설명하고자 합니다.

Weka 프로그램을 처음 사용하는 경우 군집을 수행하는 절차 그리고 결과를 해석하기가 좀 어렵게 느껴집니다.
분류의 경우는 Tree 형태로 결과가 나오서 모델을 해석하기가 쉬운데 군집은 수행한 결과가 뭘 의미하는지 좀 해석하기가 좀 애매합니다.

간단한 예제를 가지고 Weka를 사용하여 군집분석을 수행하고 해석하는 방법을 설명하고자 합니다.
분석 데이터가 복잡하면 군집 분석도 괜히 어렵게 느껴질 수 있으므로 아주 이해하기 쉬운 간단한 데이터를 만들어 보았습니다.

분석을 위해 만들어 본 데이터를 아래에 설명합니다. 

데이터는 10명의 학생들의 수학, 물리, 영어, 중국어의 4과목의 성적으로 구성된 데이터입니다.
처음 3명의 학생은 [수학,물리] 를 잘하는 학생들이고, 다음 3명은 [영어,중국어]를 잘하는 학생들입니다. 다음 2명은 4과목이 모두 우수한 학생들이고, 마지막 2명은 모든 과목을 다 못하는 학생들입니다.

즉, 4개의 군집으로 구성한 간단한 데이터입니다. (정리하면, 군집1: 계산능력우수군집, 군집2: 외국어능력우수군집, 군집3: 전과목우수군집, 군집4: 공부와담쌓은군집)




위 그림은 데이터를 쉽게 이해하기 위하여 엑셀에서 보기 위하여 만든 CSV 형식의 파일입니다.
웨카 프로그램을 사용하여 분석하려면 아래의 그림에 표시된 Arff 형식의 파일을 사용해야 합니다.
두 가지 형식 모두 만들어서 아래에 첨부하였으니 실습해보려면 다운로드 하세요. 

 CSV 형식으로 된 데이터 파일  
 ARFF 형식으로 된 데이터 파일 (Weka 실행 용)  



웨카 프로그램을 시작합니다. 아래 그림의 왼쪽 편의 작은 윈도우가 표시됩니다.
4개의 버튼 중 [Explorer] 를 클릭합니다.

오른쪽과 같이 프로그램 화면이 표시되면, [Process] 탭에서 [Open File...] 을 클릭합니다.
분석에 사용할 데이터를 선택합니다.




위에서 첨부한 파일 [student_score.arff] 을 선택합니다.
그러면 아래와 같이 데이터의 간단한 정보를 표시합니다.




이제 군집 분석을 수행하기 위해 [Cluster] 탭으로 이동합니다.
여러가지 군집 알고리즘들이 있는데 기본적으로 EM 알고리즘이 설정되어 있습니다. 파라미터는 -I 100 -N -1 -S 100 -M 1.0E-6 으로 설정되어있습니다.



이미 기본적으로 EM 알고리즘이 선택되어 있는데 다른 알고리즘을 선택할 수도 있고, 옵션을 변경할 수도 있습니다.

[Choose] 버튼을 클릭하면 알고리즘을 선택할 수 있도록 표시됩니다.
[EM] 이라는 텍스트를 클릭한 후, 화면의 빈공간을 클릭합니다.
그러면 옵션을 변경할 수 있는 창이 표시됩니다.

여러가지 알고리즘들 중에서 가장 많이 사용되고 성능도 좋은 EM 알고리즘을 선택하겠습니다.
KMean 알고리즘의 경우 데이터의 분포에 민감하여 Outlier 에 적응력이 약합니다.
보통 EM 알고리즘은 확률에 기반하여 군집을 수행하기 때문에 KMeans보다 좋은 결과를 나타냅니다.



아래의 옵션 변경 창에서 군집의 수를 4로 변경합니다.
기본적으로 -1 이 설정되어 있습니다. (-N -1 이 그것을 의미합니다. 군집의 개수가 -1개 라는 것이 아니라 자동으로 찾겠다는 것임) 자동으로 지정된 군집의 개수는 일반적으로 적합하지 않은 경우가 많습니다. 따라서 분석하는 사람이 데이터를 잘 이해하고 적절히 지정해 주는 것이 좋습니다.

우리가 사용하는 데이터는 간단한 데이터이므로 군집의 개수가 4 가 적당하다는 것을 쉽게 알 수 있었습니다. 사실 쉽게 알 수 있도록 데이터를 만든것이지요.



데이터를 <수학논리력우수>, <인문계열능력우수>, <모든과목우수>, <모든과목저조>의 4개의 군집으로 가정하고 데이터를 생성하였으므로 군집수를 4로 입력한 것입니다.

아래와 같이 -N 4 로 옵션이 변경된 것을 확인할 수 있습니다.
Cluster Mode 를 [Use training set] 을 선택합니다. 입력 데이터로 모델을 만들고, 원 데이터를 그대로 테스트하는데 사용하겠다는 의미입니다. (훈련 데이터와 실험 데이터를 분리하려면 그 아래 옵션들을 사용해야겠습니다.)

하단의 [Start] 버튼을 누르면 분석이 수행되고 오른쪽 창에 분석 결과가 표시될 것입니다. 



결과를 해석해봅시다.
오른쪽 창의 맨 하단을 보면, 군집이 4개 생성되었다는 것을 볼 수 있습니다. 번호가 1번부터가 아니라 0번부터 붙혀졌습니다. 그래서 군집0, 군집1, 군집2, 군집3 의 이름이 부여됩니다. 우선은 각 군집에 포함된 레코드의 개수를 파악할 수 있습니다. 군집0 에는 3명의 학생이 소속되었습니다. (전체 10명이니 당연히 30% 라고 비율이 표시됩니다.) 이런식으로 군집2 에는 2명이 소속되었네요.

그런데 포함된 개수나 비율보다 더 중요한 것은 각 군집의 특성이 무엇이냐는 것입니다.
오른쪽에 스크롤을 올려서 결과 텍스트의 상단부분을 살펴보겠습니다.



텍스트 분석 결과를 위에서 부터 살펴보겠습니다.

먼저, 맨 위는 [Run information] 으로 알고리즘으 수행한 옵션 설정내용이 정리되어 있고 데이터에 대한 간단한 정보 (변수의 수, 레코드의 수) 가 표시되어 있습니다.

중요한 것은 Number of Cluster : 4 라고 된 부분의 뒤에서 부터입니다.

Cluster 0 부분은 <첫번째 클러스터(군집)> 군집0 에 대한 정리입니다.
probability : 0.3 은 전체 중 30% 즉, 3개의 데이터가 포함되어 있다는 의미입니다.
그 아래에 바로 변수들에 대한 정보(평균, 편차)가 표시되어 있습니다.
수학은 평균 38, 편차 8.4, 과학은 평균 45, 편차 4.0, 영어는 평균 95, 편차 4.0, 중국어는 평균 95, 편차 4.0 입니다. 즉, 군집0 은 [수학,과학]은 못하고 [영어,중국어] 성적이 우수한 그룹(군집)임을 이해할 수 있습니다. (편차 값이 작을 수록 군집의 밀집도가 좋다는 것을 의미합니다.)



같은 방식으로 모든 군집의 특성을 정리해보면 아래와 같습니다.

 군집이름  특성   포함된 학생수 (레코드 수)  
 군집0 (Cluster 0)  영어,중국어 성적 우수한 그룹  3명
 군집1 (Cluster 1)  전과목 성적이 우수한 그룹  2명
 군집2 (Cluster 2)  수학,과학 성적이 우수한 그룹  3명
 군집3 (Cluster 3)  공부와는 담 쌓은 그룹  2명

이렇게 해서 4개의 군집이 어떠한 특성으로 구분되었는가를 파악할 수 있습니다.
간단하게 텍스트로 되어있어 별 거 아닌 것 같지만 이 부분이 군집의 가장 중요한 내용이라고 생각됩니다.

그런데 이렇게 마무리하기에는 뭔가 좀 허전한 감이 있습니다.
우리가 원하는 것은 중요한 결과는 각 레코드가 어떤 군집에 소속되는 가에 대한 정보입니다.

아래와 같이 왼쪽 로그가 표시되는 창에서
작업 시간과 EM 이라고 표시된 부분 [19:52:58 EM] 의 형식으로 표시된 부분에서 마우스 오른족 버튼을 클릭합니다. 팝업 메뉴에서 [Visualize cluster assignments] 를 클릭합니다.  



그러면 아래와 그림과 같이 창이 표시됩니다.

중앙의 검정 부분(XY챠트)에 보면 10개의 레코드 (10명의 학생) 을 표시하는 별표 (*) 표시가 되어 있습니다.
현재 X축은 군집의 번호에 따른 구분이고 Y축은 수학 점수를 표시한 것입니다.

각 별표 (*) 는 군집에 따라 서로 다른 색상으로 표시되어 있음으로 어떤 레코드들이 서로 같은 군집에 포함되었는가를 확인할 수 있습니다. 이해하기 쉽도록 아래 그림에서는 같은 군집들을 노랑색 동그라미로 표시하였습니다.



이제 최종적으로 각 학생 (레코드) 들이 소속된 군집을 텍스트로 추출해보겠습니다.
위의 그림의 창에서 [Save] 버튼을 클릭한 후 결과 파일(arff형식)을 이름을 지정하여 저장합니다.
student_score_clustering.arff 라는 이름으로 저장한 후 그 파일을 텍스트 에디터 등으로 열어보면 아래와 같이 표시됩니다. (메모장으로는 줄 바꿈이 안되어 잘 표시가 안되니 Edit plus 또는 Utra-edit 등의 편집기를 사용하세요.)

자세히 살펴보면 원래의 레코드에 두 개의 필드가 새롭게 추가된 것을 볼 수 있습니다.
맨 앞에는 레코드별로 번호에 해당하는 변수가 추가되었고,
맨 끝에는 각 레코드가 소속된 군집을 표시하는 범주형 형태의 변수가 추가되었습니다.

아래의 데이터 부분을 보면 (@data 아래 부분)
각 레코드별로 소속된 군집번호가 부여된 것을 볼 수 있습니다.



위 결과 파일을 아래에 첨부했습니다.


결과를 보면 우리가 처음 의도했던 대로 4개의 군집으로 잘 구분되고 각 레코드들이 군집된 것을 확인할 수 있었습니다.

이것으로 Weka에서 군집 분석을 수행하는 방법을 설명하였습니다.
혹시 부족한 내용이 이나 더 궁금한 내용이 있다면 댓글에 달아주세요^^.

수고하셨습니다~.



by 에이아이 2009. 12. 12. 21:21
10명의 학생들의 수학, 과학, 영어, 중국어 의 4과목 성적으로 구성된 데이터 입니다.

데이터 파일은 아래에 첨부합니다.

 CSV 형식의 파일  
 ARFF 형식의 파일 (웨카 프로그램 입력용)  


데이터는 아래에 표시하였습니다.




ARFF 형식의 내용은 아래와 같습니다.



by 에이아이 2009. 12. 12. 21:18

'유용한 자료 모음' 카테고리의 다른 글

가족 친척간 호칭 정리  (2) 2009.10.25
by 에이아이 2009. 12. 10. 21:29

동사무소에 방문하지 않고 인터넷으로 게다가 무료로 주민등록등본(초본) 을 출력하는 방법을 설명합니다.
가끔 사용하였는데 할 때마다 기억이 잘 안나서 기억력 나쁜 나를 위해 정리해보았습니다.~

전자정부 홈페이지 http://www.egov.go.kr/ 에 방문합니다.

로그인 합니다. (처음 방문했다면 지금 회원가입하세요.)
로그인 할때는 아이디, 비밀번호 만 입력하여 로그인하면 됩니다. 처음부터 공인인증서로 로그인할 필요는 없습니다.




좌측의 자주 찾는 민원에서 [주민등록등록표등본(초본)교부 (신청)] 을 클릭합니다.
또는 중앙에 [주민등록등본] 이라는 부분이나, [인터넷발급민원] 을 클릭하는 방법도 있습니다.



화면에서 [신청하기] 버튼을 클릭합니다.
화면 아래쪽에 보면 인터넷으로 출력하면 무료라는 내용이 보입니다. (우편발송은 350원 내야하네요.)
동사무소에 방문해도 수수료를 내야하는데 동소무소에 방문할 필요도 없고, 무료라니 너무 좋네요^^.



잠깐 기다리면 프로그램을 설치하라는 메시지가 보입니다. [설치] 버튼을 누릅니다.



혹시 아래와 같이 프린터를 선택하는 화면이 나타난다면
프린터가 잘 선택되었나 확인하고 [민원 신청 계속] 버튼을 클릭합니다.




화면에 아래와 같이 내용을 입력합니다.  먼저, [검색] 버튼을 클릭한 후
수령방법 선택 창이 나타나면 [온라인발급(본인출력)] 을 클릭합니다.
그러면 원래 화면으로 돌아오는데 하단의 [민원신청하기] 버튼을 클릭합니다.



인증서를 선택하라는 창이 표시됩니다.
USB 디스크에 인증서가 있는 경우 아래와 같이 선택하고, 비밀번호를 입력한 후 [확인] 버튼을 클릭합니다.

주민등록등본(초본)을 출력하려면 인증서가 있어야 합니다. 아마 요즘은 인터넷으로 거래를 많이 하셔서 인증서를 많이들 가지고 있으실 거라 생각됩니다.




아래와 같이 작업을 처리하는 화면이 나타나면서 깜박깜박 거립니다. 잠시 여유있게 기다립시다.



이제 완료되었습니다. 아래와 같이 [문서출력] 버튼을 클릭합니다.



아래의 창이 나타나면 [인쇄하기] 버튼을 클릭합니다.



인쇄 대화상자가 나타나면 [확인] 버튼을 눌러 출력을 하면 됩니다. 

프린터로 주민등록등본이 출력되고 있습니다. 성공이네요~.

옛날에 비해서 너무 편리해졌습니다.
동사무소에 가지않고 인터넷 상으로 출력할 수 있다는 것 게다가 무료로~ 출력할 수 있다는 점이 정말 좋은 것 같습니다. 

관련사이트
http://korea.go.kr/

인터넷으로 등기부등본 출력하기

by 에이아이 2009. 12. 10. 14:03

SPSS 에서 3변수 이상의 여러 변수들 간의 상관관계를 분석하는 방법을 설명하겠습니다.
( 상관행렬을 분석하는 방법을 설명하겠습니다. ) 상관관계는 보통 피어슨 상관계수를 의미합니다.

SPSS 에서 여러 변수들의 상관관계를 분석하기 위해서는
2가지 메뉴를 사용할 수 있습니다.

1번째는 메뉴에서 [분석] - [상관분석] -[이변량 상관계수] 를 사용하는 방법이고,
2번째는 메뉴에서 [분석] - [차원감소] - [요인분석] 을 사용하는 방법입니다.

보통 첫번째 방법 만을 사용하겠지만
경우에 따라 2번째의 [요인분석] 메뉴를 사용한 상관관계 분석의 결과가 더 유용할 수 있습니다.

아래의 학생들의 성적에 대한 예제 데이터를 사용하여 설명하겠습니다.
아래 링크에서 데이터에 대한 설명을 볼 수 있고, 파일을 다운로드 받을 수 있습니다.

학생 성적 예제 데이터 설명 및 다운로드 

                                                              1번째 방법 [상관계수]

1번째 방법으로 [상관분석] 기능을 사용해 보겠습니다. 

메뉴에서 [분석] - [상관분석] - [이변량 상관계수] 를 클릭합니다.


 
아래와 같이 분석 옵션을 설정합니다.
먼저, 분석하고자 하는 변수를 모두 선택하여 오른쪽으로 이동시킵니다. (하나씩 이동해도 되고, 또는 Ctrl 키를 누르고 여러 변수를 선택한 후 이동시켜도 됩니다.) [확인] 버튼을 클릭하면 분석이 시작됩니다.



분석된 결과는 아래와 같습니다. 

상관관계는 방향성이 없으므로 분석표의 모든 값들은 대각선을 중심으로 대칭입니다. 따라서 한쪽만 보면 됩니다. 수학과 과학이 0.996 의 피어슨 상관계수 값으로 높은 상관관계를 갖는 것을 볼 수 있습니다. 또한 유의도도 0.000 으로 매우 유의하며, 매우 유의하다는 의미로 0.996** 와 같이 숫자에 ** (두개의 별표) 표시가 붙어있는 것을 볼 수 있습니다.

유의도는 0에서 1 사이의 값을 갖으며, 0에 가까울 수록 유의도가 크고, 1에 가까울수록 유의도가 낮음을 의미합니다. 보통 95% 수준에서 평가한다면, 유의도 값이 0.05 보다 작을 때 유의하다고 결론 내립니다.


 


                                                              2번째 방법 [요인분석]

2번째 방법으로 [요인분석] 기능을 사용해 보겠습니다.

메뉴에서 [분석] - [차원 감소] - [요인분석] 을 클릭합니다.



아래와 같이 옵션을 설정합니다.
선택하고자 하는 변수를 선택한 후, [기술통계] 버튼을 클릭합니다. 새로운 창에서 [계수]를 선택한 후 [계속] 버튼을 클릭합니다. 원래의 창에서 [확인] 버튼을 클릭합니다.



분석된 결과는 아래와 같습니다.

요인분석의 분석 결과의 맨 위에 상관행렬 표가 출력되었습니다.
1번째 방법을 통한 분석결과와 비교해보면 오히려 더 깔끔하게 표현된 것을 볼 수 있습니다. 유의도 등의 자세한 값들이 표시되어 있지 않아서, 단순하게 피어슨 상관계수만 보기 원할 때는
1번째의 상관분석을 사용한 결과보다 오히려 더 유용할 수 있습니다.

상관행렬 결과 아래쪽으로 계속해서 요인분석의 자세한 분석결과가 표시됩니다. 본 글에서는 요인분석을 설명하는 것이 목적이 아니기 때문에 이에 대한 설명은 하지 않겠습니다.




이것으로 상관행렬 을 계산하는 2가지 방법을 설명하였습니다.

수고하셨습니다.~

by 에이아이 2009. 12. 8. 17:57
| 1 2 3 4 5 ··· 31 |