diff --git a/03_classification.ipynb b/03_classification.ipynb index 09bb8d8..b0f05d7 100644 --- a/03_classification.ipynb +++ b/03_classification.ipynb @@ -9,11 +9,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPython 3.5.5\n", - "IPython 6.3.1\n", + "CPython 3.6.5\n", + "IPython 6.4.0\n", "\n", "numpy 1.14.3\n", - "scipy 1.0.1\n", + "scipy 1.1.0\n", "sklearn 0.19.1\n", "pandas 0.23.0\n", "matplotlib 2.2.2\n" @@ -104,16 +104,16 @@ { "data": { "text/plain": [ - "{'COL_NAMES': ['label', 'data'],\n", - " 'DESCR': 'mldata.org dataset: mnist-original',\n", + "{'DESCR': 'mldata.org dataset: mnist-original',\n", + " 'COL_NAMES': ['label', 'data'],\n", + " 'target': array([0., 0., 0., ..., 9., 9., 9.]),\n", " 'data': array([[0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " ...,\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", - " [0, 0, 0, ..., 0, 0, 0]], dtype=uint8),\n", - " 'target': array([0., 0., 0., ..., 9., 9., 9.])}" + " [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)}" ] }, "execution_count": 3, @@ -1913,69 +1913,69 @@ "[CV] n_neighbors=3, weights=uniform ..................................\n", "[CV] n_neighbors=3, weights=uniform ..................................\n", "[CV] n_neighbors=3, weights=uniform ..................................\n", - "[CV] n_neighbors=3, weights=uniform, score=0.9714214297617064, total=12.1min\n", + "[CV] n_neighbors=3, weights=uniform, score=0.9698458975426906, total=12.0min\n", "[CV] n_neighbors=3, weights=uniform ..................................\n", - "[CV] n_neighbors=3, weights=uniform, score=0.9728265399683255, total=12.1min\n", + "[CV] n_neighbors=3, weights=uniform, score=0.9714214297617064, total=12.0min\n", "[CV] n_neighbors=3, weights=distance .................................\n", - "[CV] n_neighbors=3, weights=uniform, score=0.9726666666666667, total=12.2min\n", + "[CV] n_neighbors=3, weights=uniform, score=0.9726666666666667, total=12.0min\n", "[CV] n_neighbors=3, weights=distance .................................\n", - "[CV] n_neighbors=3, weights=uniform, score=0.9698458975426906, total=12.2min\n", + "[CV] n_neighbors=3, weights=uniform, score=0.9728265399683255, total=12.0min\n", "[CV] n_neighbors=3, weights=distance .................................\n", - "[CV] n_neighbors=3, weights=distance, score=0.9712619741774261, total=12.0min\n", + "[CV] n_neighbors=3, weights=distance, score=0.9712619741774261, total=11.9min\n", "[CV] n_neighbors=3, weights=distance .................................\n", - "[CV] n_neighbors=3, weights=distance, score=0.9725879020163306, total=12.0min\n", + "[CV] n_neighbors=3, weights=uniform, score=0.9717405801933978, total=11.9min\n", "[CV] n_neighbors=3, weights=distance .................................\n", "[CV] .... n_neighbors=3, weights=distance, score=0.9745, total=12.0min\n", "[CV] n_neighbors=4, weights=uniform ..................................\n", - "[CV] n_neighbors=3, weights=uniform, score=0.9717405801933978, total=12.0min\n", + "[CV] n_neighbors=3, weights=distance, score=0.9725879020163306, total=12.0min\n", "[CV] n_neighbors=4, weights=uniform ..................................\n", - "[CV] n_neighbors=3, weights=distance, score=0.9743269150620989, total=12.0min\n", + "[CV] n_neighbors=3, weights=distance, score=0.9743269150620989, total=11.9min\n", "[CV] n_neighbors=4, weights=uniform ..................................\n", - "[CV] n_neighbors=4, weights=uniform, score=0.9691795085381091, total=12.0min\n", + "[CV] n_neighbors=4, weights=uniform, score=0.9691795085381091, total=11.9min\n", "[CV] n_neighbors=4, weights=uniform ..................................\n", - "[CV] n_neighbors=3, weights=distance, score=0.9724074691563854, total=12.1min\n", + "[CV] n_neighbors=3, weights=distance, score=0.9724074691563854, total=11.9min\n", "[CV] n_neighbors=4, weights=uniform ..................................\n", - "[CV] n_neighbors=4, weights=uniform, score=0.9698383602732877, total=12.1min\n", + "[CV] n_neighbors=4, weights=uniform, score=0.9698383602732877, total=11.9min\n", "[CV] n_neighbors=4, weights=distance .................................\n", "[CV] n_neighbors=4, weights=uniform, score=0.9718333333333333, total=11.9min\n", "[CV] n_neighbors=4, weights=distance .................................\n", - "[CV] n_neighbors=4, weights=uniform, score=0.9709093940151705, total=12.1min\n", + "[CV] n_neighbors=4, weights=uniform, score=0.9709093940151705, total=11.9min\n", "[CV] n_neighbors=4, weights=distance .................................\n", - "[CV] n_neighbors=4, weights=distance, score=0.9714285714285714, total=12.0min\n", + "[CV] n_neighbors=4, weights=uniform, score=0.9680726908969657, total=11.9min\n", "[CV] n_neighbors=4, weights=distance .................................\n", - "[CV] n_neighbors=4, weights=uniform, score=0.9680726908969657, total=12.0min\n", + "[CV] n_neighbors=4, weights=distance, score=0.9714285714285714, total=11.9min\n", "[CV] n_neighbors=4, weights=distance .................................\n", - "[CV] n_neighbors=4, weights=distance, score=0.9729211798033661, total=12.8min\n", + "[CV] n_neighbors=4, weights=distance, score=0.9729211798033661, total=11.9min\n", "[CV] n_neighbors=5, weights=uniform ..................................\n", - "[CV] n_neighbors=4, weights=distance, score=0.9752438109527382, total=12.8min\n", + "[CV] n_neighbors=4, weights=distance, score=0.9745833333333334, total=11.9min\n", "[CV] n_neighbors=5, weights=uniform ..................................\n", - "[CV] n_neighbors=4, weights=distance, score=0.9745833333333334, total=12.9min\n", + "[CV] n_neighbors=4, weights=distance, score=0.9752438109527382, total=11.9min\n", "[CV] n_neighbors=5, weights=uniform ..................................\n", - "[CV] n_neighbors=4, weights=distance, score=0.9720740246748917, total=12.9min\n", + "[CV] n_neighbors=4, weights=distance, score=0.9720740246748917, total=11.9min\n", "[CV] n_neighbors=5, weights=uniform ..................................\n", - "[CV] n_neighbors=5, weights=uniform, score=0.9693461057892545, total=12.0min\n", + "[CV] n_neighbors=5, weights=uniform, score=0.9693461057892545, total=11.9min\n", "[CV] n_neighbors=5, weights=uniform ..................................\n", - "[CV] n_neighbors=5, weights=uniform, score=0.9726666666666667, total=12.1min\n", + "[CV] n_neighbors=5, weights=uniform, score=0.9699216797200466, total=11.9min\n", "[CV] n_neighbors=5, weights=distance .................................\n", - "[CV] n_neighbors=5, weights=uniform, score=0.9699216797200466, total=12.1min\n", + "[CV] n_neighbors=5, weights=uniform, score=0.9726666666666667, total=11.9min\n", "[CV] n_neighbors=5, weights=distance .................................\n", - "[CV] n_neighbors=5, weights=uniform, score=0.9713261648745519, total=12.1min\n", + "[CV] n_neighbors=5, weights=uniform, score=0.9713261648745519, total=11.9min\n", "[CV] n_neighbors=5, weights=distance .................................\n", - "[CV] n_neighbors=5, weights=uniform, score=0.969406468822941, total=12.0min\n", + "[CV] n_neighbors=5, weights=uniform, score=0.969406468822941, total=11.9min\n", "[CV] n_neighbors=5, weights=distance .................................\n", "[CV] n_neighbors=5, weights=distance, score=0.9711786755518534, total=11.9min\n", "[CV] n_neighbors=5, weights=distance .................................\n", - "[CV] n_neighbors=5, weights=distance, score=0.9712547908681887, total=12.0min\n", - "[CV] n_neighbors=5, weights=distance, score=0.9738333333333333, total=12.0min\n", - "[CV] n_neighbors=5, weights=distance, score=0.9724931232808202, total=11.3min\n", - "[CV] n_neighbors=5, weights=distance, score=0.9714904968322774, total=11.2min\n" + "[CV] n_neighbors=5, weights=distance, score=0.9712547908681887, total=11.9min\n", + "[CV] n_neighbors=5, weights=distance, score=0.9738333333333333, total=11.9min\n", + "[CV] n_neighbors=5, weights=distance, score=0.9724931232808202, total=11.1min\n", + "[CV] n_neighbors=5, weights=distance, score=0.9714904968322774, total=11.1min\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "[Parallel(n_jobs=-1)]: Done 30 out of 30 | elapsed: 472.1min finished\n" + "[Parallel(n_jobs=-1)]: Done 30 out of 30 | elapsed: 465.3min finished\n" ] }, { @@ -1986,7 +1986,7 @@ " metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n", " weights='uniform'),\n", " fit_params=None, iid=True, n_jobs=-1,\n", - " param_grid=[{'n_neighbors': [3, 4, 5], 'weights': ['uniform', 'distance']}],\n", + " param_grid=[{'weights': ['uniform', 'distance'], 'n_neighbors': [3, 4, 5]}],\n", " pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n", " scoring=None, verbose=3)" ] @@ -3319,8 +3319,8 @@ "source": [ "from sklearn.model_selection import cross_val_score\n", "\n", - "scores = cross_val_score(svm_clf, X_train, y_train, cv=10)\n", - "scores.mean()" + "svm_scores = cross_val_score(svm_clf, X_train, y_train, cv=10)\n", + "svm_scores.mean()" ] }, { @@ -3357,8 +3357,8 @@ "from sklearn.ensemble import RandomForestClassifier\n", "\n", "forest_clf = RandomForestClassifier(random_state=42)\n", - "scores = cross_val_score(forest_clf, X_train, y_train, cv=10)\n", - "scores.mean()" + "forest_scores = cross_val_score(forest_clf, X_train, y_train, cv=10)\n", + "forest_scores.mean()" ] }, { @@ -3368,6 +3368,38 @@ "훨씬 좋네요!" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10 폴드 교차 검증에 대한 평균 정확도를 보는 대신 모델에서 얻은 10개의 점수를 1사분위, 3사분위를 명료하게 표현해주는 상자 수염 그림(box-and-whisker) 그래프를 만들어 보겠습니다(이 방식을 제안해 준 Nevin Yilmaz에게 감사합니다). `boxplot()` 함수는 이상치(플라이어(flier)라고 부릅니다)를 감지하고 수염 부분에 이를 포함시키지 않습니다. 1사분위가 $Q_1$이고 3사분위가 $Q_3$이라면 사분위수 범위는 $IQR = Q_3 - Q_1$가 됩니다(이 값이 박스의 높이가 됩니다). $Q_1 - 1.5 \\times IQR$ 보다 낮거나 $Q3 + 1.5 \\times IQR$ 보다 높은 점수는 이상치로 간주됩니다." + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(8, 4))\n", + "plt.plot([1]*10, svm_scores, \".\")\n", + "plt.plot([2]*10, forest_scores, \".\")\n", + "plt.boxplot([svm_scores, forest_scores], labels=(\"SVM\",\"Random Forest\"))\n", + "plt.ylabel(\"정확도\", fontsize=14)\n", + "plt.show()" + ] + }, { "cell_type": "markdown", "metadata": {},