{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\u203b\u4e0b\u8a18\u3001\u8a73\u7d30\u306f \u30d6\u30ed\u30b0\u3092\u8a18\u4e8b\u53c2\u7167\u306e\u3053\u3068\n",
""
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"\u304a\u307e\u3058\u306a\u3044\uff08\u30d7\u30ed\u30c3\u30c8\u3092\u30a4\u30f3\u30e9\u30a4\u30f3\u3067\u8868\u793a\u3059\u308b\u305f\u3081\uff09"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%pylab inline"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"\u5b66\u7fd2\u30c7\u30fc\u30bf\u306e\u30d7\u30ed\u30c3\u30c8"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"\n",
"def x_y_species(df, species_name):\n",
" x_array = df[df['class'] == species_name]['x'].values\n",
" y_array = df[df['class'] == species_name]['y'].values\n",
" return x_array, y_array\n",
"\n",
"df = pd.read_csv('xor_simple.csv')\n",
"x_array, y_array = x_y_species(df, 0)\n",
"plt.plot(x_array, y_array, 'bo')\n",
"\n",
"x_array, y_array = x_y_species(df, 1)\n",
"plt.plot(x_array, y_array, 'ro')\n",
"plt.xlabel('x', fontsize=20)\n",
"plt.ylabel('y', fontsize=20)\n",
"plt.axis(\"tight\", fontsize=20)\n",
"x_min, x_max = x_array.min() - 1, x_array.max() + 1\n",
"y_min, y_max = y_array.min() - 1, y_array.max() + 1\n",
"plt.xlim((x_min, x_max))\n",
"plt.ylim((y_min, y_max))\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
""
]
}
],
"prompt_number": 2
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"\u6559\u5e2b\u30c7\u30fc\u30bf\u306e\u30ed\u30fc\u30c9 \u21d2 \u5b66\u7fd2 \u21d2 \u5206\u985e"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"from sklearn import tree\n",
"\n",
"# \u6559\u5e2b\u30c7\u30fc\u30bf\u3092\u30ed\u30fc\u30c9\n",
"df = pd.read_csv('xor_simple.csv'); \n",
"data_array = df[['x', 'y']].values\n",
"class_array = df['class'].values\n",
"\n",
"# \u5b66\u7fd2\uff08\u6c7a\u5b9a\u6728\uff09\n",
"clf = tree.DecisionTreeClassifier()\n",
"clf = clf.fit(data_array, class_array)\n",
"\n",
"#\u5b66\u7fd2\u5f8c\u306b\u3001\u30c7\u30fc\u30bf\u3092\u4e0e\u3048\u3066\u5206\u985e\u3002\n",
"#\u4e0e\u3048\u3089\u308c\u305f\u6559\u5e2b\u30c7\u30fc\u30bf\u306e\u7279\u5fb4\u304b\u3089\u8003\u3048\u308b\u3068\n",
"# x=2.0, y=1.0 \u3067\u3042\u308c\u3070\u3001\u30af\u30e9\u30b9\u300c0\u300d\u306b\u5206\u985e\u3055\u308c\u308b\u306f\u305a\u3002\n",
"# x=1.0, y= -0.5\u3067\u3042\u308c\u3070\u3001\u30af\u30e9\u30b9\u300c1\u300d\u306b\u5206\u985e\u3055\u308c\u308b\u306f\u305a\u3002\n",
"result = clf.predict([[2., 1.], [1., -0.5]]) \n",
"print \"result is ... \", result\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"result is ... [0 1]\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"\u6c7a\u5b9a\u5883\u754c\u306e\u53ef\u8996\u5316"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Parameters for plot\n",
"n_classes = 2\n",
"plot_colors = \"br\"\n",
"plot_step = 0.05\n",
"\n",
"#\u30b0\u30e9\u30d5\u63cf\u753b\u6642\u306e\u8aac\u660e\u5909\u6570 x\u3001y\u306e\u6700\u5927\u5024\uff06\u6700\u5c0f\u5024\u3092\u7b97\u51fa\u3002\n",
"#\u30b0\u30e9\u30d5\u63cf\u753b\u306e\u30e1\u30c3\u30b7\u30e5\u3092\u5b9a\u7fa9\n",
"x_min, x_max = data_array[:, 0].min() - 1, data_array[:, 0].max() + 1\n",
"y_min, y_max = data_array[:, 1].min() - 1, data_array[:, 1].max() + 1\n",
"xx, yy = np.meshgrid(np.arange(x_min, x_max, plot_step),\n",
" np.arange(y_min, y_max, plot_step))\n",
"\n",
"#\u5404\u30e1\u30c3\u30b7\u30e5\u4e0a\u3067\u306e\u6c7a\u5b9a\u6728\u306b\u3088\u308b\u5206\u985e\u3092\u8a08\u7b97\n",
"Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n",
"Z = Z.reshape(xx.shape)\n",
"\n",
"#\u6c7a\u5b9a\u6728\u306b\u3088\u308b\u5206\u985e\u3092\u7b49\u9ad8\u7dda\u30d5\u30a3\u30fc\u30eb\u30c9\u30d7\u30ed\u30c3\u30c8\u3067\u30d7\u30ed\u30c3\u30c8\n",
"cs = plt.contour(xx, yy, Z, cmap=plt.cm.Paired)\n",
"plt.xlabel('x')\n",
"plt.ylabel('y')\n",
"plt.axis(\"tight\")\n",
"\n",
"#\u6559\u5e2b\u30c7\u30fc\u30bf\u3082\u91cd\u306d\u3066\u30d7\u30ed\u30c3\u30c8\n",
"for i, color in zip(range(n_classes), plot_colors):\n",
" idx = np.where(class_array == i)\n",
" plt.scatter(data_array[idx, 0], data_array[idx, 1], c=color, label=['a','b'],\n",
" cmap=plt.cm.Paired)\n",
"plt.axis(\"tight\")\n",
"\n",
"plt.show()\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nTkSuQmCC\n",
"text": [
""
]
}
],
"prompt_number": 4
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"\u6c7a\u5b9a\u6728\u306e\u4e2d\u8eab\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306edot\u30d5\u30a1\u30a4\u30eb\u306e\u51fa\u529b"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn.externals.six import StringIO\n",
"\n",
"with open(\"xor_simple.dot\", 'w') as f:\n",
" f = tree.export_graphviz(clf, out_file=f)\n",
"f.close()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
}
],
"metadata": {}
}
]
}