본문 바로가기

반응형
SMALL

Machine, Deep Learning/Machine, Deep Learning 실습

릿지 회귀(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이라는 이름의.. 더보기
Numpy 함수로 행렬연산 다루기 Numpy는 행렬과 관련된 여러 편리한 연산과 기능들을 제공합니다. 행렬의 곱, 전치 행렬, 역행렬 등을 간편하게 구할 수 있습니다. 이번 시간엔 Numpy의 함수를 이용해서 행렬의 여러 연산들을 적용해봅시다. 행렬의 연산과 관련된 함수들 np.transpose(x) / (ndarray)x.T : 배열 x의 전치 행렬을 나타낸다. np.dot(x, y) : 배열 x와 y의 행렬곱을 나타낸다. (ndarray)x * (ndarray)y : 행렬x와 y의 요소별 곱을 나타낸다. np.linalg.inv(x) : 행렬 x의 역행렬을 배열로 나타낸다. import numpy as np array1 = np.array([[1,2,3], [4,5,6], [7,8,9]]) #array1의 전치 행렬을 구해보자 tra.. 더보기

반응형
LIST