R에 대한 기본적인 설명과 한줄 한줄 직접 실행하면서 배울 수 있는 패키지가 R에 있다. 바로 Swirl 이다. 사이트를 둘러보니, 학습자 모드와 교수자 모드를 모두 제공하는 듯 하다. Swirl로 R Programming 학습하기 Swirl은 R 버전 3.0.2 이상만 지원하기 때문에 먼저 R을 최신버전으로 업그레이드 해야 한다. 그리고 일반 패키지를 설치하듯이 swirl 패지를 설치한다. > install.packages("swirl") 그리고 swirl 라이브러리를 로드하고 swirl()을 실행해 강의 모드로 들어가면 된다. 이어서 이름을 물어보면, 본인 이름을 쓴다. (여기서는 mini를 적었다.) swirl 모드의 선택이 나오면, 0을 누르면 swirl을 종료하고 빠져나온다. swirl에서 제공..
OpenCV를 자바 환경에 설정하는 것은 지난번에 살펴봤다. 이번에는 실제 자바 프로젝트에서 프로그래밍하는 방법을 알아보기로 하자. OpenCV 라이브러리를 자바프로젝트에 설정하기 먼저 일반적인 자바 프로젝트를 하나 생성한다. 여기에서는 "Mini"라는 이름의 프로젝트를 생성했다. 환경 설정을 위해 생성된 프로젝트의 "Properties"에 들어가서 좌측의 "Java Build Path"를 선택하고 상단의 "Libraries"를 클릭한 후, 우측의 "Add Library.."를 통해 앞서 설정한 OpenCV를 지정하면 된다. 이어서 "User Library"를 선택한 후, OpenCV-3.0.0을 지정하면 된다. 최종적으로 다음과 같이 라이브러리가 설정된 것을 확인할 수 있다. OpenCV 자바 프로그래..
OpenCV는 2.4.4버전 이후로 자바를 지원하기 시작했다. OpenCV를 윈도우즈에 설정해서 이클립스 기반의 자바 프로젝트로 테스트를 해보도록 하자. OpenCV 3.0 설정 최신 버전의 OpenCV는 3.0으로 윈도우즈, 맥, 리눅스, 안드로이드, iOS등 다양한 운영체제를 지원한다. 우측의 OpenCV for Windows를 클릭하면, opencv-3.0.0.exe 파일을 다운로드한다. 이 파일은 압축 실행파일이라 별도의 설치를 하지 않고 압축만 풀게 된다. OpenCV의 폴더 구조와 자바 버전에서 사용할 jar파일의 위치를 빨간 테두리로 표시해봤다. 압축이 풀린 opencv 폴더를 c:\opencv로 복사하고 시스템 환경변수의 PATH에 다음 사항을 추가한다. C:\opencv\build\x86..
먼저 지난번에 설명한 R 데이터셋 처리 함수들의 일부를 살펴보자. table()로 일부 데이터 가져오기 mtcars 데이터셋의 실린더 수를 가지고 str(), summary(), stem()을 적용하면 다음과 같다. str()을 사용하면 R 객체의 구조를 확인할 수 있고, summary()는 데이터에 대한 요약 정보를 보여준다고 했다. 그리고 stem()은 줄기와 잎 형태로 데이터를 재구성해서 출력한다. 하지만 자동차의 실린더 수에 따라 일반적으로 4기통, 6기통, 8기통으로 나눠지기 때문에 이런 이산적인 데이터에 대해서는 위와 같은 형태의 출력보다는 테이블 구조가 더 적합하다. 그래서 table()을 한번 적용해 보면 다음과 같이 출력된다. 전체 자동차에 대해 좀더 확실하게 4, 6, 8기통으로 분류해..
지난번 글에서 R 데이터셋의 명령어들.. head, str, summary, stem, fivenum, hist, boxplot 을 살펴봤다. 이번에는 데이터셋을 정렬하는 명령어를 알아본다. 실전에서도 데이터셋 정렬은 많이 사용하기 때문에 잘 알아두면 많은 도움이 될 것이다. 샘플 데이터 셋은 역시 R에 내장되어 있는 mtcars (1974년 Motor Trend US Magazine에서 추출한 73, 74년식 자동차 32개 데이터)이다. R 데이터 정렬 R에서 데이터 정렬하는 명령어는 order이다. 먼저 mtcars를 읽어온 후, > dtat(mtcars) mtcars 데이터의 mpg(mile per gallon)을 기준으로 order를 실행해 보자. order의 결과값을 실제 mtcars$mpg의 ..
R을 활용하면 다양한 데이터셋을 data.frame으로 읽어서 많은 작업을 할 수 있다. 어떤 작업들이 가능한지 R에서 데이터셋을 처리하는 함수를 중심으로 살펴보기로 하자. Motor Trend Car Load Test 예제로 사용할 데이터셋은 R에 내장되어 있는 mtcars이다. 이 데이터는 1974년 Motor Trend US magazine에서 추출한 것으로 1973년, 1974년 모델의 32개 자동차들의 디자인과 성능을 비교한 것이다. help 명령어로 데이터 포맷 등을 먼저 살펴보기 바란다. > help(mtcars) 데이터셋의 정보 확인 먼저 mtcars 데이터를 가져와 보자. 데이터셋을 가져오기 위해서 간략하게 data() 함수를 호출하면 된다. > data(mtcars) 32개의 자동차의 ..
OpenCV는 인텔이 개발한 오픈소스 컴퓨터비전 C 라이브러리이다. 실시간 이미지 프로세싱을 위한 라이브러리로 윈도우, 리눅스 등 여러 플랫폼에서 활용할 수 있다. 원래 C 언어로 되어 있지만 최근에는 Java 언어로도 적용할 수 있고, 안드로이드 및 아이폰과 같은 모바일 환경도 지원한다. 다양한 이미지 프로세싱 알고리즘을 지원하기 때문에 처음에는 두 이미지가 동일한지 비교하는 메소드 같은 것이 존재할 줄 알았다. 그러나 두 이미지의 동일성을 OpenCV로 비교하는 것은 생각보다 쉽지 않았다. 히스토그램 비교, 템플릿 매칭, 피처 매칭의 세 가지 방법이 있다고 하는데 각각의 방법으로 구현한 다음 많은 테스트를 통해 실제 어느 정도 값이 나오면 일치한다고 판단할지를 정해야 한다. 이 부분은 다음 번 글에서..
동전을 10번 던져서 계속 앞면이 나왔다고 하면, 앞면이 나올 확률을 1이라고 할 수 있을까? 분명 동전을 던진 회수가 너무 적기 때문에 1이 아니라고 이야기할 것이다. 즉, 계속해서 반복했을 때도 동일하게 나오는지 체크하는 것이 필요하다. 그래서 일반적인 정확도(Precision) 뿐만 아니라 재현율(Recall)이 정보검색, 패턴인식, 기계학습에서 의미가 있는 것이다. 이러한 정확도와 재현율을 하나의 지표로 통합해서 정확성을 측정하는 방법들이 존재한다. F-Measure 정확성을 측정하는데 가장 많이 사용하는 F-Measure에 대해 살펴보기로 하자. F-Measure는 Precision과 Recall의 트레이드오프를 잘 통합하여 정확성을 한번에 나타내는 지표라 할 수 있다. 보통 가중치를 가진 조화..
정보검색이나 패턴인식에서 정확도(Precision)과 재현율(Recall)이라는 용어를 자주 사용한다. 기계학습에서도 정확도와 재현율에 기반해서 예측의 정확성을 검증하기도 하므로 기본적인 개념을 살펴보도록 한다. 정보검색에서의 정확도와 재현율 만약 정보검색을 위해 100개의 문서를 색인한 "미니" 검색엔진이 있다고 가정해 보자. 여기에 "빅데이터"란 키워드로 검색을 했는데, 검색 결과로 20개의 문서가 나왔다. 20개의 문서 중 16개의 문서가 실제로 "빅데이터"와 관련된 문서였고, 전체 100개의 문서 중 "빅데이터"와 관련된 문서는 총 32개라고 하자. 이 경우, 정확도(precision)와 재현율(recall)은 어떻게 될까? 정확도는 검색 결과로 가져온 문서 중 실제 관련된 문서의 비율로 나타낸다..
R 패키지 R 사이트에 접속해보면 다양한 R 패키지들이 있는 것을 확인할 수 있다. http://cran.r-project.org/web/packages/available_packages_by_name.html 이러한 R 패키지를 이용하면, R을 활용해 보다 다양한 작업들을 할 수 있다. 그럼 R 패키지를 설치하는 방법을 알아보기로 하자. R 패키지 설치 먼저 현재 사용하고 있는 R 패키지를 확인할 필요가 있다. 새로운 패키지 설치는 install.packages()를 활용해서 처리한다. 미니의 R 주요 강좌... 데이터 통계 분석을 위한 R 설치와 활용 R 실행을 위한 기본적인 내용들~ R 데이터 구조에 대한 정리 R 패키지 설치하기 R 데이터셋 처리 함수들에 대한 간단한 정리~ R 데이터셋 정렬하기~..