Skip to content

Instantly share code, notes, and snippets.

@leggitta
Created August 31, 2015 16:50
Show Gist options
  • Save leggitta/5e8bf3cba418e3c584b2 to your computer and use it in GitHub Desktop.
Save leggitta/5e8bf3cba418e3c584b2 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Intro to Machine Learning"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"# import modules\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"from sklearn.svm import SVC\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.cross_validation import StratifiedKFold\n",
"from sklearn.metrics import roc_auc_score\n",
"from scipy import stats"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(-2.5885850066931018, 3.1376243517435918)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ed86710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# fix the random seed (reproducable)\n",
"np.random.seed(29)\n",
"n = 40 # number of trials\n",
"n_switch = 20 # number of 2nd group\n",
"\n",
"# generate some random data\n",
"x = np.random.randn(n, 2)\n",
"y = np.zeros(n)\n",
"\n",
"# make two separable classes\n",
"x[n_switch:, 0] += 2\n",
"y[n_switch:] += 1\n",
"\n",
"# standardize\n",
"x = StandardScaler().fit_transform(x)\n",
"\n",
"# set the x and y limits\n",
"xmin = x[:, 0].min() - 0.5\n",
"xmax = x[:, 0].max() + 0.5\n",
"ymin = x[:, 1].min() - 0.5\n",
"ymax = x[:, 1].max() + 0.5\n",
"\n",
"# plot the random data\n",
"ax = plt.axes()\n",
"ax.plot(x[:n_switch, 0], x[:n_switch, 1], 'bo')\n",
"ax.plot(x[n_switch:, 0], x[n_switch:, 1], 'ro')\n",
"ax.set_xlim((xmin, xmax))\n",
"ax.set_ylim((ymin, ymax))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Support Vector Machine\n",
"- Using a linear kernel"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,\n",
" kernel='linear', max_iter=-1, probability=True, random_state=None,\n",
" shrinking=True, tol=0.001, verbose=False)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# build and fit a classifier\n",
"clf = SVC(probability=True, kernel='linear')\n",
"clf.fit(x, y)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(-2.5885850066931018, 3.1376243517435918)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cf36b50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot predictions as an image\n",
"xx, yy = np.meshgrid(np.arange(xmin, xmax, 0.1),\n",
" np.arange(ymin, ymax, 0.1))\n",
"im = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n",
"im = im.reshape(xx.shape)\n",
"\n",
"ax = plt.axes()\n",
"ax.imshow(im, origin='lower', alpha=0.7, aspect='auto',\n",
" extent=[xmin, xmax, ymin, ymax], cmap='seismic')\n",
"\n",
"# plot the random data\n",
"ax.plot(x[:n_switch, 0], x[:n_switch, 1], 'bo')\n",
"ax.plot(x[n_switch:, 0], x[n_switch:, 1], 'ro')\n",
"ax.set_xlim((xmin, xmax))\n",
"ax.set_ylim((ymin, ymax))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Classification Probability"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10f637d10>]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x103fe8950>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot the prediction probability\n",
"im = clf.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]\n",
"im = im.reshape(xx.shape)\n",
"\n",
"ax = plt.axes()\n",
"ax.imshow(im, origin='lower', alpha=0.7, aspect='auto',\n",
" extent=[xmin, xmax, ymin, ymax], cmap='seismic', vmin=0, vmax=1)\n",
"\n",
"# plot the random data\n",
"ax.plot(x[:n_switch, 0], x[:n_switch, 1], 'bo')\n",
"ax.plot(x[n_switch:, 0], x[n_switch:, 1], 'ro')\n",
"ax.set_xlim((xmin, xmax))\n",
"ax.set_ylim((ymin, ymax))\n",
"ax.plot([xmin, xmax], [(clf.intercept_-clf.coef_[0, 0]*xmin)/clf.coef_[0, 1],\n",
" (clf.intercept_-clf.coef_[0, 0]*xmax)/clf.coef_[0, 1]], 'k--')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(1, 2)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf.coef_.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Scoring and Cross Validation"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# perform cross validation\n",
"skf = StratifiedKFold(y, 4)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nXRERD/1/iawAMsl0z/IAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10f650c90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure()\n",
"\n",
"y_pred = np.zeros(y.shape)\n",
"\n",
"for n, fold in enumerate(skf):\n",
" train, test = fold\n",
" ax = fig.add_subplot(2, 2, n+1)\n",
" \n",
" # fit the training data\n",
" clf.fit(x[train], y[train])\n",
" \n",
" # score the training data\n",
" score = clf.score(x[test], y[test])\n",
" \n",
" # update predicted scores\n",
" y_pred[test] = clf.predict_proba(x[test])[:, 1]\n",
" \n",
" # plot predictions as an image\n",
" xx, yy = np.meshgrid(np.arange(xmin, xmax, 0.1),\n",
" np.arange(ymin, ymax, 0.1))\n",
" im = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n",
" im = im.reshape(xx.shape)\n",
" ax.imshow(im, origin='lower', alpha=0.7, aspect='auto',\n",
" extent=[xmin, xmax, ymin, ymax])\n",
" # plot the test data\n",
" ax.plot(x[test][y[test] == 0, 0], x[test][y[test] == 0, 1], 'bo')\n",
" ax.plot(x[test][y[test] == 1, 0], x[test][y[test] == 1, 1], 'ro')\n",
" ax.set_xlim((xmin, xmax))\n",
" ax.set_ylim((ymin, ymax))\n",
" ax.set_xticks([])\n",
" ax.set_yticks([])\n",
" ax.set_title(score)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ROC AUC\n",
"- Should be identical to accuracy for balanced problems \n",
"- Good for unbalanced problems \n",
"- Uses the prediction probability"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.79249999999999998"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# compute the auc score\n",
"roc_auc_score(y, y_pred)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mann Whitney U\n",
"- Non-parametric t-test?\n",
"- Compare the probabilities of each class?"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(83.0, 0.00081262877312603262)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# perform a mann-whitney u test to evaluate significance\n",
"stats.mannwhitneyu(y_pred[y == 0], y_pred[y == 1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Wilcoxon Signed-Rank Test\n",
"- Non-parametric paired t-test?\n",
"- Compare the average probability of each class per participant?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3D Example"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(-2.3041666790298914, 2.5557836150631008)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\no0uhUCgK8n82/rzhg4foXwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1124aa510>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# generate some random data\n",
"x = np.random.randn(40, 3)\n",
"y = np.zeros(40)\n",
"\n",
"# make two separable classes\n",
"x[n_switch:, 2] += 2\n",
"x[n_switch:, 1] += 1\n",
"y[n_switch:] += 1\n",
"\n",
"# standardize\n",
"x = StandardScaler().fit_transform(x)\n",
"\n",
"# fit the data\n",
"clf.fit(x, y)\n",
"\n",
"# set the x and y limits\n",
"xmin = x[:, 0].min() - 0.5\n",
"xmax = x[:, 0].max() + 0.5\n",
"ymin = x[:, 1].min() - 0.5\n",
"ymax = x[:, 1].max() + 0.5\n",
"zmin = x[:, 2].min() - 0.5\n",
"zmax = x[:, 2].max() + 0.5\n",
"\n",
"# plot the random data\n",
"ax = plt.axes(projection='3d')\n",
"ax.scatter(x[:n_switch, 0], x[:n_switch, 1], zs=x[:n_switch, 2], c='b')\n",
"ax.scatter(x[n_switch:, 0], x[n_switch:, 1], zs=x[n_switch:, 2], c='r')\n",
"\n",
"z = lambda x, y : (clf.intercept_ - clf.coef_[0, 0]*x - clf.coef_[0, 1]*y) / clf.coef_[0, 2]\n",
"\n",
"ax.plot_surface(xx, yy, z(xx, yy), color='k', alpha=0.2)\n",
"\n",
"ax.set_xlim((xmin, xmax))\n",
"ax.set_ylim((ymin, ymax))\n",
"ax.set_zlim((zmin, zmax))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment