본문 바로가기

반응형
SMALL

Machine, Deep Learning

opencv - grayscale mode vs gray color conversion / 왜 BGR ? 안녕하세요. 꼬동입니다. 이미지 분석 스터디를 들어가게 되어서, 그 것의 과제 중 하나인 Open CV, Color Conversions 이론을 공부하게 되었습니다. 솔직히 1도 모르겠습니다. ㄹㅇ 그래서 이것 저것 찾아보는데, 재미는 있더라고요. 그 장황한 제 일대기를 적어보려합니다. opencv 는 뭐야 ? 인텔이 만든 이미지 프로세싱에 중점을 둔 오픈 소스 컴퓨터 비전 라이브러리(그래서 opencv인거임 ?????)입니다. 현재 인텔은 opencv에 손을 털었다고 하네요. 저는 요걸 python으로 접했었죠. 그래서 python 만 지원하는 오픈 소스 라이브러리인 줄 알았는데, 본래 C++로 개발이 되었다고 하네요? 그래서 docs 들어가보니, 실제로 C++로 parameter 설명이 되어있었습니다.. 더보기
릿지 회귀(Ridge Regression) 구현하기 릿지 회귀는 일반적인 선형회귀에서 L2 규제 항(regularization terms)이 추가된 회귀를 의미합니다. 이번 시간에는 릿지 회귀를 직접구현해보고, 파라미터를 변경해가며 회귀 결과가 어떻게 변화하는지 살펴봅시다. x라는 값이 입력되면 'ax+b'라는 계산식을 통해 값을 산출하는 예측 함수를 정의합니다. 예측 함수를 통해 예측값과 실제값 y 간의 차이를 계산합니다. a와 b를 업데이트 하는 규칙을 정의하고 이를 바탕으로 a와 b의 값을 조정합니다. (alpha 값을 이용하여 규제 항을 설정합니다.) 위의 과정을 특정 반복횟수 만큼 반복합니다. 반복적으로 수정된 a와 b를 바탕으로 'y=ax+b'라는 회귀식을 정의합니다. import numpy as np import matplotlib.pyplo.. 더보기
선형 회귀 구현하기 선형 회귀는 종속 변수 y와 한 개 이상의 독립 변수 X와의 선형 상관 관계를 모델링하는 회귀분석 기법을 말합니다. 이번 시간에는 y와 x가 주어졌을 때, 'y = ax + b'라는 형태의 직선을 회귀식으로 하는 단순한 선형 회귀(Linear Regression)를 파이썬을 통해 구현해봅시다. 선형 회귀의 절차 x라는 값이 입력되면 'ax+b'라는 계산식을 통해 값을 산출하는 예측 함수를 정의합니다. 예측 함수를 통해 예측값과 실제값 y간의 차이를 계산합니다. a와 b를 업데이트 하는 규칙을 정의하고 이를 바탕으로 a와 b의 값을 조정합니다. 위의 과정을 특정 반복횟수만큼 반복합니다. 반복적으로 수정된 a와 b를 바탕으로 'y=ax+b'라는 회귀식을 정의합니다. import numpy as np impo.. 더보기
Scikit-learn을 이용한 linear regression 기계학습 라이브러리 Scikit-learn을 사용하면 최적화 된 beta0, beta1을 쉽게 구할 수 있습니다. 주어진 데이터와 다음 선형 모델을 이용하여 최적의 beta0, beta1 값을 scikit-learn 라이브러리를 사용하여 구할 수 있습니다. import matplotlib as mpl mpl.use("Agg") import matplotlib.pyplot as plt import numpy as np from sklearn.linear_model import LinearRegression X = [8.70153760, 3.90825773, 1.89362433, 3.28730045, 7.39333004, 2.98984649, 2.25757240, 9.84450732, 9.94589513, .. 더보기
Loss Function 앞서 배운 선형 회귀분석 모델에서 Loss Function을 구하는 방법을 알아보겠습니다. Loss function 은 예측한 데이터와 실제 데이터와의 차이로 다음과 같이 정의 할 수 있습니다. import matplotlib as mpl mpl.use("Agg") import matplotlib.pyplot as plt import numpy as np def loss(x, y, beta_0, beta_1): N = len(x) x = np.array(x) y = np.array(y) ''' x, y, beta_0, beta_1 을 이용해 loss값을 계산한 뒤 리턴합니다. ''' pred = x * beta_0 + beta_1 loss = np.square(y - pred) # 제곱을 하는 numpy.. 더보기
기울기와 절편 단순 선형회귀 분석 수식은 다음과 같습니다. 여기서 beta0는 기울기 beta1은 절편을 뜻합니다. 코드를 실행하여 기울기와 y절편이 의미하는 것을 이해하여 봅시다. import matplotlib as mpl mpl.use("Agg") import matplotlib.pyplot as plt import numpy as np X = [8.70153760, 3.90825773, 1.89362433, 3.28730045, 7.39333004, 2.98984649, 2.25757240, 9.84450732, 9.94589513, 5.48321616] Y = [5.64413093, 3.75876583, 3.87233310, 4.40990425, 6.43845020, 4.02827829, 2.26105955,.. 더보기
Pandas 데이터 추출 및 추가 DataFrame에서 원하는 데이터를 추출하기 위해 loc(), iloc() 기능을 사용할 수 있습니다. loc() : 명시적인 인덱스를 참조하는 인덱싱 / 슬라이싱 iloc() : 정수 인덱스 인덱승 / 슬라이싱. 단 iloc의 경우 리스트와 같이 마지막 인덱스는 포함되지 않습니다. loc, iloc 함수에 Index 값을 입력하여 원하는 데이터 인덱스를 추출/ 추가할 수 있습니다. Pandas 데이터 삭제 drop() 기능을 이용하여 DataFrame의 Index 및 Column을 삭제할 수 있습니다. drop() : index, column 삭제 drop() 함수에 Index 값을 입력하여 원하는 데이터 인덱스를 삭제할 수 있습니다. import pandas as pd a = pd.Series([2.. 더보기
Pandas 선언 Pandas는 데이터 분석 기능을 제공하는 라이브러리로 csv, xls 파일 등의 데이터를 읽고 원하는 데이터 형식으로 변환해줍니다. 자주 사용되는 라이브러리 하나로 주로 pd라고 줄여 사용하게 됩니다. 1. Series pd.Series는 1차원 데이터를 다룰 때 사용합니다. 변수를 출력해보면 인덱스 번호와 이름, 자료형도 함께 출력됩니다. 2. DataFrame DataFrame은 Series와 달리 여러개의 column을 가질 수 있습니다. DataFrame을 정의할 때는 2차원 리스트를 매개 변수로 전달하며 여러개의 Series 데이터를 합쳐 DataFrame을 만들 수도 있습니다. Series / Data Frame 생성 함수 Series(data, name) : data를 name이라는 이름의.. 더보기

반응형
LIST