Skip to content

Instantly share code, notes, and snippets.

@kiwamizamurai
Last active July 27, 2019 10:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kiwamizamurai/1dd1cab37605843c4dad8a419303d63a to your computer and use it in GitHub Desktop.
Save kiwamizamurai/1dd1cab37605843c4dad8a419303d63a to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"kernelspec": {
"display_name": "Python [conda root]",
"language": "python",
"name": "conda-root-py"
},
"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.14"
},
"colab": {
"name": "LOGISTIC_01.ipynb",
"version": "0.3.2",
"provenance": [],
"include_colab_link": true
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/kiwamizamurai/f464781cdd914daf2dad38e70337d78c/logistic_01.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "W9AuWEgf5wKh",
"colab_type": "text"
},
"source": [
"# Logistic regression\n",
"\n",
"#### data\n",
"https://archive.ics.uci.edu/ml/datasets/Occupancy+Detection+"
]
},
{
"cell_type": "code",
"metadata": {
"scrolled": true,
"id": "Pkgl8OV15wKj",
"colab_type": "code",
"colab": {}
},
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "wdQJXkGO5wKp",
"colab_type": "code",
"outputId": "34886db2-e8e1-49ca-a2ce-10789340caf3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 166
}
},
"source": [
"!ls"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"datatest2.txt datatest.txt datatraining.txt sample_data\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"scrolled": true,
"id": "53xSoVan5wKv",
"colab_type": "code",
"colab": {}
},
"source": [
"dataset1 = pd.read_csv(\"datatest.txt\")\n",
"dataset2 = pd.read_csv(\"datatraining.txt\")\n",
"dataset3 = pd.read_csv(\"datatest2.txt\")"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "sT1oQ_g26niH",
"colab_type": "code",
"outputId": "91b4c84a-cadd-453e-fbef-b6272cc892b5",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 241
}
},
"source": [
"dataset1.head()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>Temperature</th>\n",
" <th>Humidity</th>\n",
" <th>Light</th>\n",
" <th>CO2</th>\n",
" <th>HumidityRatio</th>\n",
" <th>Occupancy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>140</th>\n",
" <td>2015-02-02 14:19:00</td>\n",
" <td>23.7000</td>\n",
" <td>26.272</td>\n",
" <td>585.200000</td>\n",
" <td>749.200000</td>\n",
" <td>0.004764</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>141</th>\n",
" <td>2015-02-02 14:19:59</td>\n",
" <td>23.7180</td>\n",
" <td>26.290</td>\n",
" <td>578.400000</td>\n",
" <td>760.400000</td>\n",
" <td>0.004773</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>142</th>\n",
" <td>2015-02-02 14:21:00</td>\n",
" <td>23.7300</td>\n",
" <td>26.230</td>\n",
" <td>572.666667</td>\n",
" <td>769.666667</td>\n",
" <td>0.004765</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>143</th>\n",
" <td>2015-02-02 14:22:00</td>\n",
" <td>23.7225</td>\n",
" <td>26.125</td>\n",
" <td>493.750000</td>\n",
" <td>774.750000</td>\n",
" <td>0.004744</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>144</th>\n",
" <td>2015-02-02 14:23:00</td>\n",
" <td>23.7540</td>\n",
" <td>26.200</td>\n",
" <td>488.600000</td>\n",
" <td>779.000000</td>\n",
" <td>0.004767</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date Temperature ... HumidityRatio Occupancy\n",
"140 2015-02-02 14:19:00 23.7000 ... 0.004764 1\n",
"141 2015-02-02 14:19:59 23.7180 ... 0.004773 1\n",
"142 2015-02-02 14:21:00 23.7300 ... 0.004765 1\n",
"143 2015-02-02 14:22:00 23.7225 ... 0.004744 1\n",
"144 2015-02-02 14:23:00 23.7540 ... 0.004767 1\n",
"\n",
"[5 rows x 7 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 62
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "DOrcc2786qAl",
"colab_type": "code",
"outputId": "a98b0923-9f7c-4345-af45-4054d394098f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 241
}
},
"source": [
"dataset2.head()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>Temperature</th>\n",
" <th>Humidity</th>\n",
" <th>Light</th>\n",
" <th>CO2</th>\n",
" <th>HumidityRatio</th>\n",
" <th>Occupancy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2015-02-04 17:51:00</td>\n",
" <td>23.18</td>\n",
" <td>27.2720</td>\n",
" <td>426.0</td>\n",
" <td>721.25</td>\n",
" <td>0.004793</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2015-02-04 17:51:59</td>\n",
" <td>23.15</td>\n",
" <td>27.2675</td>\n",
" <td>429.5</td>\n",
" <td>714.00</td>\n",
" <td>0.004783</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2015-02-04 17:53:00</td>\n",
" <td>23.15</td>\n",
" <td>27.2450</td>\n",
" <td>426.0</td>\n",
" <td>713.50</td>\n",
" <td>0.004779</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2015-02-04 17:54:00</td>\n",
" <td>23.15</td>\n",
" <td>27.2000</td>\n",
" <td>426.0</td>\n",
" <td>708.25</td>\n",
" <td>0.004772</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2015-02-04 17:55:00</td>\n",
" <td>23.10</td>\n",
" <td>27.2000</td>\n",
" <td>426.0</td>\n",
" <td>704.50</td>\n",
" <td>0.004757</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date Temperature Humidity ... CO2 HumidityRatio Occupancy\n",
"1 2015-02-04 17:51:00 23.18 27.2720 ... 721.25 0.004793 1\n",
"2 2015-02-04 17:51:59 23.15 27.2675 ... 714.00 0.004783 1\n",
"3 2015-02-04 17:53:00 23.15 27.2450 ... 713.50 0.004779 1\n",
"4 2015-02-04 17:54:00 23.15 27.2000 ... 708.25 0.004772 1\n",
"5 2015-02-04 17:55:00 23.10 27.2000 ... 704.50 0.004757 1\n",
"\n",
"[5 rows x 7 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 63
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "FxPSP0Py6sFf",
"colab_type": "code",
"outputId": "c08e09a9-6448-4db9-dfe2-a423d7b50d17",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 241
}
},
"source": [
"dataset3.head()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>Temperature</th>\n",
" <th>Humidity</th>\n",
" <th>Light</th>\n",
" <th>CO2</th>\n",
" <th>HumidityRatio</th>\n",
" <th>Occupancy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2015-02-11 14:48:00</td>\n",
" <td>21.7600</td>\n",
" <td>31.133333</td>\n",
" <td>437.333333</td>\n",
" <td>1029.666667</td>\n",
" <td>0.005021</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2015-02-11 14:49:00</td>\n",
" <td>21.7900</td>\n",
" <td>31.000000</td>\n",
" <td>437.333333</td>\n",
" <td>1000.000000</td>\n",
" <td>0.005009</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2015-02-11 14:50:00</td>\n",
" <td>21.7675</td>\n",
" <td>31.122500</td>\n",
" <td>434.000000</td>\n",
" <td>1003.750000</td>\n",
" <td>0.005022</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2015-02-11 14:51:00</td>\n",
" <td>21.7675</td>\n",
" <td>31.122500</td>\n",
" <td>439.000000</td>\n",
" <td>1009.500000</td>\n",
" <td>0.005022</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2015-02-11 14:51:59</td>\n",
" <td>21.7900</td>\n",
" <td>31.133333</td>\n",
" <td>437.333333</td>\n",
" <td>1005.666667</td>\n",
" <td>0.005030</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" date Temperature ... HumidityRatio Occupancy\n",
"1 2015-02-11 14:48:00 21.7600 ... 0.005021 1\n",
"2 2015-02-11 14:49:00 21.7900 ... 0.005009 1\n",
"3 2015-02-11 14:50:00 21.7675 ... 0.005022 1\n",
"4 2015-02-11 14:51:00 21.7675 ... 0.005022 1\n",
"5 2015-02-11 14:51:59 21.7900 ... 0.005030 1\n",
"\n",
"[5 rows x 7 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 64
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "KmCCBhYQ5wK8",
"colab_type": "code",
"colab": {}
},
"source": [
"class Logisticr():\n",
"\n",
" def __init__(self, X, y, alg, eta, w):\n",
" self.X = X\n",
" self.y = y\n",
" self.alg = alg\n",
" self.eta = eta\n",
" self.w = w\n",
" self.m, self.n = np.shape(X)\n",
"\n",
" def sigFunc(self, z):\n",
" return 1.0 / (1.0 + np.exp( -z ))\n",
"\n",
" def decide(self, x):\n",
" return np.where(x >= 0.5, 1, 0)\n",
"\n",
" def costfunc(self, w, X, y):\n",
"\n",
" w = w.reshape((self.n,1))\n",
" z = X * w\n",
" phi =self.sigFunc(z)\n",
"\n",
" # calculating the cost function\n",
" part1 = np.multiply(y, np.log(phi))\n",
" part2 = np.multiply((1 - y), np.log(1 - phi))\n",
"\n",
" J = (-part1 - part2).sum()/self.m\n",
"\n",
" # calculating the gradient\n",
" grad = X.T * (phi - y) / self.m\n",
" \n",
" return J, grad\n",
"\n",
" def graddescent(self, maxiter):\n",
" self.J = []\n",
" self.epoch = []\n",
" for i in range(0, maxiter):\n",
" J, grad = self.costfunc(self.w, self.X, self.y)\n",
" self.J.append(J)\n",
" self.epoch.append(i)\n",
" self.w = self.w - self.eta*grad\n",
"\n",
" return self.w\n",
"\n",
" def fit(self):\n",
"\n",
"\n",
" if self.alg == 0:\n",
" _maxiter = 100000\n",
" self.w = self.graddescent(_maxiter)\n",
" else:\n",
" Result = op.minimize(fun = self.costfunc,\n",
" x0 = self.w,\n",
" args = (self.X, self.y),\n",
" method = 'TNC',\n",
" jac = True);\n",
"\n",
" self.w = Result.x\n",
" self.w = np.matrix(self.w).T\n",
"\n",
" print(\"Found Solution:\")\n",
" print(self.w)\n",
"\n",
" z = self.X * self.w\n",
" phi = self.sigFunc(z)\n",
" correctAnswer = np.where(np.array(self.y == self.decide(phi)) == True, 1, 0)\n",
"\n",
" accuracy = float(sum(correctAnswer)) / len(correctAnswer)\n",
" \n",
" print(\"Train Accuracy: %f\" %accuracy)\n",
"\n",
" def plot(self):\n",
"\n",
" if self.n == 3:\n",
" ind_1 = np.where(self.y == 1)\n",
" ind_0 = np.where(self.y == 0)\n",
"\n",
" x1_1 = self.X[:, [1]].min()\n",
" x1_2 = self.X[:, [1]].max()\n",
"\n",
" x2_1 = -(self.w[0, 0] + self.w[1, 0]*x1_1)/self.w[2, 0]\n",
" x2_2 = -(self.w[0, 0] + self.w[1, 0]*x1_2)/self.w[2, 0]\n",
"\n",
" plt.plot(self.X[ind_1, [1]], self.X[ind_1, [2]], \"bo\", markersize=3)\n",
" plt.plot(self.X[ind_0, [1]], self.X[ind_0, [2]], \"ro\", markersize=3)\n",
"\n",
" plt.plot([x1_1, x1_2], [x2_1, x2_2], \"g-\")\n",
"\n",
" plt.xlabel(\"Feature 1\")\n",
" plt.ylabel(\"Feature 2\")\n",
" plt.title(\"Decision boundary\")\n",
" plt.show()\n",
" \n",
" def lplot(self):\n",
" plt.plot(self.epoch, self.J)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "9Jem6tRb5wLA",
"colab_type": "code",
"outputId": "72943bbf-3a08-4d9d-f641-f51a6621eec9",
"colab": {}
},
"source": [
"_X, _y = dataset1.iloc[:,1:3], dataset1.iloc[:,6]\n",
"\n",
"_m = np.shape(_X)[0]\n",
"\n",
"# add a column of 1\n",
"_X = np.hstack((np.matrix(np.ones((_m, 1))),_X))\n",
"_y = np.matrix(_y).reshape(_y.shape[0],1)\n",
"\n",
"_alg = 0\n",
"\n",
"_eta = 0.001\n",
"\n",
"_n= np.shape(_X)[1]\n",
"\n",
"_w = np.matrix(np.zeros((_n, 1)))\n",
"\n",
"# creating an instance of the Logisticr \n",
"lr = Logisticr(_X, _y, _alg, _eta, _w);\n",
"lr.fit()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Number of Features: 3\n",
"Found Solution:\n",
"[[-1.39917176]\n",
" [-0.464796 ]\n",
" [ 0.42665554]]\n",
"Train Accuracy: 0.703189\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "M0qC6Dqz5wLB",
"colab_type": "code",
"outputId": "7c2ee458-ef8b-439b-8fd2-47eacd136cbc",
"colab": {}
},
"source": [
"lr.lplot()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1149ab310>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "4iRBcNfa5wLF",
"colab_type": "code",
"outputId": "bfc2612c-6a24-47cb-86e6-cf907c53d7d3",
"colab": {}
},
"source": [
"_X, _y = dataset1.iloc[:,1:6], dataset1.iloc[:,6]\n",
"\n",
"_m = np.shape(_X)[0]\n",
"\n",
"_X = np.hstack((np.matrix(np.ones((_m, 1))),_X))\n",
"_y = np.matrix(_y).reshape(_y.shape[0],1)\n",
"\n",
"_alg = 0\n",
"\n",
"_eta = 0.001\n",
"\n",
"_n= np.shape(_X)[1]\n",
"\n",
"_w = np.matrix(np.zeros((_n, 1)))\n",
" \n",
"lr = Logisticr(_X, _y, _alg, _eta, _w);\n",
"lr.fit()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Number of Features: 6\n"
],
"name": "stdout"
},
{
"output_type": "stream",
"text": [
"anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:31: RuntimeWarning: divide by zero encountered in log\n",
"anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:31: RuntimeWarning: invalid value encountered in multiply\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"Found Solution:\n",
"[[-1.61062034e-01]\n",
" [-3.85343233e+00]\n",
" [-1.71831130e+00]\n",
" [ 2.76715798e-01]\n",
" [ 1.03495925e-01]\n",
" [-3.16666255e-04]]\n",
"Train Accuracy: 0.970732\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "K8QAcsVN5wLG",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 0,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment