데이터분석 167

[Python/openCV 2] 기본

간단하게 다음의 명령어로 이미지를 로딩 import cv2 import numpy as np image = cv2.imread('test01.jpg',0) x = 100 / y = 100 픽셀값은 BGR (RGB가 아님) 세값을 가지고 있어야 한다. image[100,100] 이렇게 치면 해당하는 픽셀정보가 나온다. Blue / Green / Blue 값이다. 8비트 값인데 8비트는 0~255 값을 가지고 있다. 생각해보면 (255,255,255) 흰색임. 이미지 정보는 다음과 같이 볼수있다. image.shape Out[4]: (650L, 1200L, 3L) image.size / image.dtype 등으로 이미지를 확인가능하다. ROI(Region of Interest)설정도 가능한데, 다음과 같이..

TF-IDF(Term Frequency - Inverse Document Frequency)

어떤 단어가 특정문서에서 얼마나 중요한 위치를 차지하는 지 나타내는 알고리즘이다. Term (특정한 단어) 가 문서에서 자주 나타나면 이건 좋은거다. 예를들어 '탈모' 라는 단어가 자주 등장한다면 이건 점수를 많이 많이 줄수있다. 다만, Document의 맥락상 '탈모'라는 단어가 계속 등장한다면 이건 전체가 탈모에 대해 이야기하고 있기 때문에 다른 단어가 점수를 얻을 확률이 많아진다. 따라서 TF * ( 1 / DF ) 와 같은 식으로 해당 단어에 대한 무게감을 측정할수 있다.

정리해야할것 + 참고할만한 책

각 용어당 모르는 부분 하나로 모으기프로젝트 완성도 및 진행도 나이브 베이즈 분류기TF-IDF 분류기P/R 곡선 (AUC)리드스톤라플라스 평활화NLTK라소 리지 일래스틱넷 (L1벌점화 모델, L2벌점화모델, 합친거)OLS회귀(ordinary least squares)널모델KFold앙상블 학습PCA (Principal Component Analysis)LDA (Linear Discriminant Analysis)MDS (Multidimensional Scaling) 참고할만한 책실용서 : Building Machine Learning Systems with Python.기본서 : Pattern Recognition and Machine Learning이론서 : Machine Learning : A Prob..

openCV를 이용한 간단한 이미지 조작

openCV를 이용하고 설치하는것은 굉장히 까다롭다. 이에대해 한페이지 무더기로 글을 쌌으므로 확인하도록 한다. 일단 이미지 로딩은 다음과 같다. 원본이미지는 다음과 같다. 그레이스케일로 이미지 불러오기 import cv2 import numpy as np image = cv2.imread('test01.jpg',0) 이렇게 하면 그레이스케일로 잘 로딩할수 있다. 다만 openCV에서는 괴상하게도 X를 누르면 잘 꺼지지가 않는다. 다음처럼 코딩해서 뭔가 그림이 꺼지게끔 해야한다. 실제 이미지 띄우기 cv2.imshow('image',image) cv2.waitKey(0) cv2.destroyAllWindows() 파이썬 코드는 단순한 C++의 코드의 wrapper클래스이기 때문에, 실제 C++ 구현방식을..

scikit-image를 이용한 간단한 이미지 불러오기

Scikit-Image 를 이용한 간단한 이미지 머신러닝. Scikit-image.org는 다음의 링크에서 참조를 한다. (mahotas라는 것도 있지만, 아예 컴파일도 안되고 불편하다.) http://scikit-image.org/ 이외에 ndimage 혹은 opencv를 이용하면 된다. 이미지는 다음과 같이 불러온다. 이미지는 인터넷에서 가져온 뭔 3d프린터 캐릭터 사진이다. 그냥 퍼오기 미안하니 삼디프린터는 저 사진에 나온 사이트로 문의 해라. from skimage import data, io, filters image = io.imread("test01.png") 이미지를 한번 출력해보면 matplotlib.pyplot으로 쉽게 출력 가능하다. import matplotlib.pyplot as ..

Scikit-learn Knn사용법 / 정규화 및 기능 정리

데이터에 대한 교차검증 KNNclassifier.fit(매개변수) classifier.predict(features[test])를 이용하면 쉽게 Knn을 구현할수 있다. Knn은 최근접 이웃분류로써, 훈련데이터에서 가장 가까운 예제를 사려보고 그 라벨을 반환한다. from sklearn.neighbors import KNeighborsClassifierfrom sklearn.cross_validation import KFold classifier = KNeighborsClassifier(n_neighbors = 1) # 데이터에 대한 교차검증 kf = KFold(len(features), n_folds=5, shuffle=True) means = []for train, test in kf :classif..

OpenCV 3 + 비주얼 스튜디오 + 윈도우즈10 설치

OpenCV는 굉장히 설치하기가 까다롭다. 기존 C++로 개발을 해보지 않았다면 머리가 아프다. JVM이나 각종 스크립트 언어는 인터프리터가 알아서 해주겠지만, C/C++은 플랫폼에 종속되기 때문에 빌드자체가 잘 안되기 마련이다. 설치를 하려고 그대로 블로그를 따라하려고 했다가는 각종 에러에 부딪히기 때문에, 구조를 알고 가자. OpenCV를 홈페이지에서 설치하면 다음과 같은 구조를 띄고있다. 출처 : 고락가락닷컴 source는 굳이 소스를 건드리지 않으면 일단은 제쳐둬도 된다. MakeFile을 통한 빌드가 필요하지 않다. 일단은 build되어있는 완성품을 이용해 본다. 여기서 약간 헷갈리는게, x64도 있고, x86이 있다. 자신의 기종에 맞게 선택해서 진행하면 되기는 하는데 나중에 비주얼스튜디오에서..

openCV 주요 모듈

opencv_core 기본자료구조 및 연산함수 opencv_imgproc 주요 영상처리 함수 opencv_highgui 일부 사용자 인터페이스 opencv_features2d 특징점 검출기, 기술자, 특징점 매칭 프레임워크 opencv_calib3d 카메라 보정, 이중시각 기하학 추정, 스테레오 함수 opencv_video 움직임추정, 특징추적, 전경추출 opencv_objdetect 얼굴과 사람 검출기 등의 객체 검출기 openvb_ml 기계학습 openvb_flann 계산 기하학 알고리즘 opencv_contrib 기증 코드 opencv_gpu gpu가속 코드 opencv_photo 계산사진학 opencv_stitching 영상잇기

R과 이진트리를 이용한 데이터의 분류분석 및 훈련

데이터는 훈련과 예측이다. 머신러닝도 마찬가지이다. 무슨 이야기인고 하니, 어느 데이터가 있으면 그걸로 패턴을 분석하여 어떤식의 상관관계가 있는 지 알아볼수 있다는 것이다. 정형 데이터를 마이닝하는데 있어 제일 많이 쓰이는 분류분석(Classification)에서는 트리형식으로 데이터를 분류한다. 위와같은 그래프는 눈에 익지는 않겠지만 실제로 어떤 값을 가졌을때 구분이 어떻게 되어야 하는지 표현한 표와 같다. 예를들어 특정한값이 1.57 이하면 2번으로 가고 초과를 한다면 5번으로가서 최종적으로는 여러 인자를 통해 최종적인 노드를 결정하게 된다. 자 각설하고 한가지씩 따라해본다. 일단 HDclassif라는 라이브러리를 로딩해본다. > library(HDclassif) 이 라이브러리에는 wine이라는 데이..