Files
FYS-STK4155/doc/Programs/JupyterFiles/Examples/Scikit-Learn Website Examples/Make Moons.ipynb
T
2018-09-14 05:36:58 +02:00

121 lines
23 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 2000x1000 with 6 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy on test set: 0.880000\n"
]
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import mglearn\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.datasets import make_moons\n",
"import numpy as np\n",
"X, y = make_moons(n_samples=100, noise=0.25, random_state=3)\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=42)\n",
"forest = RandomForestClassifier(n_estimators=5, random_state=2)\n",
"forest.fit(X_train, y_train)\n",
"RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
" max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
" min_samples_leaf=1, min_samples_split=2,\n",
" min_weight_fraction_leaf=0.0, n_estimators=5, n_jobs=1,\n",
" oob_score=False, random_state=2, verbose=0, warm_start=False)\n",
"\n",
"fig, axes = plt.subplots(2, 3, figsize=(20, 10))\n",
"for i, (ax, tree) in enumerate(zip(axes.ravel(), forest.estimators_)):\n",
" ax.set_title(\"tree %d\" % i)\n",
" mglearn.plots.plot_tree_partition(X_train, y_train, tree, ax=ax)\n",
"mglearn.plots.plot_2d_separator(forest, X_train, fill=True, ax=axes[-1, -1], alpha=.4)\n",
"axes[-1, -1].set_title(\"random forest\")\n",
"plt.scatter(X_train[:, 0], X_train[:, 1], c=np.array(['r', 'b'])[y_train], s=60)\n",
"plt.show()\n",
"\n",
"forest = RandomForestClassifier(n_estimators=100, random_state=0)\n",
"forest.fit(X_train, y_train)\n",
"print(\"accuracy on test set: %f\" % forest.score(X_test, y_test))\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.7/site-packages/sklearn/neural_network/multilayer_perceptron.py:564: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
" % self.max_iter, ConvergenceWarning)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn.neural_network import MLPClassifier\n",
"mlp = MLPClassifier(hidden_layer_sizes=[100], activation='relu', random_state=0, learning_rate='constant')\n",
"mlp.fit(X_train, y_train)\n",
"mglearn.plots.plot_2d_separator(mlp, X_train, fill=True, alpha=.3)\n",
"plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, s=60, cmap=mglearn.cm2)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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.7.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}