분류 전체보기 428

[3-2] 선형 회귀

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝 책을 공부하고 정리한 것 입니다. 만약 아주 큰 농어를 골라 무게를 예측하면 어떨까? 길이가 50cm정도 된다고 생각해보자. 앞서 만든 모델을 사용해 이 농어의 무게를 예측해보자 import numpy as np perch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7, 23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5, 27.5, 28.0, 28.7, 30.0, 32.8, 3..

[3-1] k-최근접 이웃 회귀

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝 책을 공부하고 정리한 것 입니다. 지도 학습 알고리즘은 크게 분류와 회귀(regression)으로 나뉜다. 분류는 앞에서 다루었는데 말 그대로 샘플을 몇 개의 클래스 중 하나로 분류하는 문제이다. 회귀는 클래스 중 하나로 분류하는 것이 아니라 임의의 어떤 숫자를 예측하는 문제이다. 예를 들면 내년도 경제 성장률을 예측하거나 배달이 도착할 시간을 예측하는 것이 회귀 문제이다. 또 이번에 만들 프로그램인 농어의 무게를 예측하는 것도 회귀가 된다. 회귀는 정해진 클래스가 없고 임의의 수치를 출력한다. k-최근접 이웃 분류 알고리즘은 예측하려는 샘플에 가장 가까운 샘플 k개를 선택하고 이 샘플들의 클래스를 확인하여 다수 클래스를 새로운 샘플의 클래스로 예측한다. k..

[2-2] 데이터 전처리

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝 책을 공부하고 정리한 것 입니다. 앞에서 만든 머신러닝 모델을 25cm,250g으로 테스트를 하면 도미가 아니라 빙어로 나온다. 그 이유는 무엇일까? 넘파이로 데이터 준비하기 fish_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0, 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0, 9.8, 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12..

[2-1] 훈련 세트와 테스트 세트

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝 책을 공부하고 정리한 것 입니다. 훈련 세트와 테스트 세트 시험에서 연습 문제와 시험 문제가 달라야 올바르게 학생의 능력을 평가할 수 있듯이 머신러닝 알고리즘의 성능을 제대로 평가하려면 훈련 데이터와 평가에 사용할 데이터가 각각 달라야 한다. 이렇게 하는 가장 간단한 방법은 평가를 위해 또 다른 데이터를 준비하거나 이미 준비된 데이터 중에서 일부를 뗴어 내어 활용하는 것이다. 일반적으로 후자의 경우가 많다. 평가에 사용하는 데이터를 테스트 세트(test set), 훈련에 사용되는 데이터를 훈련세트(train set) 라고 한다. 먼저 도미와 빙어의 데이터를 합쳐 하나의 파이썬 리스트로 준비한다. fish_length = [25.4, 26.3, 26.5, 29..

[1] 머신러닝 맛보기 - 마켓과 머신러닝

이 포스팅은 혼자 공부하는 머신러닝 + 딥러닝 책을 공부하고 정리한 것 입니다. 마켓에서 팔기 시작한 생선은 도미, 곤들매기, 농어, 강꼬치고기, 로치, 빙어, 송어이다. 이 생선들은 물류 센터에 많이 준비되어 있다. 이 생선들을 프로그램으로 분류한다고 가정해 보자. 어떻게 프로그램을 만들어야 할까? 1. 도미 데이터 준비하기 머신러닝은 누구도 알려주지 않는 기준을 찾아서 일을 한다. 다시 말해 누가 말해주지 않아도 머신러닝은 '30~40cm 길이의 생선은 도미이다 라는 기준을 찾는다. 머신 러닝은 어떻게 이런 기준을 스스로 찾을 수 있을까? 35마리의 도미를 준비했다. 저울로 잰 도미의 길이(cm)와 무게(g)를 파이썬 리스트로 만들면 다음과 같다 bream_length = [25.4, 26.3, 26..

[69] 7) 밀집 오티컬플로우

파네백 옵티컬 플로우 계산 코드 import sys import numpy as np import cv2 cap = cv2.VideoCapture("vtest.avi") if not cap.isOpened(): print('Camera open failed!') sys.exit() ret, frame1 = cap.read() if not ret: print('frame read failed!') sys.exit() gray1=cv2.cvtColor(frame1,cv2.COLOR_BGR2GRAY) #hsv의 속성을 이용해서 모션 벡터의 방향성 정보를 색상으로 표현 0도 방향이면 빨간색, 180도 방향이면 파란색 형태로 보여줌 hsv=np.zeros_like(frame1) #frame1과 같은 사이즈인 0으..

[68] 6) 루카스-카나데 옵티컬플로우

옵티컬플로우 (Optical flow)란? 연속하는 두 프레임(영상)에서 카메라 또는 객체의 움직임에 의해 나타나는 객체의 이동 정보 패턴 옵티컬플로우 계산 OpenCV 옵티컬플로우 계산 함수 루카스-카나데 옵티컬플로우 예제 import sys import numpy as np import cv2 src1 = cv2.imread('frame1.jpg') src2 = cv2.imread('frame2.jpg') if src1 is None or src2 is None: print('Image load failed!') sys.exit() gray1=cv2.cvtColor(src1,cv2.COLOR_BGR2GRAY) pt1=cv2.goodFeaturesToTrack(gray1,50,0.01,10) # 코너 ..

[67] 5) 캠시프트 알고리즘

캠시프트(CamShift)란? Continuously Adaptive Mean Shift 추적하는 객체의 크기가 변하더라도 검색 윈도우의 크기가 고정되어 있는 평균 이동 알고리즘의 단점을 보완 추적하는 객체의 크기가 변하더라도 검색 윈도우의 크기가 고정되어 있는 평균 이동 알고리즘의 단점을 보완 캠시프트 동작 방법 우선 평균 이동 알고리즘으로 이동 위치 계산 윈도우 크기를 조정 특징 공간을 가장 잘 표현하는 타원 검출 새로운 크기의 윈도우를 이용하여 다시 평균 이동 수행캠시프트(CamShift)란? Continuously Adaptive Mean Shift 추적하는 객체의 크기가 변하더라도 검색 윈도우의 크기가 고정되어 있는 평균 이동 알고리즘의 단점을 보완 import sys import numpy a..