diff --git a/06_decision_trees.ipynb b/06_decision_trees.ipynb
index efba65a..ada942b 100644
--- a/06_decision_trees.ipynb
+++ b/06_decision_trees.ipynb
@@ -1,50 +1,77 @@
{
"cells": [
{
- "cell_type": "markdown",
- "metadata": {},
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CPython 3.5.5\n",
+ "IPython 6.2.1\n",
+ "\n",
+ "numpy 1.14.1\n",
+ "scipy 1.0.0\n",
+ "sklearn 0.19.1\n",
+ "pandas 0.22.0\n",
+ "matplotlib 2.2.2\n"
+ ]
+ }
+ ],
"source": [
- "**Chapter 6 – Decision Trees**"
+ "%load_ext watermark\n",
+ "%watermark -v -p numpy,scipy,sklearn,pandas,matplotlib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "_This notebook contains all the sample code and solutions to the exercises in chapter 6._"
+ "**6장 – 결정 트리**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "# Setup"
+ "_이 노트북은 6장에 있는 모든 샘플 코드와 연습문제 해답을 가지고 있습니다._"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:"
+ "# 설정"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "파이썬 2와 3을 모두 지원합니다. 공통 모듈을 임포트하고 맷플롯립 그림이 노트북 안에 포함되도록 설정하고 생성한 그림을 저장하기 위한 함수를 준비합니다:"
]
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
- "# To support both python 2 and python 3\n",
+ "# 파이썬 2와 파이썬 3 지원\n",
"from __future__ import division, print_function, unicode_literals\n",
"\n",
- "# Common imports\n",
+ "# 공통\n",
"import numpy as np\n",
"import os\n",
"\n",
- "# to make this notebook's output stable across runs\n",
+ "# 일관된 출력을 위해 유사난수 초기화\n",
"np.random.seed(42)\n",
"\n",
- "# To plot pretty figures\n",
+ "# 맷플롯립 설정\n",
"%matplotlib inline\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
@@ -56,7 +83,7 @@
"matplotlib.rc('font', family='NanumBarunGothic')\n",
"matplotlib.rcParams['axes.unicode_minus'] = False\n",
"\n",
- "# Where to save the figures\n",
+ "# 그림을 저장할 폴드\n",
"PROJECT_ROOT_DIR = \".\"\n",
"CHAPTER_ID = \"decision_trees\"\n",
"\n",
@@ -64,7 +91,6 @@
" return os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id)\n",
"\n",
"def save_fig(fig_id, tight_layout=True):\n",
- " print(\"Saving figure\", fig_id)\n",
" if tight_layout:\n",
" plt.tight_layout()\n",
" plt.savefig(image_path(fig_id) + \".png\", format='png', dpi=300)"
@@ -74,12 +100,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# Training and visualizing"
+ "# 훈련과 시각화"
]
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
@@ -93,7 +119,7 @@
" splitter='best')"
]
},
- "execution_count": 2,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -112,7 +138,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
@@ -121,7 +147,7 @@
"export_graphviz(\n",
" tree_clf,\n",
" out_file=image_path(\"iris_tree.dot\"),\n",
- " feature_names=[\"꽃잎 길이 (cm)\", \"꽃잎 폭 (cm)\"],\n",
+ " feature_names=[\"꽃잎 길이 (cm)\", \"꽃잎 너비 (cm)\"],\n",
" class_names=iris.target_names,\n",
" rounded=True,\n",
" filled=True\n",
@@ -130,7 +156,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 5,
"metadata": {},
"outputs": [
{
@@ -142,19 +168,19 @@
"\n",
"\n",
- "\n"
],
"text/plain": [
- ""
+ ""
]
},
- "execution_count": 18,
+ "execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
@@ -815,16 +804,9 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 20,
"metadata": {},
"outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Saving figure tree_regression_regularization_plot\n"
- ]
- },
{
"data": {
"image/png": "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\n",
@@ -874,7 +856,7 @@
"collapsed": true
},
"source": [
- "# Exercise solutions"
+ "# 연습문제 해답"
]
},
{
@@ -888,7 +870,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "See appendix A."
+ "부록 A 참조."
]
},
{
@@ -904,26 +886,26 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "_Exercise: train and fine-tune a Decision Tree for the moons dataset._"
+ "_문제: moons 데이터셋에 결정 트리를 훈련시키고 세밀하게 튜닝해보세요._"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "a. Generate a moons dataset using `make_moons(n_samples=10000, noise=0.4)`."
+ "a. `make_moons(n_samples=1000, noise=0.4)`를 사용해 데이터셋을 생성합니다."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "Adding `random_state=42` to make this notebook's output constant:"
+ "`random_state=42`를 지정하여 결과를 일정하게 만듭니다:"
]
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
@@ -936,12 +918,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "b. Split it into a training set and a test set using `train_test_split()`."
+ "b. 이를 `train_test_split()`을 사용해 훈련 세트와 테스트 세트로 나눕니다"
]
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
@@ -954,12 +936,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "c. Use grid search with cross-validation (with the help of the `GridSearchCV` class) to find good hyperparameter values for a `DecisionTreeClassifier`. Hint: try various values for `max_leaf_nodes`."
+ "c. `DecisionTreeClassifier`의 최적의 매개변수를 찾기 위해 교차 검증과 함께 그리드 탐색을 수행합니다(`GridSearchCV`를 사용하면 됩니다). 힌트: 여러 가지 `max_leaf_nodes` 값을 시도해보세요."
]
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 23,
"metadata": {},
"outputs": [
{
@@ -992,7 +974,7 @@
" scoring=None, verbose=1)"
]
},
- "execution_count": 22,
+ "execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
@@ -1008,7 +990,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 24,
"metadata": {},
"outputs": [
{
@@ -1022,7 +1004,7 @@
" splitter='best')"
]
},
- "execution_count": 23,
+ "execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
@@ -1035,19 +1017,19 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "d. Train it on the full training set using these hyperparameters, and measure your model's performance on the test set. You should get roughly 85% to 87% accuracy."
+ "d. 찾은 매개변수를 사용해 전체 훈련 세트에 대해 모델을 훈련시키고 테스트 세트에서 성능을 측정합니다. 대략 85~87%의 정확도가 나올 것입니다."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "By default, `GridSearchCV` trains the best model found on the whole training set (you can change this by setting `refit=False`), so we don't need to do it again. We can simply evaluate the model's accuracy:"
+ "기본적으로 `GridSearchCV`는 전체 훈련 세트로 찾은 최적의 모델을 다시 훈련시킵니다(`refit=False`로 지정해서 바꿀 수 있습니다). 그래서 별도로 작업할 필요가 없습니다. 모델의 정확도를 바로 평가할 수 있습니다:"
]
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 25,
"metadata": {},
"outputs": [
{
@@ -1056,7 +1038,7 @@
"0.8695"
]
},
- "execution_count": 24,
+ "execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
@@ -1079,19 +1061,19 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "_Exercise: Grow a forest._"
+ "_Exercise: 랜덤 포레스트를 만들어보세요._"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "a. Continuing the previous exercise, generate 1,000 subsets of the training set, each containing 100 instances selected randomly. Hint: you can use Scikit-Learn's `ShuffleSplit` class for this."
+ "a. 이전 연습문제에 이어서, 훈련 세트의 서브셋을 1,000개 생성합니다. 각각은 무작위로 선택된 100개의 샘플을 담고 있습니다. 힌트: 사이킷런의 `ShuffleSplit`을 사용할 수 있습니다."
]
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
@@ -1113,12 +1095,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "b. Train one Decision Tree on each subset, using the best hyperparameter values found above. Evaluate these 1,000 Decision Trees on the test set. Since they were trained on smaller sets, these Decision Trees will likely perform worse than the first Decision Tree, achieving only about 80% accuracy."
+ "b. 앞에서 찾은 최적의 매개변수를 사용해 각 서브셋에 결정 트리를 훈련시킵니다. 테스트 세트로 이 1,000개의 결정 트리를 평가합니다. 더 작은 데이터셋에서 훈련되었기 때문에 이 결정 트리는 앞서 만든 결정 트리보다 성능이 떨어져 약8 0%의 정확도를 냅니다."
]
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 27,
"metadata": {},
"outputs": [
{
@@ -1127,7 +1109,7 @@
"0.8054494999999999"
]
},
- "execution_count": 26,
+ "execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
@@ -1152,12 +1134,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "c. Now comes the magic. For each test set instance, generate the predictions of the 1,000 Decision Trees, and keep only the most frequent prediction (you can use SciPy's `mode()` function for this). This gives you _majority-vote predictions_ over the test set."
+ "c. 이제 마술을 부릴 차례입니다. 각 테스트 세트 샘플에 대해 1,000개의 결정 트리 예측을 만들고 다수로 나온 예측만 취합니다(사이파이의 `mode()` 함수를 사용할 수 있습니다). 그러면 테스트 세트에 대한 _다수결 예측_이 만들어집니다."
]
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
@@ -1169,7 +1151,7 @@
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
@@ -1182,12 +1164,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "d. Evaluate these predictions on the test set: you should obtain a slightly higher accuracy than your first model (about 0.5 to 1.5% higher). Congratulations, you have trained a Random Forest classifier!"
+ "d. 테스트 세트에서 이 예측을 평가합니다. 앞서 만든 모델보다 조금 높은(약 0.5~1.5% 정도) 정확도를 얻게 될 것입니다. 축하합니다. 랜덤 포레스트 분류기를 훈련시켰습니다!"
]
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 30,
"metadata": {},
"outputs": [
{
@@ -1196,7 +1178,7 @@
"0.872"
]
},
- "execution_count": 29,
+ "execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
@@ -1204,13 +1186,6 @@
"source": [
"accuracy_score(y_test, y_pred_majority_votes.reshape([-1]))"
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
diff --git a/images/decision_trees/decision_tree_decision_boundaries_plot.png b/images/decision_trees/decision_tree_decision_boundaries_plot.png
index 4ac5d54..cf1ea69 100644
Binary files a/images/decision_trees/decision_tree_decision_boundaries_plot.png and b/images/decision_trees/decision_tree_decision_boundaries_plot.png differ
diff --git a/images/decision_trees/decision_tree_instability_plot.png b/images/decision_trees/decision_tree_instability_plot.png
index b918c90..f57071d 100644
Binary files a/images/decision_trees/decision_tree_instability_plot.png and b/images/decision_trees/decision_tree_instability_plot.png differ
diff --git a/images/decision_trees/iris_tree.dot b/images/decision_trees/iris_tree.dot
index 115a31b..e07c09a 100644
--- a/images/decision_trees/iris_tree.dot
+++ b/images/decision_trees/iris_tree.dot
@@ -4,7 +4,7 @@ edge [fontname=helvetica] ;
0 [label="꽃잎 길이 (cm) <= 2.45\ngini = 0.667\nsamples = 150\nvalue = [50, 50, 50]\nclass = setosa", fillcolor="#e5813900"] ;
1 [label="gini = 0.0\nsamples = 50\nvalue = [50, 0, 0]\nclass = setosa", fillcolor="#e58139ff"] ;
0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;
-2 [label="꽃잎 폭 (cm) <= 1.75\ngini = 0.5\nsamples = 100\nvalue = [0, 50, 50]\nclass = versicolor", fillcolor="#39e58100"] ;
+2 [label="꽃잎 너비 (cm) <= 1.75\ngini = 0.5\nsamples = 100\nvalue = [0, 50, 50]\nclass = versicolor", fillcolor="#39e58100"] ;
0 -> 2 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;
3 [label="gini = 0.168\nsamples = 54\nvalue = [0, 49, 5]\nclass = versicolor", fillcolor="#39e581e5"] ;
2 -> 3 ;
diff --git a/images/decision_trees/iris_tree.png b/images/decision_trees/iris_tree.png
index e8ed29e..31632b5 100644
Binary files a/images/decision_trees/iris_tree.png and b/images/decision_trees/iris_tree.png differ