그래디언트 부스팅 (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 이나 결정 트리 방식입니다. 현재 여러 머신러닝 대회에서 가장 결과 점수가 높은 방식이 결정트리에 기반한 알고리즘입니다.결정트리는 거리를 재지 않기 때문에 정규화가 필요하지 않습니다.결정트리의 도전과제는 가장 잘 두 그룹으로 분..
pandas_subway Pandas¶지하철 데이터¶ In [1]: import numpy as np import pandas as pd import matplotlib.pyplot as plt In [2]: data = pd.read_csv('CARD_SUBWAY_MONTH_201901.csv') In [4]: data.head() #data.tail() Out[4]: 사용일자 노선명 역ID 역명 승차총승객수 하차총승객수 등록일자 18329 20190131 1호선 155 동대문 14563 15139 20190203 18330 20190131 1호선 154 종로5가 30249 29703 20190203 18331 20190131 1호선 153 종로3가 36804 35050 20190203 18332 20..
2장_09_SVM 커널 서포트벡터 머신¶ 유방암 데이터에 커널 SVM 을 적용해 보겠습니다. In [2]: 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 load_breast_cancer from sklearn.svm import SVC cancer = load_breast_cancer() In [3]: malignant = cancer.data[cancer.target==0] # 37% benign = cancer.data[cancer.target==1] # 63% maligna..
문제 1Iris 데이터의 4가지 속성의 히스토그램을 2X2 모양의 서브플롯으로 표시하시오. 문제 2아래는 밤하늘의 별모양을 흉내낸 것이다.여기서 vmax=10, cmap='gray_r' 의 효과를 설명하시오. Untitled18 In [10]: import numpy as np import matplotlib.pyplot as plt star = np.random.randint(1000, size=[200,200]) plt.imshow(star, vmax=10, cmap='gray_r') plt.colorbar() Out[10]: 정답 Untitled19 1번¶ In [1]: import numpy as np import matplotlib.pyplot as plt f = open('iris.csv') ..
문제 11) 임의의 컬러 사진을 plt.imshow() 함수로 표시하시오.2) 세가지 채널 중 빨간색 채널을 분리해 표시하시오. 문제 2plt.subplot() 과 plt.subplots() 의 차이점을 설명하시오. 정답 1번¶ In [1]: import matplotlib.image as mpimg img=mpimg.imread('lucy.jpg') display(img.shape) (498, 500, 3) In [3]: import matplotlib.pyplot as plt plt.imshow(img) Out[3]: In [7]: plt.imshow(img[:,:,0], vmin=0, vmax=255, cmap='Reds_r') Out[7]: 2번¶ In [8]: plt..