{ "cells": [ { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy on the training subset: 1.000\n", "Accuracy on the test subset: 0.972\n" ] } ], "source": [ "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.datasets import load_breast_cancer\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "%matplotlib inline\n", "\n", "cancer = load_breast_cancer()\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, random_state=0)\n", "\n", "forest = RandomForestClassifier(n_estimators=100, random_state=0)\n", "forest.fit(X_train, y_train)\n", "\n", "print('Accuracy on the training subset: {:.3f}'.format(forest.score(X_train, y_train)))\n", "print('Accuracy on the test subset: {:.3f}'.format(forest.score(X_test, y_test)))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n_features = cancer.data.shape[1]\n", "plt.barh(range(n_features), forest.feature_importances_, align='center')\n", "plt.yticks(np.arange(n_features), cancer.feature_names)\n", "plt.xlabel('Feature Importance')\n", "plt.ylabel('Feature')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "### Potential Advantages of Random Forests\n", "\n", " - powerful and widely implemented\n", " - perform well with default settings\n", " - dont require scaling of the data\n", " - randomization makes them better than single DT\n", " \n", "### Parameters to Tune\n", " \n", " - n_jobs - number of cores to use for training (n_jobs=-1, for all cores)\n", " - n_estimators - how many trees to use (more is always better)\n", " - max_depth, for pre-pruning\n", " - max_features, for randomization\n", " - max_features = sqrt(n_features), for classification\n", " - max_features = log2(n_features), for regression\n", " - etc.\n", " \n", "### Potential Disadvantages of Random Forests\n", "\n", "- not so good performance on very high dimensional and sparse data (text data)\n", "- large datasets require more resources for training (time, CPUs, etc).\n", "- cannot be visualized as well as single DT" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "deletable": true, "editable": 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.5.0" } }, "nbformat": 4, "nbformat_minor": 2 }