Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
machine-learning-services
Manage
Activity
Members
Plan
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
KI_LAB
machine-learning-services
Commits
eed5e315
Commit
eed5e315
authored
Jun 26, 2024
by
Konrad Firley
Browse files
Options
Downloads
Patches
Plain Diff
Delete notebook_2.ipynb -> Not needed
parent
62e255fa
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
Insurance/Insurance Fraud detection/notebook_2.ipynb
+0
-1503
0 additions, 1503 deletions
Insurance/Insurance Fraud detection/notebook_2.ipynb
with
0 additions
and
1503 deletions
Insurance/Insurance Fraud detection/notebook_2.ipynb
deleted
100644 → 0
+
0
−
1503
View file @
62e255fa
{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"id": "58fa7892",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# 4. Modellierung"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "409bf0ce",
"metadata": {},
"source": [
"## 4.1 Import von relevanten Modulen"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ce52edf1",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.metrics import confusion_matrix, classification_report, accuracy_score, precision_score, recall_score\n",
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.svm import SVC\n",
"\n",
"sns.set()\n",
"\n",
"%matplotlib inline"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "2e9db144",
"metadata": {},
"source": [
"## 4.2 Daten einlesen"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "83961ee0",
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv('dataset_dummies.csv') # file is generated in notebook_1"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "72081129",
"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>policy_csl_250/500</th>\n",
" <th>policy_csl_500/1000</th>\n",
" <th>insured_sex_MALE</th>\n",
" <th>insured_education_level_College</th>\n",
" <th>insured_education_level_High School</th>\n",
" <th>insured_education_level_JD</th>\n",
" <th>insured_education_level_MD</th>\n",
" <th>insured_education_level_Masters</th>\n",
" <th>insured_education_level_PhD</th>\n",
" <th>insured_occupation_armed-forces</th>\n",
" <th>...</th>\n",
" <th>capital-gains</th>\n",
" <th>capital-loss</th>\n",
" <th>number_of_vehicles_involved</th>\n",
" <th>bodily_injuries</th>\n",
" <th>witnesses</th>\n",
" <th>injury_claim</th>\n",
" <th>property_claim</th>\n",
" <th>vehicle_claim</th>\n",
" <th>fraud_reported</th>\n",
" <th>pct_paid_insurance</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>53300</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>6510</td>\n",
" <td>13020</td>\n",
" <td>52080</td>\n",
" <td>1</td>\n",
" <td>0.986035</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>780</td>\n",
" <td>780</td>\n",
" <td>3510</td>\n",
" <td>1</td>\n",
" <td>0.605523</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>35100</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>7700</td>\n",
" <td>3850</td>\n",
" <td>23100</td>\n",
" <td>0</td>\n",
" <td>0.942280</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>48900</td>\n",
" <td>-62400</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>6340</td>\n",
" <td>6340</td>\n",
" <td>50720</td>\n",
" <td>1</td>\n",
" <td>0.968454</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>66000</td>\n",
" <td>-46000</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1300</td>\n",
" <td>650</td>\n",
" <td>4550</td>\n",
" <td>0</td>\n",
" <td>0.846154</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 74 columns</p>\n",
"</div>"
],
"text/plain": [
" policy_csl_250/500 policy_csl_500/1000 insured_sex_MALE \\\n",
"0 1 0 1 \n",
"1 1 0 1 \n",
"2 0 0 0 \n",
"3 1 0 0 \n",
"4 0 1 1 \n",
"\n",
" insured_education_level_College insured_education_level_High School \\\n",
"0 0 0 \n",
"1 0 0 \n",
"2 0 0 \n",
"3 0 0 \n",
"4 0 0 \n",
"\n",
" insured_education_level_JD insured_education_level_MD \\\n",
"0 0 1 \n",
"1 0 1 \n",
"2 0 0 \n",
"3 0 0 \n",
"4 0 0 \n",
"\n",
" insured_education_level_Masters insured_education_level_PhD \\\n",
"0 0 0 \n",
"1 0 0 \n",
"2 0 1 \n",
"3 0 1 \n",
"4 0 0 \n",
"\n",
" insured_occupation_armed-forces ... capital-gains capital-loss \\\n",
"0 0 ... 53300 0 \n",
"1 0 ... 0 0 \n",
"2 0 ... 35100 0 \n",
"3 1 ... 48900 -62400 \n",
"4 0 ... 66000 -46000 \n",
"\n",
" number_of_vehicles_involved bodily_injuries witnesses injury_claim \\\n",
"0 1 1 2 6510 \n",
"1 1 0 0 780 \n",
"2 3 2 3 7700 \n",
"3 1 1 2 6340 \n",
"4 1 0 1 1300 \n",
"\n",
" property_claim vehicle_claim fraud_reported pct_paid_insurance \n",
"0 13020 52080 1 0.986035 \n",
"1 780 3510 1 0.605523 \n",
"2 3850 23100 0 0.942280 \n",
"3 6340 50720 1 0.968454 \n",
"4 650 4550 0 0.846154 \n",
"\n",
"[5 rows x 74 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.head()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "c139e7ce",
"metadata": {},
"source": [
"## 4.3 Datenvorbereitung für die Modellierung"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "a5c7e329",
"metadata": {},
"outputs": [],
"source": [
"target = data.fraud_reported\n",
"features = data.drop('fraud_reported', axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "bf93a421",
"metadata": {},
"outputs": [],
"source": [
"# Split data in training and test datasets\n",
"x_train, x_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=365)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "92201392",
"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>policy_csl_250/500</th>\n",
" <th>policy_csl_500/1000</th>\n",
" <th>insured_sex_MALE</th>\n",
" <th>insured_education_level_College</th>\n",
" <th>insured_education_level_High School</th>\n",
" <th>insured_education_level_JD</th>\n",
" <th>insured_education_level_MD</th>\n",
" <th>insured_education_level_Masters</th>\n",
" <th>insured_education_level_PhD</th>\n",
" <th>insured_occupation_armed-forces</th>\n",
" <th>...</th>\n",
" <th>umbrella_limit</th>\n",
" <th>capital-gains</th>\n",
" <th>capital-loss</th>\n",
" <th>number_of_vehicles_involved</th>\n",
" <th>bodily_injuries</th>\n",
" <th>witnesses</th>\n",
" <th>injury_claim</th>\n",
" <th>property_claim</th>\n",
" <th>vehicle_claim</th>\n",
" <th>pct_paid_insurance</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>908</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>52600</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>500</td>\n",
" <td>500</td>\n",
" <td>4500</td>\n",
" <td>0.636364</td>\n",
" </tr>\n",
" <tr>\n",
" <th>591</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>7270</td>\n",
" <td>21810</td>\n",
" <td>50890</td>\n",
" <td>0.993748</td>\n",
" </tr>\n",
" <tr>\n",
" <th>836</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>52100</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>21330</td>\n",
" <td>7110</td>\n",
" <td>56880</td>\n",
" <td>0.988279</td>\n",
" </tr>\n",
" <tr>\n",
" <th>145</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>-57900</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>7640</td>\n",
" <td>15280</td>\n",
" <td>76400</td>\n",
" <td>0.994966</td>\n",
" </tr>\n",
" <tr>\n",
" <th>606</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>-66200</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>5750</td>\n",
" <td>5750</td>\n",
" <td>46000</td>\n",
" <td>0.982609</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 73 columns</p>\n",
"</div>"
],
"text/plain": [
" policy_csl_250/500 policy_csl_500/1000 insured_sex_MALE \\\n",
"908 1 0 1 \n",
"591 0 1 0 \n",
"836 0 0 0 \n",
"145 0 0 0 \n",
"606 0 1 0 \n",
"\n",
" insured_education_level_College insured_education_level_High School \\\n",
"908 0 0 \n",
"591 0 0 \n",
"836 0 0 \n",
"145 0 0 \n",
"606 0 0 \n",
"\n",
" insured_education_level_JD insured_education_level_MD \\\n",
"908 0 1 \n",
"591 0 0 \n",
"836 1 0 \n",
"145 0 0 \n",
"606 0 0 \n",
"\n",
" insured_education_level_Masters insured_education_level_PhD \\\n",
"908 0 0 \n",
"591 0 0 \n",
"836 0 0 \n",
"145 0 0 \n",
"606 0 0 \n",
"\n",
" insured_occupation_armed-forces ... umbrella_limit capital-gains \\\n",
"908 0 ... 0 52600 \n",
"591 1 ... 0 0 \n",
"836 0 ... 0 52100 \n",
"145 0 ... 0 0 \n",
"606 0 ... 0 0 \n",
"\n",
" capital-loss number_of_vehicles_involved bodily_injuries witnesses \\\n",
"908 0 1 1 0 \n",
"591 0 1 2 1 \n",
"836 0 1 0 1 \n",
"145 -57900 1 2 1 \n",
"606 -66200 1 0 3 \n",
"\n",
" injury_claim property_claim vehicle_claim pct_paid_insurance \n",
"908 500 500 4500 0.636364 \n",
"591 7270 21810 50890 0.993748 \n",
"836 21330 7110 56880 0.988279 \n",
"145 7640 15280 76400 0.994966 \n",
"606 5750 5750 46000 0.982609 \n",
"\n",
"[5 rows x 73 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_train.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "20040790",
"metadata": {},
"outputs": [],
"source": [
"# Scale data\n",
"scaler = StandardScaler()\n",
"scaler.fit(x_train)\n",
"\n",
"x_train = scaler.transform(x_train)\n",
"x_test = scaler.transform(x_test)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "64342d4d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 596\n",
"1 204\n",
"Name: fraud_reported, dtype: int64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# distribution of target in train data\n",
"y_train.value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "5ee57584",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"0 157\n",
"1 43\n",
"Name: fraud_reported, dtype: int64"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# distribution of target in test datat\n",
"y_test.value_counts()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "73297e79",
"metadata": {},
"source": [
"# 4.4 Modellierung und Evaluation"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "c9b07ea0",
"metadata": {},
"source": [
"### 4.4.1 Logistische Regression"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "6b330394",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LogisticRegression()"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"logreg = LogisticRegression()\n",
"logreg.fit(x_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "fa3ef374",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.92 0.93 0.92 596\n",
" 1 0.79 0.75 0.77 204\n",
"\n",
" accuracy 0.89 800\n",
" macro avg 0.85 0.84 0.85 800\n",
"weighted avg 0.88 0.89 0.88 800\n",
"\n"
]
}
],
"source": [
"# train data\n",
"print(classification_report(y_train, logreg.predict(x_train)))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "86ea265b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 88.5\n",
"Precision: 78.8659793814433\n",
"Recall: 75.0\n"
]
}
],
"source": [
"# train data\n",
"print('Accuracy:', accuracy_score(y_train, logreg.predict(x_train))*100)\n",
"print('Precision:', precision_score(y_train, logreg.predict(x_train))*100)\n",
"print('Recall:', recall_score(y_train, logreg.predict(x_train))*100)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "172d0b95",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.91 0.91 0.91 157\n",
" 1 0.67 0.65 0.66 43\n",
"\n",
" accuracy 0.85 200\n",
" macro avg 0.79 0.78 0.78 200\n",
"weighted avg 0.85 0.85 0.85 200\n",
"\n"
]
}
],
"source": [
"# test data\n",
"print(classification_report(y_test, logreg.predict(x_test)))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "8a1e6fd9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 85.5\n",
"Precision: 66.66666666666666\n",
"Recall: 65.11627906976744\n"
]
}
],
"source": [
"# test data\n",
"print('Accuracy:', accuracy_score(y_test, logreg.predict(x_test))*100)\n",
"print('Precision:', precision_score(y_test, logreg.predict(x_test))*100)\n",
"print('Recall:', recall_score(y_test, logreg.predict(x_test))*100)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "c48c8e65",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"143 14 15 28\n"
]
}
],
"source": [
"tn, fp, fn, tp = confusion_matrix(y_test, logreg.predict(x_test)).ravel() \n",
"print(tn, fp, fn, tp)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "584079bf",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"cm = confusion_matrix(y_test, logreg.predict(x_test))\n",
"sns.heatmap(cm, annot=True, cmap='terrain', fmt='g')\n",
"plt.xlabel('Real data')\n",
"plt.ylabel('Predicted data')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "f96ea8be",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.87199801])"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"logreg.intercept_"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "2950b467",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 5.80290586e-02, -2.37429629e-01, -3.18975936e-02,\n",
" 1.03264901e-01, 1.57395846e-02, 1.54412249e-01,\n",
" 9.98550038e-02, 1.01734974e-01, 1.65847423e-01,\n",
" 7.04430787e-02, 2.21983720e-01, 2.75034627e-01,\n",
" 6.08030524e-02, -8.57181314e-02, 6.39780307e-02,\n",
" -1.53624306e-01, -4.61802683e-02, 1.51000581e-01,\n",
" -5.51566389e-02, 5.90062519e-02, -8.83889618e-03,\n",
" -8.20083809e-03, -1.42216723e-01, 1.90073855e-02,\n",
" -2.16204990e-01, -4.62653155e-01, 7.95035036e-01,\n",
" 5.66640168e-01, -3.05200290e-01, -2.31887634e-01,\n",
" -8.43891138e-02, -9.43983125e-02, -3.03973994e-01,\n",
" -9.70096772e-02, -2.00177795e-01, -5.26322421e-02,\n",
" -1.90789105e-02, -1.19299001e-01, -2.22788639e-01,\n",
" 8.18201612e-03, 2.03631238e-01, 3.87350193e-01,\n",
" 4.07693675e-01, -2.79170918e-02, 2.25397475e-01,\n",
" 1.85538456e-01, -1.95996214e-01, -1.87436352e-01,\n",
" -2.87031385e-01, 1.41595895e-01, -1.11191352e-01,\n",
" -1.74200227e+00, -1.66185713e+00, -1.21492255e+00,\n",
" 1.24360304e-01, 1.64944689e-01, 2.58711282e-01,\n",
" 3.23758889e-01, 1.30618426e-03, -1.22778321e-01,\n",
" -1.01884582e-02, 5.54932851e-02, 5.82757827e-02,\n",
" 3.61968828e-01, -1.20848644e-01, -2.42543595e-01,\n",
" -1.93472781e-01, 8.04217694e-02, 5.86457472e-02,\n",
" -1.71694568e-01, -3.64878309e-02, 1.53029355e-01,\n",
" 3.50253316e-03]])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"logreg.coef_"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "5c21a230",
"metadata": {},
"source": [
"### 4.4.2 Entscheidungsbaum"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "3c2caa28",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"DecisionTreeClassifier()"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tree = DecisionTreeClassifier()\n",
"tree.fit(x_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "d5102a31",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 596\n",
" 1 1.00 1.00 1.00 204\n",
"\n",
" accuracy 1.00 800\n",
" macro avg 1.00 1.00 1.00 800\n",
"weighted avg 1.00 1.00 1.00 800\n",
"\n"
]
}
],
"source": [
"# train data\n",
"print(classification_report(y_train, tree.predict(x_train)))"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "dc4b1761",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 100.0\n",
"Precision: 100.0\n",
"Recall: 100.0\n"
]
}
],
"source": [
"# train data\n",
"print('Accuracy:', accuracy_score(y_train, tree.predict(x_train))*100)\n",
"print('Precision:', precision_score(y_train, tree.predict(x_train))*100)\n",
"print('Recall:', recall_score(y_train, tree.predict(x_train))*100)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "fff555ef",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.83 0.85 0.84 157\n",
" 1 0.39 0.35 0.37 43\n",
"\n",
" accuracy 0.74 200\n",
" macro avg 0.61 0.60 0.61 200\n",
"weighted avg 0.73 0.74 0.74 200\n",
"\n"
]
}
],
"source": [
"# test data\n",
"print(classification_report(y_test, tree.predict(x_test)))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "afdad593",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 74.5\n",
"Precision: 39.473684210526315\n",
"Recall: 34.883720930232556\n"
]
}
],
"source": [
"# test data\n",
"print('Accuracy:', accuracy_score(y_test, tree.predict(x_test))*100)\n",
"print('Precision:', precision_score(y_test, tree.predict(x_test))*100)\n",
"print('Recall:', recall_score(y_test, tree.predict(x_test))*100)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "44062e93",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"cm = confusion_matrix(y_test, tree.predict(x_test))\n",
"sns.heatmap(cm, annot=True, cmap='terrain', fmt='g')\n",
"plt.xlabel('Real data')\n",
"plt.ylabel('Predicted data')\n",
"plt.show()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "e867e082",
"metadata": {},
"source": [
"### 4.4.3 Random Forest"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "fbd0cd13",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"RandomForestClassifier()"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"forest = RandomForestClassifier()\n",
"forest.fit(x_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "37a0c75e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 1.00 1.00 1.00 596\n",
" 1 1.00 1.00 1.00 204\n",
"\n",
" accuracy 1.00 800\n",
" macro avg 1.00 1.00 1.00 800\n",
"weighted avg 1.00 1.00 1.00 800\n",
"\n"
]
}
],
"source": [
"# train data\n",
"print(classification_report(y_train, forest.predict(x_train)))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "4192d83b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 100.0\n",
"Precision: 100.0\n",
"Recall: 100.0\n"
]
}
],
"source": [
"# train data\n",
"print('Accuracy:', accuracy_score(y_train, forest.predict(x_train))*100)\n",
"print('Precision:', precision_score(y_train, forest.predict(x_train))*100)\n",
"print('Recall:', recall_score(y_train, forest.predict(x_train))*100)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "1461c7a0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.79 0.94 0.85 157\n",
" 1 0.23 0.07 0.11 43\n",
"\n",
" accuracy 0.75 200\n",
" macro avg 0.51 0.50 0.48 200\n",
"weighted avg 0.67 0.75 0.69 200\n",
"\n"
]
}
],
"source": [
"# test data\n",
"print(classification_report(y_test, forest.predict(x_test)))"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "04b758a6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 75.0\n",
"Precision: 23.076923076923077\n",
"Recall: 6.976744186046512\n"
]
}
],
"source": [
"# test data\n",
"print('Accuracy:', accuracy_score(y_test, forest.predict(x_test))*100)\n",
"print('Precision:', precision_score(y_test, forest.predict(x_test))*100)\n",
"print('Recall:', recall_score(y_test, forest.predict(x_test))*100)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "1c713122",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"cm = confusion_matrix(y_test, forest.predict(x_test))\n",
"sns.heatmap(cm, annot=True, cmap='terrain', fmt='g')\n",
"plt.xlabel('Real data')\n",
"plt.ylabel('Predicted data')\n",
"plt.show()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "d4e8e96f",
"metadata": {},
"source": [
"### 4.4.4 Support Vector Machine"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "4bd111b7",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SVC()"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"svc = SVC()\n",
"svc.fit(x_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "57b9a951",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.92 0.99 0.95 596\n",
" 1 0.95 0.75 0.84 204\n",
"\n",
" accuracy 0.93 800\n",
" macro avg 0.94 0.87 0.90 800\n",
"weighted avg 0.93 0.93 0.92 800\n",
"\n"
]
}
],
"source": [
"# train data\n",
"print(classification_report(y_train, svc.predict(x_train)))"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "83962b23",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 92.625\n",
"Precision: 95.03105590062113\n",
"Recall: 75.0\n"
]
}
],
"source": [
"# train data\n",
"print('Accuracy:', accuracy_score(y_train, svc.predict(x_train))*100)\n",
"print('Precision:', precision_score(y_train, svc.predict(x_train))*100)\n",
"print('Recall:', recall_score(y_train, svc.predict(x_train))*100)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "ffe4ac08",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.85 0.99 0.91 157\n",
" 1 0.89 0.37 0.52 43\n",
"\n",
" accuracy 0.85 200\n",
" macro avg 0.87 0.68 0.72 200\n",
"weighted avg 0.86 0.85 0.83 200\n",
"\n"
]
}
],
"source": [
"# test data\n",
"print(classification_report(y_test, svc.predict(x_test)))"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "99f76a05",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 85.5\n",
"Precision: 88.88888888888889\n",
"Recall: 37.2093023255814\n"
]
}
],
"source": [
"# test data\n",
"print('Accuracy:', accuracy_score(y_test, svc.predict(x_test))*100)\n",
"print('Precision:', precision_score(y_test, svc.predict(x_test))*100)\n",
"print('Recall:', recall_score(y_test, svc.predict(x_test))*100)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "f7ea05f4",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"cm = confusion_matrix(y_test, svc.predict(x_test))\n",
"sns.heatmap(cm, annot=True, cmap='terrain', fmt='g')\n",
"plt.xlabel('Real data')\n",
"plt.ylabel('Predicted data')\n",
"plt.show()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "d9d7678f",
"metadata": {},
"source": [
"# 5. Deployment"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "6c6ba1e6",
"metadata": {},
"outputs": [],
"source": [
"# Select one scaled person of the dataset\n",
"sample_df = x_test[72]"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "6b73ff09",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.35903462, -0.65270587, 1.10833761, -0.37363236, -0.42828957,\n",
" 2.30200187, -0.41181385, -0.40137644, -0.38655567, -0.27958383,\n",
" -0.30478874, -0.28730468, -0.24413654, -0.24124895, -0.31207962,\n",
" -0.26636529, -0.26636529, -0.30478874, -0.26636529, -0.28217394,\n",
" -0.28984624, 3.79270555, -0.18328047, -0.22941573, -0.24983394,\n",
" -0.24124895, -0.22331316, 5.06622805, -0.21707238, -0.24699789,\n",
" -0.23241869, -0.24413654, -0.23833416, -0.23833416, -0.23833416,\n",
" -0.22021079, -0.25264558, -0.22021079, -0.19044535, -0.2353911 ,\n",
" -0.24983394, 2.19986728, -0.47248449, -0.46255869, -0.40973554,\n",
" -0.43033148, -0.27958383, -0.82502865, -0.31926223, -0.91370804,\n",
" -0.6352234 , -0.74390729, 1.60356745, -0.29488391, -0.51752183,\n",
" -0.29738086, -0.50780078, -0.65660263, -0.6644106 , -0.67419986,\n",
" -1.6511054 , -1.04810348, 0.18475885, -0.48560679, -0.92537512,\n",
" 0.963709 , 1.11630666, -1.18253256, 0.45167913, 0.85886085,\n",
" 0.85043965, 0.74218584, 0.10204472])"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Features of the selected sample\n",
"sample_df"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "05ec844f",
"metadata": {},
"outputs": [],
"source": [
"# Execute prediction\n",
"sample_pred = svc.predict([sample_df])"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "ac328f85",
"metadata": {},
"outputs": [],
"source": [
"# Interpret the result\n",
"def check_prediction(pred):\n",
" if pred[0] == 1:\n",
" print(\"Fraud.\")\n",
" else:\n",
" print(\"No Fraud.\")"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "fc24f4ee",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fraud.\n"
]
}
],
"source": [
"# call the prediciton method\n",
"check_prediction(sample_pred)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c91f2802",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"category": "Insurance",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.11.2"
},
"skipNotebookInDeployment": true,
"title": "Insurance Fraud detection"
},
"nbformat": 4,
"nbformat_minor": 5
}
%% Cell type:markdown id:58fa7892 tags:
# 4. Modellierung
%% Cell type:markdown id:409bf0ce tags:
## 4.1 Import von relevanten Modulen
%% Cell type:code id:ce52edf1 tags:
```
python
import
pandas
as
pd
import
numpy
as
np
import
matplotlib.pyplot
as
plt
import
seaborn
as
sns
from
sklearn.preprocessing
import
StandardScaler
from
sklearn.model_selection
import
train_test_split
from
sklearn.metrics
import
confusion_matrix
,
classification_report
,
accuracy_score
,
precision_score
,
recall_score
from
sklearn.linear_model
import
LogisticRegression
from
sklearn.tree
import
DecisionTreeClassifier
from
sklearn.ensemble
import
RandomForestClassifier
from
sklearn.svm
import
SVC
sns
.
set
()
%
matplotlib
inline
```
%% Cell type:markdown id:2e9db144 tags:
## 4.2 Daten einlesen
%% Cell type:code id:83961ee0 tags:
```
python
data
=
pd
.
read_csv
(
'
dataset_dummies.csv
'
)
# file is generated in notebook_1
```
%% Cell type:code id:72081129 tags:
```
python
data
.
head
()
```
%% Output
policy_csl_250/500 policy_csl_500/1000 insured_sex_MALE \
0 1 0 1
1 1 0 1
2 0 0 0
3 1 0 0
4 0 1 1
insured_education_level_College insured_education_level_High School \
0 0 0
1 0 0
2 0 0
3 0 0
4 0 0
insured_education_level_JD insured_education_level_MD \
0 0 1
1 0 1
2 0 0
3 0 0
4 0 0
insured_education_level_Masters insured_education_level_PhD \
0 0 0
1 0 0
2 0 1
3 0 1
4 0 0
insured_occupation_armed-forces ... capital-gains capital-loss \
0 0 ... 53300 0
1 0 ... 0 0
2 0 ... 35100 0
3 1 ... 48900 -62400
4 0 ... 66000 -46000
number_of_vehicles_involved bodily_injuries witnesses injury_claim \
0 1 1 2 6510
1 1 0 0 780
2 3 2 3 7700
3 1 1 2 6340
4 1 0 1 1300
property_claim vehicle_claim fraud_reported pct_paid_insurance
0 13020 52080 1 0.986035
1 780 3510 1 0.605523
2 3850 23100 0 0.942280
3 6340 50720 1 0.968454
4 650 4550 0 0.846154
[5 rows x 74 columns]
%% Cell type:markdown id:c139e7ce tags:
## 4.3 Datenvorbereitung für die Modellierung
%% Cell type:code id:a5c7e329 tags:
```
python
target
=
data
.
fraud_reported
features
=
data
.
drop
(
'
fraud_reported
'
,
axis
=
1
)
```
%% Cell type:code id:bf93a421 tags:
```
python
# Split data in training and test datasets
x_train
,
x_test
,
y_train
,
y_test
=
train_test_split
(
features
,
target
,
test_size
=
0.2
,
random_state
=
365
)
```
%% Cell type:code id:92201392 tags:
```
python
x_train
.
head
()
```
%% Output
policy_csl_250/500 policy_csl_500/1000 insured_sex_MALE \
908 1 0 1
591 0 1 0
836 0 0 0
145 0 0 0
606 0 1 0
insured_education_level_College insured_education_level_High School \
908 0 0
591 0 0
836 0 0
145 0 0
606 0 0
insured_education_level_JD insured_education_level_MD \
908 0 1
591 0 0
836 1 0
145 0 0
606 0 0
insured_education_level_Masters insured_education_level_PhD \
908 0 0
591 0 0
836 0 0
145 0 0
606 0 0
insured_occupation_armed-forces ... umbrella_limit capital-gains \
908 0 ... 0 52600
591 1 ... 0 0
836 0 ... 0 52100
145 0 ... 0 0
606 0 ... 0 0
capital-loss number_of_vehicles_involved bodily_injuries witnesses \
908 0 1 1 0
591 0 1 2 1
836 0 1 0 1
145 -57900 1 2 1
606 -66200 1 0 3
injury_claim property_claim vehicle_claim pct_paid_insurance
908 500 500 4500 0.636364
591 7270 21810 50890 0.993748
836 21330 7110 56880 0.988279
145 7640 15280 76400 0.994966
606 5750 5750 46000 0.982609
[5 rows x 73 columns]
%% Cell type:code id:20040790 tags:
```
python
# Scale data
scaler
=
StandardScaler
()
scaler
.
fit
(
x_train
)
x_train
=
scaler
.
transform
(
x_train
)
x_test
=
scaler
.
transform
(
x_test
)
```
%% Cell type:code id:64342d4d tags:
```
python
# distribution of target in train data
y_train
.
value_counts
()
```
%% Output
0 596
1 204
Name: fraud_reported, dtype: int64
%% Cell type:code id:5ee57584 tags:
```
python
# distribution of target in test datat
y_test
.
value_counts
()
```
%% Output
0 157
1 43
Name: fraud_reported, dtype: int64
%% Cell type:markdown id:73297e79 tags:
# 4.4 Modellierung und Evaluation
%% Cell type:markdown id:c9b07ea0 tags:
### 4.4.1 Logistische Regression
%% Cell type:code id:6b330394 tags:
```
python
logreg
=
LogisticRegression
()
logreg
.
fit
(
x_train
,
y_train
)
```
%% Output
LogisticRegression()
%% Cell type:code id:fa3ef374 tags:
```
python
# train data
print
(
classification_report
(
y_train
,
logreg
.
predict
(
x_train
)))
```
%% Output
precision recall f1-score support
0 0.92 0.93 0.92 596
1 0.79 0.75 0.77 204
accuracy 0.89 800
macro avg 0.85 0.84 0.85 800
weighted avg 0.88 0.89 0.88 800
%% Cell type:code id:86ea265b tags:
```
python
# train data
print
(
'
Accuracy:
'
,
accuracy_score
(
y_train
,
logreg
.
predict
(
x_train
))
*
100
)
print
(
'
Precision:
'
,
precision_score
(
y_train
,
logreg
.
predict
(
x_train
))
*
100
)
print
(
'
Recall:
'
,
recall_score
(
y_train
,
logreg
.
predict
(
x_train
))
*
100
)
```
%% Output
Accuracy: 88.5
Precision: 78.8659793814433
Recall: 75.0
%% Cell type:code id:172d0b95 tags:
```
python
# test data
print
(
classification_report
(
y_test
,
logreg
.
predict
(
x_test
)))
```
%% Output
precision recall f1-score support
0 0.91 0.91 0.91 157
1 0.67 0.65 0.66 43
accuracy 0.85 200
macro avg 0.79 0.78 0.78 200
weighted avg 0.85 0.85 0.85 200
%% Cell type:code id:8a1e6fd9 tags:
```
python
# test data
print
(
'
Accuracy:
'
,
accuracy_score
(
y_test
,
logreg
.
predict
(
x_test
))
*
100
)
print
(
'
Precision:
'
,
precision_score
(
y_test
,
logreg
.
predict
(
x_test
))
*
100
)
print
(
'
Recall:
'
,
recall_score
(
y_test
,
logreg
.
predict
(
x_test
))
*
100
)
```
%% Output
Accuracy: 85.5
Precision: 66.66666666666666
Recall: 65.11627906976744
%% Cell type:code id:c48c8e65 tags:
```
python
tn
,
fp
,
fn
,
tp
=
confusion_matrix
(
y_test
,
logreg
.
predict
(
x_test
)).
ravel
()
print
(
tn
,
fp
,
fn
,
tp
)
```
%% Output
143 14 15 28
%% Cell type:code id:584079bf tags:
```
python
cm
=
confusion_matrix
(
y_test
,
logreg
.
predict
(
x_test
))
sns
.
heatmap
(
cm
,
annot
=
True
,
cmap
=
'
terrain
'
,
fmt
=
'
g
'
)
plt
.
xlabel
(
'
Real data
'
)
plt
.
ylabel
(
'
Predicted data
'
)
plt
.
show
()
```
%% Output
%% Cell type:code id:f96ea8be tags:
```
python
logreg
.
intercept_
```
%% Output
array([-1.87199801])
%% Cell type:code id:2950b467 tags:
```
python
logreg
.
coef_
```
%% Output
array([[ 5.80290586e-02, -2.37429629e-01, -3.18975936e-02,
1.03264901e-01, 1.57395846e-02, 1.54412249e-01,
9.98550038e-02, 1.01734974e-01, 1.65847423e-01,
7.04430787e-02, 2.21983720e-01, 2.75034627e-01,
6.08030524e-02, -8.57181314e-02, 6.39780307e-02,
-1.53624306e-01, -4.61802683e-02, 1.51000581e-01,
-5.51566389e-02, 5.90062519e-02, -8.83889618e-03,
-8.20083809e-03, -1.42216723e-01, 1.90073855e-02,
-2.16204990e-01, -4.62653155e-01, 7.95035036e-01,
5.66640168e-01, -3.05200290e-01, -2.31887634e-01,
-8.43891138e-02, -9.43983125e-02, -3.03973994e-01,
-9.70096772e-02, -2.00177795e-01, -5.26322421e-02,
-1.90789105e-02, -1.19299001e-01, -2.22788639e-01,
8.18201612e-03, 2.03631238e-01, 3.87350193e-01,
4.07693675e-01, -2.79170918e-02, 2.25397475e-01,
1.85538456e-01, -1.95996214e-01, -1.87436352e-01,
-2.87031385e-01, 1.41595895e-01, -1.11191352e-01,
-1.74200227e+00, -1.66185713e+00, -1.21492255e+00,
1.24360304e-01, 1.64944689e-01, 2.58711282e-01,
3.23758889e-01, 1.30618426e-03, -1.22778321e-01,
-1.01884582e-02, 5.54932851e-02, 5.82757827e-02,
3.61968828e-01, -1.20848644e-01, -2.42543595e-01,
-1.93472781e-01, 8.04217694e-02, 5.86457472e-02,
-1.71694568e-01, -3.64878309e-02, 1.53029355e-01,
3.50253316e-03]])
%% Cell type:markdown id:5c21a230 tags:
### 4.4.2 Entscheidungsbaum
%% Cell type:code id:3c2caa28 tags:
```
python
tree
=
DecisionTreeClassifier
()
tree
.
fit
(
x_train
,
y_train
)
```
%% Output
DecisionTreeClassifier()
%% Cell type:code id:d5102a31 tags:
```
python
# train data
print
(
classification_report
(
y_train
,
tree
.
predict
(
x_train
)))
```
%% Output
precision recall f1-score support
0 1.00 1.00 1.00 596
1 1.00 1.00 1.00 204
accuracy 1.00 800
macro avg 1.00 1.00 1.00 800
weighted avg 1.00 1.00 1.00 800
%% Cell type:code id:dc4b1761 tags:
```
python
# train data
print
(
'
Accuracy:
'
,
accuracy_score
(
y_train
,
tree
.
predict
(
x_train
))
*
100
)
print
(
'
Precision:
'
,
precision_score
(
y_train
,
tree
.
predict
(
x_train
))
*
100
)
print
(
'
Recall:
'
,
recall_score
(
y_train
,
tree
.
predict
(
x_train
))
*
100
)
```
%% Output
Accuracy: 100.0
Precision: 100.0
Recall: 100.0
%% Cell type:code id:fff555ef tags:
```
python
# test data
print
(
classification_report
(
y_test
,
tree
.
predict
(
x_test
)))
```
%% Output
precision recall f1-score support
0 0.83 0.85 0.84 157
1 0.39 0.35 0.37 43
accuracy 0.74 200
macro avg 0.61 0.60 0.61 200
weighted avg 0.73 0.74 0.74 200
%% Cell type:code id:afdad593 tags:
```
python
# test data
print
(
'
Accuracy:
'
,
accuracy_score
(
y_test
,
tree
.
predict
(
x_test
))
*
100
)
print
(
'
Precision:
'
,
precision_score
(
y_test
,
tree
.
predict
(
x_test
))
*
100
)
print
(
'
Recall:
'
,
recall_score
(
y_test
,
tree
.
predict
(
x_test
))
*
100
)
```
%% Output
Accuracy: 74.5
Precision: 39.473684210526315
Recall: 34.883720930232556
%% Cell type:code id:44062e93 tags:
```
python
cm
=
confusion_matrix
(
y_test
,
tree
.
predict
(
x_test
))
sns
.
heatmap
(
cm
,
annot
=
True
,
cmap
=
'
terrain
'
,
fmt
=
'
g
'
)
plt
.
xlabel
(
'
Real data
'
)
plt
.
ylabel
(
'
Predicted data
'
)
plt
.
show
()
```
%% Output
%% Cell type:markdown id:e867e082 tags:
### 4.4.3 Random Forest
%% Cell type:code id:fbd0cd13 tags:
```
python
forest
=
RandomForestClassifier
()
forest
.
fit
(
x_train
,
y_train
)
```
%% Output
RandomForestClassifier()
%% Cell type:code id:37a0c75e tags:
```
python
# train data
print
(
classification_report
(
y_train
,
forest
.
predict
(
x_train
)))
```
%% Output
precision recall f1-score support
0 1.00 1.00 1.00 596
1 1.00 1.00 1.00 204
accuracy 1.00 800
macro avg 1.00 1.00 1.00 800
weighted avg 1.00 1.00 1.00 800
%% Cell type:code id:4192d83b tags:
```
python
# train data
print
(
'
Accuracy:
'
,
accuracy_score
(
y_train
,
forest
.
predict
(
x_train
))
*
100
)
print
(
'
Precision:
'
,
precision_score
(
y_train
,
forest
.
predict
(
x_train
))
*
100
)
print
(
'
Recall:
'
,
recall_score
(
y_train
,
forest
.
predict
(
x_train
))
*
100
)
```
%% Output
Accuracy: 100.0
Precision: 100.0
Recall: 100.0
%% Cell type:code id:1461c7a0 tags:
```
python
# test data
print
(
classification_report
(
y_test
,
forest
.
predict
(
x_test
)))
```
%% Output
precision recall f1-score support
0 0.79 0.94 0.85 157
1 0.23 0.07 0.11 43
accuracy 0.75 200
macro avg 0.51 0.50 0.48 200
weighted avg 0.67 0.75 0.69 200
%% Cell type:code id:04b758a6 tags:
```
python
# test data
print
(
'
Accuracy:
'
,
accuracy_score
(
y_test
,
forest
.
predict
(
x_test
))
*
100
)
print
(
'
Precision:
'
,
precision_score
(
y_test
,
forest
.
predict
(
x_test
))
*
100
)
print
(
'
Recall:
'
,
recall_score
(
y_test
,
forest
.
predict
(
x_test
))
*
100
)
```
%% Output
Accuracy: 75.0
Precision: 23.076923076923077
Recall: 6.976744186046512
%% Cell type:code id:1c713122 tags:
```
python
cm
=
confusion_matrix
(
y_test
,
forest
.
predict
(
x_test
))
sns
.
heatmap
(
cm
,
annot
=
True
,
cmap
=
'
terrain
'
,
fmt
=
'
g
'
)
plt
.
xlabel
(
'
Real data
'
)
plt
.
ylabel
(
'
Predicted data
'
)
plt
.
show
()
```
%% Output
%% Cell type:markdown id:d4e8e96f tags:
### 4.4.4 Support Vector Machine
%% Cell type:code id:4bd111b7 tags:
```
python
svc
=
SVC
()
svc
.
fit
(
x_train
,
y_train
)
```
%% Output
SVC()
%% Cell type:code id:57b9a951 tags:
```
python
# train data
print
(
classification_report
(
y_train
,
svc
.
predict
(
x_train
)))
```
%% Output
precision recall f1-score support
0 0.92 0.99 0.95 596
1 0.95 0.75 0.84 204
accuracy 0.93 800
macro avg 0.94 0.87 0.90 800
weighted avg 0.93 0.93 0.92 800
%% Cell type:code id:83962b23 tags:
```
python
# train data
print
(
'
Accuracy:
'
,
accuracy_score
(
y_train
,
svc
.
predict
(
x_train
))
*
100
)
print
(
'
Precision:
'
,
precision_score
(
y_train
,
svc
.
predict
(
x_train
))
*
100
)
print
(
'
Recall:
'
,
recall_score
(
y_train
,
svc
.
predict
(
x_train
))
*
100
)
```
%% Output
Accuracy: 92.625
Precision: 95.03105590062113
Recall: 75.0
%% Cell type:code id:ffe4ac08 tags:
```
python
# test data
print
(
classification_report
(
y_test
,
svc
.
predict
(
x_test
)))
```
%% Output
precision recall f1-score support
0 0.85 0.99 0.91 157
1 0.89 0.37 0.52 43
accuracy 0.85 200
macro avg 0.87 0.68 0.72 200
weighted avg 0.86 0.85 0.83 200
%% Cell type:code id:99f76a05 tags:
```
python
# test data
print
(
'
Accuracy:
'
,
accuracy_score
(
y_test
,
svc
.
predict
(
x_test
))
*
100
)
print
(
'
Precision:
'
,
precision_score
(
y_test
,
svc
.
predict
(
x_test
))
*
100
)
print
(
'
Recall:
'
,
recall_score
(
y_test
,
svc
.
predict
(
x_test
))
*
100
)
```
%% Output
Accuracy: 85.5
Precision: 88.88888888888889
Recall: 37.2093023255814
%% Cell type:code id:f7ea05f4 tags:
```
python
cm
=
confusion_matrix
(
y_test
,
svc
.
predict
(
x_test
))
sns
.
heatmap
(
cm
,
annot
=
True
,
cmap
=
'
terrain
'
,
fmt
=
'
g
'
)
plt
.
xlabel
(
'
Real data
'
)
plt
.
ylabel
(
'
Predicted data
'
)
plt
.
show
()
```
%% Output
%% Cell type:markdown id:d9d7678f tags:
# 5. Deployment
%% Cell type:code id:6c6ba1e6 tags:
```
python
# Select one scaled person of the dataset
sample_df
=
x_test
[
72
]
```
%% Cell type:code id:6b73ff09 tags:
```
python
# Features of the selected sample
sample_df
```
%% Output
array([ 1.35903462, -0.65270587, 1.10833761, -0.37363236, -0.42828957,
2.30200187, -0.41181385, -0.40137644, -0.38655567, -0.27958383,
-0.30478874, -0.28730468, -0.24413654, -0.24124895, -0.31207962,
-0.26636529, -0.26636529, -0.30478874, -0.26636529, -0.28217394,
-0.28984624, 3.79270555, -0.18328047, -0.22941573, -0.24983394,
-0.24124895, -0.22331316, 5.06622805, -0.21707238, -0.24699789,
-0.23241869, -0.24413654, -0.23833416, -0.23833416, -0.23833416,
-0.22021079, -0.25264558, -0.22021079, -0.19044535, -0.2353911 ,
-0.24983394, 2.19986728, -0.47248449, -0.46255869, -0.40973554,
-0.43033148, -0.27958383, -0.82502865, -0.31926223, -0.91370804,
-0.6352234 , -0.74390729, 1.60356745, -0.29488391, -0.51752183,
-0.29738086, -0.50780078, -0.65660263, -0.6644106 , -0.67419986,
-1.6511054 , -1.04810348, 0.18475885, -0.48560679, -0.92537512,
0.963709 , 1.11630666, -1.18253256, 0.45167913, 0.85886085,
0.85043965, 0.74218584, 0.10204472])
%% Cell type:code id:05ec844f tags:
```
python
# Execute prediction
sample_pred
=
svc
.
predict
([
sample_df
])
```
%% Cell type:code id:ac328f85 tags:
```
python
# Interpret the result
def
check_prediction
(
pred
):
if
pred
[
0
]
==
1
:
print
(
"
Fraud.
"
)
else
:
print
(
"
No Fraud.
"
)
```
%% Cell type:code id:fc24f4ee tags:
```
python
# call the prediciton method
check_prediction
(
sample_pred
)
```
%% Output
Fraud.
%% Cell type:code id:c91f2802 tags:
```
python
```
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
sign in
to comment