Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save yehjames/c7667de8aecfbd74e85a96d5615b7ebc to your computer and use it in GitHub Desktop.
Save yehjames/c7667de8aecfbd74e85a96d5615b7ebc to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn import datasets\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"target_names: ['setosa' 'versicolor' 'virginica']\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sepal length (cm)</th>\n",
" <th>petal length (cm)</th>\n",
" <th>target</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5.1</td>\n",
" <td>1.4</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4.9</td>\n",
" <td>1.4</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4.7</td>\n",
" <td>1.3</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" sepal length (cm) petal length (cm) target\n",
"0 5.1 1.4 0\n",
"1 4.9 1.4 0\n",
"2 4.7 1.3 0"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"iris = datasets.load_iris()\n",
"x = pd.DataFrame(iris['data'], columns=iris['feature_names'])\n",
"print(\"target_names: \"+str(iris['target_names']))\n",
"y = pd.DataFrame(iris['target'], columns=['target'])\n",
"iris_data = pd.concat([x,y], axis=1)\n",
"iris_data = iris_data[['sepal length (cm)','petal length (cm)','target']]\n",
"iris_data = iris_data[iris_data['target'].isin([0,1])]\n",
"iris_data.head(3)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(\n",
" iris_data[['sepal length (cm)','petal length (cm)']], iris_data[['target']], test_size=0.3, random_state=0)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.preprocessing import StandardScaler\n",
"\n",
"sc = StandardScaler()\n",
"sc.fit(X_train)\n",
"X_train_std = sc.transform(X_train)\n",
"X_test_std = sc.transform(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from sklearn.svm import SVC"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"svm = SVC(kernel='linear', probability=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
" decision_function_shape=None, degree=3, gamma='auto', kernel='linear',\n",
" max_iter=-1, probability=True, random_state=None, shrinking=True,\n",
" tol=0.001, verbose=False)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"svm.fit(X_train_std,y_train['target'].values)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,\n",
" 1, 0, 0, 0, 1, 1, 1])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"svm.predict(X_test_std)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,\n",
" 1, 0, 0, 0, 1, 1, 1])"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_test['target'].values"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n"
]
}
],
"source": [
"error = 0\n",
"for i, v in enumerate(svm.predict(X_test_std)):\n",
" if v!= y_test['target'].values[i]:\n",
" error+=1\n",
"print(error)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.95071648, 0.04928352],\n",
" [ 0.00834829, 0.99165171],\n",
" [ 0.97416484, 0.02583516],\n",
" [ 0.0072135 , 0.9927865 ],\n",
" [ 0.01837988, 0.98162012],\n",
" [ 0.12495955, 0.87504045],\n",
" [ 0.98445862, 0.01554138],\n",
" [ 0.0054071 , 0.9945929 ],\n",
" [ 0.00963859, 0.99036141],\n",
" [ 0.0170856 , 0.9829144 ],\n",
" [ 0.02616867, 0.97383133],\n",
" [ 0.03235189, 0.96764811],\n",
" [ 0.00896062, 0.99103938],\n",
" [ 0.98064356, 0.01935644],\n",
" [ 0.96297885, 0.03702115],\n",
" [ 0.94318095, 0.05681905],\n",
" [ 0.98835737, 0.01164263],\n",
" [ 0.87876769, 0.12123231],\n",
" [ 0.98068634, 0.01931366],\n",
" [ 0.95722527, 0.04277473],\n",
" [ 0.95071648, 0.04928352],\n",
" [ 0.03723464, 0.96276536],\n",
" [ 0.95068075, 0.04931925],\n",
" [ 0.03993434, 0.96006566],\n",
" [ 0.96792736, 0.03207264],\n",
" [ 0.97018494, 0.02981506],\n",
" [ 0.96295177, 0.03704823],\n",
" [ 0.02271807, 0.97728193],\n",
" [ 0.04279062, 0.95720938],\n",
" [ 0.00672467, 0.99327533]])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"svm.predict_proba(X_test_std)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from matplotlib.colors import ListedColormap\n",
"\n",
"def plot_decision_regions(X, y, classifier, test_idx=None, resolution=0.02):\n",
"\n",
" # setup marker generator and color map\n",
" markers = ('s', 'x', 'o', '^', 'v')\n",
" colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')\n",
" cmap = ListedColormap(colors[:len(np.unique(y))])\n",
"\n",
" # plot the decision surface\n",
" x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n",
" x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n",
" xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),\n",
" np.arange(x2_min, x2_max, resolution))\n",
" Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)\n",
" Z = Z.reshape(xx1.shape)\n",
" plt.contourf(xx1, xx2, Z, alpha=0.4, cmap=cmap)\n",
" plt.xlim(xx1.min(), xx1.max())\n",
" plt.ylim(xx2.min(), xx2.max())\n",
"\n",
" for idx, cl in enumerate(np.unique(y)):\n",
" plt.scatter(x=X[y == cl, 0], \n",
" y=X[y == cl, 1],\n",
" alpha=0.6, \n",
" c=cmap(idx),\n",
" edgecolor='black',\n",
" marker=markers[idx], \n",
" label=cl)\n",
"\n",
" # highlight test samples\n",
" if test_idx:\n",
" # plot all samples\n",
" if not versiontuple(np.__version__) >= versiontuple('1.9.0'):\n",
" X_test, y_test = X[list(test_idx), :], y[list(test_idx)]\n",
" warnings.warn('Please update to NumPy 1.9.0 or newer')\n",
" else:\n",
" X_test, y_test = X[test_idx, :], y[test_idx]\n",
"\n",
" plt.scatter(X_test[:, 0],\n",
" X_test[:, 1],\n",
" c='',\n",
" alpha=1.0,\n",
" edgecolor='black',\n",
" linewidths=1,\n",
" marker='o',\n",
" s=55, label='test set')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\npNdPuo3KzEVEJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoERE\nJJaUoEQTqTXfAAAI8UlEQVREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaU\noEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoERE\nJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJaUoEREJJZ6mvlkZrYH\n8M/A7kAfcKm739fMGEREpD00ewR1KfAjdz8ZuAD4XJOfX0RE2kRTR1DA3wM7ip57ssnPLyIibSKy\nBGVmFwF/OePwhe6+xsz2JZjqe+9c5xkc7COVau+lsqGh/laH0FS63s6m6+18cbnmyBKUu18PXD/z\nuJkdAfwb8D53v2uu84yPT0UQXfMMDfWzbVv3DBR1vZ1N19v5WnHNQxWON7tI4qXAN4Fz3f3hZj63\niIi0l2avQX0C6Ac+Y2YAz7v7G5ocg4iItIGmJiglIxERCau9qw9ERKRjKUGJiEgsKUGJiEgsJXK5\nXKtjEBERmUUjKBERiSUlKBERiSUlKBERiSUlKBERiSUlKBERiSUlKBERiSUlKBERiaVmN4vtOt26\nzb2ZnQWc4+7ntTqWKJhZEvg88HKCTTgvdvdftjaq6JnZCuCT7n5Kq2OJkpn1Al8BDgB2Az7q7t9r\naVARMrMU8CXAgBxwibs/0tqoNIJqhq7b5t7MPkPQub6T/36dCfS7+0rgr4BrWhxP5MzscuDLBDsS\ndLrzgS3u/krgd4HPtjieqL0ewN1/B/gg8LHWhhPo5A+QuPh74Iv5P3fLNvf3Au9sdRAROxH4TwB3\nvx84trXhNMWvgDe2Oogm+SbwofyfE0C6hbFEzt2/C/xp/scR4LkWhrOTpvgaqFHb3LeLKtd7k5md\n0oKQmml34PminzNm1uPuHftB5u7fNrMDWh1HM7j7CwBmNgR8i2BU0dHcPW1mNwBnAX/Y6nhACaqh\nGrXNfbuodL1d4reU7lSd7OTk1I3MbH/gZuDz7n5jq+NpBnd/m5ldAaw2s5e6+/ZWxqMpvogVbXN/\nnrv/R6vjkYb5CXAGgJkdD6xrbTjSSGa2BPg+cIW7f6XV8UTNzN5iZn+d/3EcyOZ/tZRGUNHTNved\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x117fb0438>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_decision_regions(X_train_std, y_train['target'].values, classifier=svm)\n",
"plt.xlabel('sepal length [standardized]')\n",
"plt.ylabel('petal width [standardized]')\n",
"plt.legend(loc='upper left')\n",
"plt.tight_layout()\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.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment