From 9011f9c47c4c2e1366732c1c1845e7b51eb4ae46 Mon Sep 17 00:00:00 2001 From: LIU-HONGYANG <1664698982@qq.com> Date: Wed, 1 Jan 2020 14:53:31 +0800 Subject: [PATCH] Logistic regression --- .../Sample data for Logistic Regression.csv | 28 ++ .../logistic regression.ipynb | 248 ++++++++++++++++++ 2 files changed, 276 insertions(+) create mode 100644 project/Logistic regression/Sample data for Logistic Regression.csv create mode 100644 project/Logistic regression/logistic regression.ipynb diff --git a/project/Logistic regression/Sample data for Logistic Regression.csv b/project/Logistic regression/Sample data for Logistic Regression.csv new file mode 100644 index 0000000..e278ef9 --- /dev/null +++ b/project/Logistic regression/Sample data for Logistic Regression.csv @@ -0,0 +1,28 @@ +age,bought_insurance +22,0 +25,0 +47,1 +52,0 +46,1 +56,1 +55,0 +60,1 +62,1 +61,1 +18,0 +28,0 +27,0 +29,0 +49,1 +55,1 +25,1 +58,1 +19,0 +18,0 +21,0 +26,0 +40,1 +45,1 +50,1 +54,1 +23,0 \ No newline at end of file diff --git a/project/Logistic regression/logistic regression.ipynb b/project/Logistic regression/logistic regression.ipynb new file mode 100644 index 0000000..1d6bf7f --- /dev/null +++ b/project/Logistic regression/logistic regression.ipynb @@ -0,0 +1,248 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Implementation of Logisric regression" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from matplotlib import pyplot as plt\n", + "%matplotlib inline\n", + "df = pd.read_csv(\"Sample data for Logistic Regression.csv\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "X_train, X_test, y_train, y_test = train_test_split(df[[\"age\"]],df.bought_insurance,train_size=0.9)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
age
1018
2623
862
\n", + "
" + ], + "text/plain": [ + " age\n", + "10 18\n", + "26 23\n", + "8 62" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_test" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "model = LogisticRegression()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/liuhongyang/anaconda3/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", + " FutureWarning)\n" + ] + }, + { + "data": { + "text/plain": [ + "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", + " intercept_scaling=1, l1_ratio=None, max_iter=100,\n", + " multi_class='warn', n_jobs=None, penalty='l2',\n", + " random_state=None, solver='warn', tol=0.0001, verbose=0,\n", + " warm_start=False)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.fit(X_train,y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df.age,df.bought_insurance,marker=\"+\",color=\"red\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "y_predicted = model.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.65452175, 0.34547825],\n", + " [0.59563116, 0.40436884],\n", + " [0.17138869, 0.82861131]])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.predict_proba(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.score(X_test,y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}