본문 바로가기
반응형

머신러닝7

확률적 경사 하강법 확률적 경사 하강법 전체 샘플을 사용하지 않고 하나의 샘플을 훈련 세트에서 랜덤하게 골라 그 샘플에 대해서만 기울기를 계산하는 방법입니다. 샘플 데이터 셋에 대해서만 경사를 계산하므로, 매 반복에서 다뤄야 할 데이터 수가 매우 적어, 학습 속도가 매우 빠릅니다. 하나의 샘플만 대상으로 경사를 계산하므로, 메모리 소모량이 매우 낮으며, 매우 큰 훈련 데이터 셋이라 할지라도 학습 가능합니다다. 확흏적 경사 하강법에서 훈련 세트를 한 번 모두 사용하는 과정을 에포크(epoch)라고 부릅니다. 일반적으로 경사 하강법은 수십, 수백 번 이상 에포크를 수행합니다. 미니배치 경사 하강법 한 개씩 말고 무작위로 몇개의 샘플을 선택해서 경사를 따라 내려가는 방법입니다.\ 여러개의 샘플을 사용해 경사 하강법을 수행하는 방.. 2022. 8. 8.
로지스틱 회귀 - 다중 분류 https://glorychoi.tistory.com/entry/%EB%A1%9C%EC%A7%80%EC%8A%A4%ED%8B%B1-%ED%9A%8C%EA%B7%80Logistic-Regression 로지스틱 회귀(Logistic Regression) 로지스틱 회귀란? 로지스틱 회귀(logistic regression)는 이름은 회귀이지만 분류 모델입니다. 이 알고리즘은 선형 회귀와 동일하게 선형 방정식을 학습합니다. z = a * 무게 + b * 길이 + c * 대각선 + d * glorychoi.tistory.com 이진 분류와 다중 분류는 크게 다르지 않습니다. 여기에서도 LogisticRegression 클래스를 사용해 7개의 생선을 분류해 보면서 이진 분류와 차이점을 알아보겠습니다. 로지스틱 회귀.. 2022. 8. 5.
로지스틱 회귀(Logistic Regression) 로지스틱 회귀란? 로지스틱 회귀(logistic regression)는 이름은 회귀이지만 분류 모델입니다. 이 알고리즘은 선형 회귀와 동일하게 선형 방정식을 학습합니다. z = a * 무게 + b * 길이 + c * 대각선 + d *높이 + e * 두께 + f 시그모이드 함수 시그모이드 함수는 s자형 시그모이드 곡선을 갖는 수학 함수입니다. 일반적으로 단조 함수이며 1차 미분 그래프를 가지고 수평 점근선으로 수렴합니다. 우리가 원하는 것이 예측값이기 때문에 종속변수의 범위가 실수이지만 로지스틱 회귀 분석에서는 종속변수 y값이 0또는 1을 갖습니다. 그래서 우리는 주어진 데이터를 분류할 때 0인지 1인지 예측하는 모델을 만들어야합니다. 로지스틱 회귀로 이진 분류 수행하기 판다스를 임포트하여 데이터를 불러옵.. 2022. 8. 4.
선형 회귀 (Linear regression) 알고리즘 선형 회귀 선형 회귀는 널리 사용되는 대표적인 회귀 알고리즘입니다. 비교적 간단하고 성능이 뛰어나기 때문에 맨 처음 배우는 머신 러닝 알고리즘 중 하나입니다. 특성이 하나인 경우 어떤 직선을 학습하는 알고리즘입니다. 학습을 해야하는 직선은 특성을 가장 잘 나타낼 수 있는 직선으로 학습해야 하기 때문에 위와 같이 특성을 잘 타나내는 직선이 좋습니다. 사이킷런 선형 회귀 구현 사이킷런은 sklearn.linear_model 패키지 아래에 LinearRegression 클래스로 선형 회귀 알고리즘을 구현해 놓았습니다. LinearRegression 클래스에 훈련, 평가, 예측하는 메서드가 있기 때문에 우린 LinearRegression 클래스를 객체를 생성하여 사용하면 됩니다. LinearRegression .. 2022. 7. 26.
k_최근접 이웃 회귀 지도학습 알고리즘은 크게 분류와 회귀로 나뉘어집니다. 분류 : 샘플을 몇개의 클래스 중 하나로 분류하는 문제 회귀 : 클래스 중 하나로 분류하는 것이 아니라 임의의 어떤 숫자를 예측하는 문제 k- 최근접 이웃 분류 알고리즘 예측하려는 샘플에 가장 가까운 샘플 k개를 선택합니다. 샘플들의 클래스를 확인하여 다수 클래스를 새로운 샘플의 클래스로 예측합니다. k-최근접 이웃 회귀 알고리즘 예측하려는 샘플에 가장 가까운 샘플 k개를 선택합니다. 회귀이기 때문에 이웃한 샘플의 수치들의 평균을 구하여 타깃값을 결정한다. numpy를 임포트 하여 np.array를 통해 넘파이 배열로 데이터를 준비합니다. 이 데이터가 어떤 형태를 띠고 있는지 산점도를 그려보면 위와 같은 산점도를 그릴수 있습니다. 사이킷런 model_.. 2022. 7. 21.
데이터 전처리 넘파이로 데이터를 준비하는 방법은 여러가지 방법이 있지만 오늘은 column_stack 함수를 통해서 데이터를 준비합니다. 우선 넘파이를 사용하기 위해서 넘파이를 임폴트 해줍니다. column_stack 함수는 리스트를 일렬로 세운 다음 나란히 옆으로 붙여줍니다. 예를 들어 [1, 2, 3]과 [4, 5, 6] 두 리스트를 붙여 보겠습니다. fish_length와 fish_weight를 붙이기 위해서 column함수를 사용하겠습니다. 데이터가 잘 준비 되었습니다. 이제 타깃 데이터를 준비해야 하는데 타깃 데이터도 넘파이 패키지의 함수를 사용하면 쉽게 만들수 있습니다. 타깃 데이터를 만들기 위해서 사용할 함수는 np.ones()와 np.zeros()함수입니다. 이 두 함수는 각각 원하는 개수의 1과 0을 .. 2022. 7. 21.
머신 러닝의 훈련 세트와 테스트 세트 https://glorychoi.tistory.com/entry/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D%EB%94%A5%EB%9F%AC%EB%8B%9D 혼자 공부하는 머신러닝+딥러닝 생선 분류 문제 *도미와 빙어 구분 각 도미와 빙어의 특징을 특성이라고 한다. 아래 설명은 두 가지 특징(길이, 무게)를 사용하여 설명한다. 도미 데이터 준비 산점도 길이를 x축으로 하고 무게를 glorychoi.tistory.com 생성 분류 문제를 공부했을때 머신러닝 프로그램에서는 문제점이 존재했는데 그 문제점은 도미 35마리와 빙어 14마리를 모두 저장하고 맞추는 것이다. 오늘 공부를 통해 이 .. 2022. 7. 11.
반응형