05-2 교차 검증과 그리드 서치¶ - 검증 세트¶ 테스트 세트를 사용하지 않으면 모델이 과대적합인지 과소적합인지 판단하기 어렵다. 테스트 세트를 사용하지 않고 이를 측정하는 간단한 방법은 훈련 세트를 또 나누는 것이다. 이 데이터를 검증 세트라고 부른다. 앞서 전체 와인 데이터중 20%를 테스트 세트로 만들고 80%를 훈련 세트로 만들었다. 이 훈련 세트중에서 다시 20%를 떼어 내어 검증 세트로 만든다. 훈련 세트에서 모델을 훈련하고 검증 세트로 모델을 평가한다. 이런 식으로 테스트하고 싶은 매개변수를 바꿔가며 가장 좋은 모델을 고른다. 그다음 이 매개변수를 사용해 훈련 세트와 검증 세트를 합쳐 전체 훈련 데이터에서 모델을 다시 훈련한다. 그리고 마지막에 테스트 세트에서 최종 점수를 평가한다. 데이터..
chaper.5 트리 알고리즘¶ 05-1 결정 트리¶ - 로지스틱 회귀로 와인 분류하기¶ 와인 데이터를 먼저 불러오자. 데이터 출처 : https://github.com/rickiepark/hg-mldl In [1]: import pandas as pd wine = pd.read_csv('/home/jaeyoon89/hg-mldl/wine.csv') In [2]: wine.head() Out[2]: alcohol sugar pH class 0 9.4 1.9 3.51 0.0 1 9.8 2.6 3.20 0.0 2 9.8 2.3 3.26 0.0 3 9.8 1.9 3.16 0.0 4 9.4 1.9 3.51 0.0 데이터를 잘 불러왔다 처음의 열 3개는 각각 알코올 도수,당도,PH 값을 나타낸다. ..
04-2 확률적 경사 하강법¶ - 점진적인 학습¶ 이번에 배울 내용은 훈련데이터가 조금씩 전달된다는 가정하에 시작하겠다. 조금씩 전달된 새로운 데이터를 기존의 훈련 데이터에 계속 추가하여 모델을 매일매일 훈련하면 어떨까? 나쁘지 않은 방법이다. 하지만 매일 추가되는 새로운 데이터를 활용해 모델을 훈련하면 데이터가 계속 늘어난다. 몇달이 지나면 모델을 훈련하기 위해 서버를 늘려야 한다. 이것은 지속 가능한 방법은 아니다. 다른 방법은 새로운 데이터를 추가할 때 이전 데이터를 버림으로써 훈련 데이터 크기를 일정하게 유지하는 것이다. 이렇게 하면 데이터셋의 크기가 너무 커지지 않을 수 있다. 하지만 데이터를 버릴 때 다른 데이터에 없는 중요한 생선 데이터가 포함되어 있으면 큰일이다. 앞서 훈련한 모델을 버리지..
SQLITE3 모듈 사용하기 #1¶ 1. SQLite 란?¶ SQLite는 별도의 서버 프로세스가 필요 없고 SQL 질의 언어의 비표준 변형을 사용하여 데이터베이스에 엑세스할 수 있는 경량 디스크 기반 데이터베이스를 제공하는 C라이브러리이다. SQLite는 별도의 복잡한 서버 설치가 필요 없고, 쉽고 편리하게 사용할 수 있다는 점에서 널리 사용되고 있다. 대부분의 Mac os나 리눅스에서는 SQLite을 기본적으로 내장하고 있지만, 만약 시스템에 내장되어 있지 않는 경우는 http://www.sqlite.org 에서 다운받아 설치할 수 있다. SQLite는 기본적으로 SQLite DB 엔진과 "sqlite3" 라는 Command line tool 을 갖고 있다. 데이터 베이스를 .db 확장자를 가지는 단..
카카오api를 이용한 주소 및 위경도 추출하기¶ - api란 무엇일까?¶ API를 본격적으로 알아보기 전에 우선 점심을 먹으로 레스토랑에 갔다고 가정하자. 레스토랑에서 점원은 손님에게 메뉴를 알려주고, 주방에 주문받은 요리를 요청한다. 그다음 주방에서 완성된 요리를 손님한테 전달해준다. 여기서 API는 점원과 같은 역할을 한다. API는 손님(프로그램)이 주문할 수 있게 메뉴(명령 목록)를 정리하고, 주문(명령)을 받으면 요리사(응용프로그램)와 상호작용하여 요청된 메뉴(명령에 대한 값)를 전달한다. 쉽게 말해, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다. - api의 역할은?¶ API는 서버와 데이터베이스에 대한 출입구 역할을 한다. 데이터베이스에는 모든 정보들이 저장된다..
chapter4. 다양한 분류 알고리즘¶ 04-1 로지스틱 회귀¶ - 럭키백의 확률¶ 이번 예제는 7가지 생선 중 럭키백에 들어가 있는 생선의 확률을 구하는 것이다. 럭키백에 들어간 생선의 크기, 무게 등이 주어졌을 때 7개 생선에 대한 확률을 출력해 볼 것이다. - 데이터 준비하기¶ 판다스의 read_csv() 함수로 csv 파일을 데이터프레임으로 변환한 다음 head() 메서드로 처음 5개의 행을 출력해보자. 데이터 출처 : https://github.com/rickiepark/hg-mldl In [1]: import pandas as pd fish = pd.read_csv('/home/jaeyoon89/hg-mldl/fish.csv') In [2]: fish.head() Out[2]:..
03-3 특성 공학과 규제¶ 앞서 다항회귀로 농어의 무게를 어느 정도 예측할 수 있었지만 여전히 훈련 세트보다 테스트 세트의 점수가 높았다. 이를 해결하려면 제곱보다 더 고차항을 넣어야 할 것 같은데 어떻게 넣어야 하는지 이제부터 배워보자. - 다중 회귀¶ 앞서 우리는 하나의 특성을 사용하여 선형 회귀 모델을 훈련시켰다. 여러 개의 특성을 사용한 선형 회귀를 다중 회귀라고 부른다. 1개의 특성을 사용했을 때 선형 회귀 모델이 학습하는 것은 직선이고 2개의 특성이면 평면을 학습한다. 하지만 3차원 공간 이상을 그리거나 상상할 수 없다. 하지만 분명한 것은 선형 회귀를 단순한 직선이나 평면으로 생각하여 성능이 무조건 낮다고 오해해서는 안된다. 이번엔 농어의 길이 뿐만아니라 농어의 높이와 두께도 함께 사용해보..
03-2 선형 회귀¶ - k-최근접 이웃의 한계¶ 앞서 사용한 데이터와 모델을 준비하자. In [19]: 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, 34.5, 35.0, 36.5, 36.0, 37.0, 37.0, 39.0, 39.0, 39.0, 40.0, 40.0, 4..
chapter.3 회귀 알고리즘과 모델 규제¶ 03-1 k-최근접 이웃 회귀¶ - k-최근접 이웃 회귀¶ 지도 학습 알고리즘은 크게 분류와 회귀로 나뉜다. 분류는 앞서 배웠지만 샘플을 몇 개의 클래스 중 하나로 분류하는 문제이다. 회귀는 클래스 중 하나로 분류하는 것이 아니라 임이의 어떤 숫자를 예측하는 문제이다. 예를 들면 내년도 경제 성장률을 예측하거나 배달이 도착할 시간을 예측하는 것이 회귀 문제이다. 회귀는 정해진 클래스가 없고 임의로 수치를 출력한다. k-최근접 이웃 회귀는 앞서 배운 k-최근접 이웃 알고리즘과 마찬가지로 분류와 똑같이 예측하려는 샘플에 가장 가까운 샘플 k개를 선택한다. 하지만 회귀이기 때문에 이웃한 샘플의 타깃은 어떤 클래스가 아니라 임의의 수치이다. 이웃 샘플의 수치를 사용..
chapte.2 데이터 다루기¶ 02-1 훈련 세트와 테스트 세트¶ - 지도 학습과 비지도 학습¶ 머신러닝 알고리즘은 크게 지도학습과 비지도학습으로 나눌 수 있다. 지도 학습 알고리즘은 훈련하기 위한 데이터와 정답이 필요하다. 지도 학습에서는 데이터와 정답을 입력과 타깃이라고 하고, 이 둘을 합쳐 훈련 데이터라고 부른다. 지도 학습은 정답이 있어 알고리즘이 정답을 맞히는 것을 학습한다. 반면 비지도 학습 알고리즘은 타깃 없이 입력 데이터만 사용한다. 이런 종류의 알고리즘은 정답을 사용하지 않으므로 무언가를 맞힐 수가 없다. 대신 데이터를 잘 파악하거나 변형하는 데 도움을 준다. - 훈련 세트와 테스트 세트¶ 연습문제와 시험문제가 달라야 올바르게 학생의 능력을 평가할 수 있듯 머신러닝 알고리즘의 성능을 제..