본문 바로가기

728x90

머신러닝 + 딥러닝

(24)
[혼공머신] CHAPTER 05-1 결정 트리 이번 챕터는 레드와인과 화이트와인을 구분하는 문제이다. 알코올 도수, 당도, pH 값으로 와인 종류를 구분해보아야한다. 먼저, 로지스틱 회귀로 와인을 분류해보자! import pandas as pd wine = pd.read_csv('https://bit.ly/wine_csv_data') wine.head() # wine.tail() 첫 번째 열은 각각 알코올 도수, 당도, pH 값을 나타낸다. class는 타깃값으로 0이면 레드와인, 1이면 화이트와인이다. 레드와인과 화이트와인을 구분하는 이진 분류 문제이고 화이트 와인이 양성 클래스이다. 판다스 데이터프레임의 유용한 메서드를 알아보자 wine.info() info() : 데이터프레임의 각 열의 데이터 타입과 누락된 데이터가 있는지 확인하는데 유용 Ra..
[혼공머신] CHAPTER 04-2 확률적 경사 하강법 i) 훈련데이터가 한 번에 준비되는 것이 아니라 조금씩 전달되는 문제 -> 기존의 훈련 데이터에 새로운 데이터를 추가하여 모델을 매일매일 다시 훈련시킨다 >> 시간이 지날수록 데이터가 늘어난다는 단점이 있다 ii) 새로운 데이터를 추가할 때 이전 데이터를 버림으로써 훈련 데이터 크기를 일정하게 유지 -> 데이터셋의 크기가 너무 커지지 않을 것 >> 버릴 데이터에 중요한 데이터가 있다면 앞으로 모델이 제대로 예측하지 못하는 단점이 있다. ∴ 점진적 학습 or 온라인 학습 : 앞서 훈련한 모델을 버리지 않고 새로운 데이터에 대해서만 조금씩 훈련시킨다. - 대표적인 점진적 학습 알고리즘 : 확률적 경사 하강법이다. 확률적 경사 하강법(Stochastic Gradient Descent) : 학습 데이터셋에서 전..
[혼공머신] CHAPTER 04-1 로지스틱 회귀 럭키백의 확률 - k-최근접 이웃 분류기 : 가장 가까운 이웃 클래스의 비율을 확률이라고 하기(?) 1 데이터 준비하기 3장에서 사용한 pandas를 이용해서 CSV 파일을 읽어들인다. CSV파일은 read_csv() 함수로 읽어들일 수 있다. head() 메서드로 어떤 데이터가 있는지 확인하는 절차로 처음 5개의 행을 출력해본다. head tail - 데이터프레임 내의 처음 n줄의 데이터를 출력 - 객체 안에 제대로 된 데이터 타입이 입력되어 있는지 빠르게 확인할 경우 사용 - n의 기본 값은 5 - 데이터프레임 내의 마지막 n줄의 데이터 출력 - 객체 내의 데이터 타입을 확인할 때, 데이터를 정렬하거나 데이터를 추가했을 경우 결과 확인 - n의 기본 값은 5 이번에 사용할 수 있는 특성은 총 5개로,..
[혼공머신] CHAPTER 03-3 특성공학과 규제 전 챕터에서 훈련세트보다 테스트세트의 점수가 높아서 이 문제를 해결하기 위해 제곱보다 더 고차항이 필요. -> 특성 공학을 이용해 특성을 많이 만들어내서 고차원에서 선형 회귀가 복잡한 모델을 표현하려고 한다.(?) 다중회귀(multiple regression) - 여러 개의 특성을 사용한 선형 회귀 - 특성이 많으면 선형 모델이 강력한 성능을 발휘한다 >> 여기에서는 농어의 길이, 높이, 두께 사용! 특성 공학(feature engineering) - 기존의 특성을 사용해 새로운 특성을 뽑아내는 작업 - ex) 농어 길이 x 농어 높이 - 각 특성을 서로 곱해서 또 다른 특성을 만들어낸다 판다스(pandas) - 파이썬 데이터 처리를 위한 라이브러리 - 관례적으로 pd라는 명칭으로 임포트 - 3가지의 데..
[혼공머신] CHAPTER 03-2 선형회귀 챕터03-1과 같이 농어 데이터를 훈련세트와 테스트세트로 나누어서 2차원 배열로 변환한다. 몸 길이가 50cm인 농어의 무게를 예측해보았는데 1033g으로 예측했다 -> 농어의 실제 무게가 아니다! 그래서 산점도 그래프를 그려보았더니 산점도를 보면 길이가 커질수록 농어의 무게가 증가하지만, 50cm 길이의 농어에서 가장 가까운 데이터는 45cm 근방이기 때문에 k-최근접 이웃 알고리즘은 이 샘플들의 무게를 평균한다 이웃 샘플의 타깃의 평균을 구하면 50cm의 농어의 무게와 일치하는 것을 확인할 수 있다. 즉, 농어의 길이가 아무리 늘어나도 무게는 1033g으로 예측한다는 의미이다 선형 회귀(linear regression) - 특성이 하나인 경우 특성을 가장 잘 나타내는 직선을 학습하는 알고리즘 - 머신..
[혼공머신] CHAPTER 03-1 k-최근접 이웃 회귀 회귀(regression) - 임의의 어떤 숫자를 예측하는 문제 - 두 변수 사이의 상관관계를 분석하는 방법 k-최근접 이웃 회귀 - 분류와 같이 예측하려는 샘플에 가장 가까운 샘플 k개를 선택 - 이웃 샘플의 수치를 활용해 새로운 샘플 x의 타깃은 평균으로 예측 1. 데이터 산점도 - 2장에서는 특성을 2개를 사용해서 열이 2개인 2차원 배열을 사용했지만, 여기에서는 특성 1개만 사용해야해서 수동으로 2차원 배열을 만들어야한다. 그래서 넘파이 배열이 크기를 바꿀 수 있는 reshape() 메서드를 사용한다. reshape( ) 이런 식으로 reshape()를 이용해 배열의 크기를 변경한다. reshape(-1, n) : 크기에 -1을 지정하면 나머지 원소 개수로 모두 채우라는 의미 KNeighborsR..
[혼공머신] CHAPTER 02 데이터 다루기 지도 학습이란? - 정답이 있는 데이터를 활용해 데이터를 학습시키는 것 비지도 학습이란? - 정답이 없는 데이터를 비슷한 특징끼리 군집화 하여 새로운 데이터에 대한 결과를 예측하는 방법 CHAPTER 01에서는 도미인지 아닌지 여부를 정답으로 하였다. 지도 학습에서는 데이터와 정답을 입력(input)과 타깃(target)이라고 하고, 이 둘을 합쳐서 훈련 데이터라고 한다. 특성 : 입력으로 사용된 길이와 무게 CHAPTER 01의 문제점 : 이미 입력된 정답을 가지고 테스트했기 때문에 정확한 답을 맞추는 게 가능 머신러닝 알고리즘의 성능을 제대로 평가하려면 훈련 데이터와 평가에 사용할 데이터가 각각 달라야한다. 그래서 제대로 평가하기 위해서 이미 준비된 데이터 중에서 일부를 활용하거나 새로운 데이터를 준..
[혼공머신] CHAPTER 01 나의 첫 머신러닝 인공지능이란? - 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술 머신러닝이란? - 규칙을 일일이 프로그래밍 하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야 - 대표적인 머신러닝 라이브러리는 사이킷런(scikit-learn) 딥러닝이란? - 많은 머신러닝 알고리즘 중에 인공 신경망을 기반으로 한 방법들을 통칭하여 부른다 - 2015년 구글이 딥러닝 라이브러리인 텐서플로를 오픈소스로 공개 BreamAndSmelt.ipynb - 가장 간단한 머신러닝의 예시로 도미와 빙어를 분류해보자 - 35마리의 도미 - 14마리의 빙어 특성(feature) : 도미의 특징을 길이와 무게로 표현한 것 산점도(scatter plot) : 길이를 x축, 무게를 y축으로 하고 ..

728x90