{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from sklearn.tree import DecisionTreeClassifier, export_graphviz\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "\n", "np.random.seed(10246)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# 生成训练数据\n", "n = 10\n", "X0 = np.c_[np.random.uniform(-1, 1, size=3*n).reshape(-1, 1),\n", " np.random.uniform(-1, 1, size=3*n).reshape(-1, 1)]\n", "Y0 = np.array([0] * 3 * n).reshape(-1, 1)\n", "X1 = np.c_[np.random.uniform(0.4, 1, size=n).reshape(-1, 1),\n", " np.random.uniform(0, 1, size=n).reshape(-1, 1)]\n", "Y1 = np.array([1] * n).reshape(-1, 1)\n", "X2 = np.c_[np.random.uniform(-0.9, -0.6, size=n).reshape(-1, 1),\n", " np.random.uniform(-0.5, 0.5, size=n).reshape(-1, 1)]\n", "Y2 = np.array([1] * n).reshape(-1, 1)\n", "X = np.concatenate((X0, X1, X2), axis=0)\n", "Y = np.concatenate((Y0, Y1, Y2), axis=0)\n", "data = np.concatenate((Y, X), axis=1)\n", "data = pd.DataFrame(data, columns=['y', 'x1', 'x2'])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# 训练决策树模型\n", "res = []\n", "for i in range(1, 4):\n", " model = DecisionTreeClassifier(criterion='gini', max_depth=i)\n", " model.fit(data[['x1', 'x2']], data['y'])\n", " res.append(model)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def draw_data(ax, data):\n", " '''\n", " 将数据可视化\n", " '''\n", " label1 = data[data['y'] > 0]\n", " ax.scatter(label1[['x1']], label1[['x2']], marker='o')\n", " label0 = data[data['y'] == 0]\n", " ax.scatter(label0[['x1']], label0[['x2']], marker='^', color='k')\n", " return ax" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def draw_model(ax, model, index):\n", " '''\n", " 将模型的分离超平面可视化\n", " '''\n", " x = np.linspace(-1.2, 1.2, 400)\n", " X1, X2 = np.meshgrid(x, x)\n", " for i in range(index+1):\n", " data = pd.DataFrame(np.c_[X1.ravel(), X2.ravel()], columns=['x1', 'x2'])\n", " Y = model[i].predict(data)\n", " Y = Y.reshape(X1.shape)\n", " ax.contour(X1, X2, Y, levels=[0, 1], colors=['r', 'r'],\n", " linestyles=['-', '-'])\n", " ax.contourf(X1, X2, Y, levels=[-100, 0], colors=['gray'], alpha=0.4)\n", " return ax" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 将数据和模型结果可视化\n", "# 创建一个图形框\n", "fig = plt.figure(figsize=(10, 10), dpi=100)\n", "# 在图形框里画四幅图\n", "for i in range(4):\n", " ax = fig.add_subplot(2, 2, i+1)\n", " ax.set_xlim([-1.2, 1.2])\n", " ax.set_ylim([-1.2, 1.2])\n", " draw_data(ax, data)\n", " if i != 0:\n", " draw_model(ax, res, i-1)\n", "plt.savefig('dt_example.png', dpi=200)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# 如果电脑里已安装了GraphViz,程序运行完之后,在终端执行如下命令生成图片\n", "# dot -Tpng -Gdpi=300 decision_tree.dot -o decision_tree.png\n", "export_graphviz(res[-1], 'decision_tree.dot', feature_names=['x1', 'x2'])" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }