Introduction to Machine Learning with Python¶ Chapter 2. 지도학습¶ 경사 하강법 (Gradient Descent)¶ 경사하강법은 예측함수를 만들고, 훈련데이터에 대한 예측결과 오류를 점점 줄여나가는 방법이다. 선형회귀에서 속성이 하나일 때, 즉 키가 입력값이고 몸무계가 목표값일 때를 예로 들자. $ \hat{y} = w x + b $ 이 경우, 목표값인 $ y $ 에 예측값인 $ \hat{y} $ 가 최대한 근접하도록 $w$ 와 $b$ 값을 구해야 한다. $y$ 와 $\hat{y}$ 의 오류를 수치화한 값이 앞에서 배운 MSE(Mean Squared Error) 이다. $ MSE = {1 \over N} \sum_{i=0}^{N-1} (y_i - \hat{y}..
Introduction to Machine Learning with Python¶ Chapter 2. 지도학습¶ 나이브 베이즈 (Naive Bayes)¶ 나이브 베이즈는 통계수학에 기반한 머신러닝 알고리즘 입니다. 핵심 이론은 베이즈 방정식입니다. 집합 A 와 B 의 교집합 $ A \cap B $ $ A \cap B = P(A \vert B) P(B) = P(B \vert A) P(A) $ $ P(A \vert B) = { {P(A) P(B \vert A)} \over P(B) }$ 나이브 베이즈에서는 각 속성을 독립적이라고 가정한다. 자세한 공식은 아래와 같다. (출처 : http://scikit-learn.org/stable/modules/naive_bayes.html) 나이브 베이즈는 언어와 관련된..
Untitled20 이번에는 지난 블로그에 이어서 1월 중국집 업종 통화량을 여러 각도로 보도록 해보자.https://jfun.tistory.com/120 1. Data 확인¶ 먼저 Data에 대한 전반적인 확인을 해 보자. In [2]: import numpy as np import pandas as pd import matplotlib.pyplot as plt In [3]: data = pd.read_csv('CALL_CFOOD_2019_01MONTH.csv') In [4]: data.head() Out[4]: 기준일 요일 성별 연령대 시도 시군구 읍면동 업종 통화건수 0 20190101 화 여 40대 서울특별시 강남구 대치동 중국집 5 1 20190101 화 남 30대 서울특별시 강남구 신사동 중국..
분할표¶명목형 또는 순서형 데이터의 도수를 표 형태로 기록한 것이다. 분할표가 작성이되면 카이 제곱 검정으로 변수 간에 의존 관계가 있느지를 독립성 검정(P(i,j)=P(i)*P(j))으로, 도수가 특정 분포를 따르는지를 적합도 검정으로 살펴볼 수 있다. 명목형 데이터¶가능한 값이 제한되어 있고 종종 고정되어 있는 변수를 의미한다. 예를 들면, 국가명, 혈액형 등이다. 순서형 데이터¶값의 순서를 숫자로 저장한 변수다. 예를 들어, 설문 조사에서 제품 만족도를 조사하면서 응답을 매우 만족, 만족, 보통, 불만족, 매우 불만족으로 받을 수 있다. 이들 응답은 각각 5(매우 만족), 4(만족), 3(보통), 2(불만족), 1(매우 불만족)로 저장할 수 있는데, 이때 큰 값은 더 큰 만족을 의미한다. 하지만 이..
그래디언트 부스팅 (Gradient Boosting)¶ 그래디언트 부스팅도 랜덤 포레스트 처럼 나무를 여러개 만든다. 단, 한꺼번에 나무를 만들지 않고 나무를 하나 만든 다음 그것의 오차를 줄이는 방법으로 다음 나무를 만들고, 이런 과정을 단계적으로 진행한다. 그래디언트 부스팅은 머신러닝 경연대회에서 우승을 많이 차지하였다. 어떻게 보면 점수를 올리기 위해 마지막 까지 모든 가능성을 쥐어짜는 방식이라고도 할 수 있다. In [4]: import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.datasets import l..
랜덤 포레스트 Random Forest)¶ 여러가지 머신러닝 모델을 연결하여 사용하는 것을 앙상블(ensemble) 방법이라고 한다. 결정트리를 사용한 앙상블에는 랜덤 포레스트와 그래디언트 부스팅 두가지 방법이 유명하다. 랜덤 포레스트는 결정트리를 여러개 만들고 각 결정 트리마다 무작위성(랜덤)을 부여하여 생성한다. 이렇게 나온 여러개의 결정트리의 결과를 평균하여 최종 결과를 낸다. 이는 결정트리의 과대적합 경향을 줄이고, 다양한 속성을 고려하게 된다는 의미가 된다. In [2]: import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split fr..
지난 블로그: [서울시 먹거리 분석] - 1월 치킨 판매업종 이용 통화량 분석 https://jfun.tistory.com/82 이번에는 지난 블로그에 이어서 1월 치킨 판매 업종 통화량을 여러 각도로 보도록 해보자. 1. Data 확인¶먼저 Data에 대한 전반적인 확인을 해보자. In [1]: import numpy as np import pandas as pd import matplotlib.pyplot as plt In [2]: data = pd.read_csv('CALL_CHICKEN_01MONTH.csv') In [3]: data.head() Out[3]: 기준일 요일 성별 연령대 시도 시군구 읍면동 업종 통화건수 0 20190101 화 여 20대 서울특별시 강남구 도곡동 치킨 ..
2장_10_결정트리 결정 트리 (Decision Tree)¶앞에서 배운 k-NN, 로지스틱회귀, SVM 등은 기하학적 분포와 거리 개념에 기반한 분류 알고리즘입니다.반면, 결정트리와 이에 기반한 알고리즘 들은 스무고개 놀이와 같이 계속 질문을 던져 가면서 예/아니오 를 판단하는 방식입니다. '예' 그룹인지 '아니오' 그룹인지가 중요하지 거리 개념은 기본적으로 없습니다.예측 점수를 가장 높게 하고 싶을 때 우선 적용을 고려하는 것이 커널 SVM 이나 결정 트리 방식입니다. 현재 여러 머신러닝 대회에서 가장 결과 점수가 높은 방식이 결정트리에 기반한 알고리즘입니다.결정트리는 거리를 재지 않기 때문에 정규화가 필요하지 않습니다.결정트리의 도전과제는 가장 잘 두 그룹으로 분..