Skip to content

Commit

Permalink
Logistic regression
Browse files Browse the repository at this point in the history
  • Loading branch information
HungYann committed Jan 1, 2020
1 parent 432847e commit 9011f9c
Show file tree
Hide file tree
Showing 2 changed files with 276 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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
248 changes: 248 additions & 0 deletions project/Logistic regression/logistic regression.ipynb
Original file line number Diff line number Diff line change
@@ -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": [
"<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>age</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>23</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>62</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<matplotlib.collections.PathCollection at 0x1a185392b0>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"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
}

0 comments on commit 9011f9c

Please sign in to comment.