{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "1e8e9b3b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Päivitetty 2022-09-05 19:02:03.714843\n" ] } ], "source": [ "from datetime import datetime\n", "print(f'Päivitetty {datetime.now()}')" ] }, { "cell_type": "markdown", "id": "a828ef28", "metadata": {}, "source": [ "# Luottokorttipetokset\n", "\n", "Data löytyy lähteestä: https://www.kaggle.com/mlg-ulb/creditcardfraud\n", "\n", "Datassa ei ole alkuperäisiä selittäviä muuttujia, vaan niistä pääkomponenttianalyysilla muodostetut uudet muuttujat (sekä tietosuojan että tilastotieteellisten syiden takia). **Class**-muuttuja on kohdemuuttuja (0 = 'ei petos', 1 = 'petos').\n", "\n", "Petoksia on vähän suhteessa kaikkiin luottokorttitapahtumiin. Tämän vuoksi data on syytä tasapainottaa. Käytän tasapainottamiseen imbalanced-learn-kirjastoa, joka ei ole Anacondassa valmiiksi asennettuna. Sen voi asentaa komentoriviltä (Anaconda prompt) komennolla: \n", "\n", "`conda install -c conda-forge imbalanced-learn`" ] }, { "cell_type": "code", "execution_count": 2, "id": "8abc00b8", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "# train_test_split osaa jakaa datan opetusdataan ja testidataan\n", "from sklearn.model_selection import train_test_split\n", "\n", "# Datan tasapainottamiseen\n", "from imblearn.over_sampling import RandomOverSampler\n", "from imblearn.under_sampling import RandomUnderSampler\n", "\n", "# Kokeiltavat mallit\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.tree import DecisionTreeClassifier, plot_tree\n", "from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier\n", "\n", "# Sekaannusmatriisin näyttämiseen\n", "from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay" ] }, { "cell_type": "markdown", "id": "1e2110cf", "metadata": {}, "source": [ "## Datan tarkastelua" ] }, { "cell_type": "code", "execution_count": 3, "id": "8688541c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 284807 entries, 0 to 284806\n", "Data columns (total 31 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Time 284807 non-null float64\n", " 1 V1 284807 non-null float64\n", " 2 V2 284807 non-null float64\n", " 3 V3 284807 non-null float64\n", " 4 V4 284807 non-null float64\n", " 5 V5 284807 non-null float64\n", " 6 V6 284807 non-null float64\n", " 7 V7 284807 non-null float64\n", " 8 V8 284807 non-null float64\n", " 9 V9 284807 non-null float64\n", " 10 V10 284807 non-null float64\n", " 11 V11 284807 non-null float64\n", " 12 V12 284807 non-null float64\n", " 13 V13 284807 non-null float64\n", " 14 V14 284807 non-null float64\n", " 15 V15 284807 non-null float64\n", " 16 V16 284807 non-null float64\n", " 17 V17 284807 non-null float64\n", " 18 V18 284807 non-null float64\n", " 19 V19 284807 non-null float64\n", " 20 V20 284807 non-null float64\n", " 21 V21 284807 non-null float64\n", " 22 V22 284807 non-null float64\n", " 23 V23 284807 non-null float64\n", " 24 V24 284807 non-null float64\n", " 25 V25 284807 non-null float64\n", " 26 V26 284807 non-null float64\n", " 27 V27 284807 non-null float64\n", " 28 V28 284807 non-null float64\n", " 29 Amount 284807 non-null float64\n", " 30 Class 284807 non-null int64 \n", "dtypes: float64(30), int64(1)\n", "memory usage: 67.4 MB\n" ] } ], "source": [ "# Data on sen verran iso, että suosittelen sen lataamista\n", "# omalle koneelle ennen avaamista!\n", "df = pd.read_csv('https://taanila.fi/creditcard.csv')\n", "df.info()" ] }, { "cell_type": "code", "execution_count": 4, "id": "9c6f4eb5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 284315\n", "1 492\n", "Name: Class, dtype: int64" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Kohdemuuttujan jakauma\n", "df['Class'].value_counts()" ] }, { "cell_type": "markdown", "id": "00ae8593", "metadata": {}, "source": [ "Kohdemuuttujan jakauma on epätasapainoinen." ] }, { "cell_type": "markdown", "id": "fe04079a", "metadata": {}, "source": [ "## Tasapainotus ja mallien sovittaminen" ] }, { "cell_type": "code", "execution_count": 5, "id": "c836ecc4", "metadata": {}, "outputs": [], "source": [ "# Selittävät muuttujat\n", "X = df.drop('Class', axis=1)\n", "\n", "# Kohdemuuttuja\n", "y = df['Class']\n", "\n", "# Jako opetus- ja testidataan\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=2)" ] }, { "cell_type": "markdown", "id": "a896df56", "metadata": {}, "source": [ "Data on iso, jos tasapainotetaan kasvattamalla pienempää ryhmää isomman kokoiseksi (**RandomOverSampler**). Tämän seurauksena mallin sovittaminen kestää niin kauan että välillä ehtii kahville.\n", "\n", "Nopeampi ratkaisu on tasapainottaa pienentämällä isompaa ryhmää (**RandomUnderSampler**), mutta tällä ei päästä yhtä hyviin malleihin." ] }, { "cell_type": "code", "execution_count": 6, "id": "49415dc4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GradientBoostingClassifier(max_depth=2, random_state=2)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Tasapainotus ja mallien sovitus\n", "\n", "# RandomOverSampler kasvattaa satunnaisotoksilla pienempää ryhmää\n", "# Voit myös kokeilla RandomUnderSampler, joka toimii nopeammin\n", "rs = RandomOverSampler(random_state=2)\n", "X_train, y_train = rs.fit_resample(X_train, y_train)\n", "\n", "lrc = LogisticRegression()\n", "lrc.fit(X_train, y_train)\n", "\n", "dtc = DecisionTreeClassifier(max_depth=3, random_state=2)\n", "dtc.fit(X_train, y_train)\n", "\n", "rfc = RandomForestClassifier(max_depth=4, random_state=2)\n", "rfc.fit(X_train, y_train)\n", "\n", "gbc = GradientBoostingClassifier(max_depth=2, random_state=2)\n", "gbc.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "id": "ba10f5cc", "metadata": {}, "source": [ "## Mallien arviointia" ] }, { "cell_type": "code", "execution_count": 7, "id": "2efb0a84", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ennusteiden tarkkuus opetusdatassa:\n", "Logistinen regressio 0.937\n", "Päätöspuu 0.943\n", "Satunnaismetsä 0.947\n", "Gradienttitehostus 0.973\n" ] } ], "source": [ "# Oikeaan osuneiden ennusteiden osuus opetusdatassa\n", "print('Ennusteiden tarkkuus opetusdatassa:')\n", "print(f'Logistinen regressio {lrc.score(X_train, y_train):.3f}')\n", "print(f'Päätöspuu {dtc.score(X_train, y_train):.3f}')\n", "print(f'Satunnaismetsä {rfc.score(X_train, y_train):.3f}')\n", "print(f'Gradienttitehostus {gbc.score(X_train, y_train):.3f}')" ] }, { "cell_type": "code", "execution_count": 8, "id": "6b4c4ed6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Logistinen regressio 0.964\n", "Päätöspuu 0.960\n", "Satunnaismetsä 0.993\n", "Gradienttitehostus 0.984\n" ] } ], "source": [ "# Oikeaan osuneiden ennusteiden osuus testidatassa\n", "print(f'Logistinen regressio {lrc.score(X_test, y_test):.3f}')\n", "print(f'Päätöspuu {dtc.score(X_test, y_test):.3f}')\n", "print(f'Satunnaismetsä {rfc.score(X_test, y_test):.3f}')\n", "print(f'Gradienttitehostus {gbc.score(X_test, y_test):.3f}')" ] }, { "cell_type": "code", "execution_count": 9, "id": "14ef7e5c", "metadata": {}, "outputs": [], "source": [ "# Mallien antamat ennusteet testidatalle\n", "y_test_lrc = lrc.predict(X_test)\n", "y_test_dtc = dtc.predict(X_test)\n", "y_test_rfc = rfc.predict(X_test)\n", "y_test_gbc = gbc.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 10, "id": "1676114c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cm = confusion_matrix(y_test, y_test_lrc)\n", "ConfusionMatrixDisplay(confusion_matrix=cm).plot()" ] }, { "cell_type": "markdown", "id": "58f924d5", "metadata": {}, "source": [ "Logistinen regressio tunnistaa parhaiten petoksia, mutta ennustaa paljon ok-tapahtumia petoksiksi." ] }, { "cell_type": "code", "execution_count": 11, "id": "29a82ae4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cm = confusion_matrix(y_test, y_test_dtc)\n", "ConfusionMatrixDisplay(confusion_matrix=cm).plot()" ] }, { "cell_type": "code", "execution_count": 12, "id": "6f99194d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cm = confusion_matrix(y_test, y_test_rfc)\n", "ConfusionMatrixDisplay(confusion_matrix=cm).plot()" ] }, { "cell_type": "markdown", "id": "15dffc61", "metadata": {}, "source": [ "Satunnaismetsä erehtyy vähiten ok-tapahtumissa, mutta tunnistaa huonoiten petoksia." ] }, { "cell_type": "code", "execution_count": 13, "id": "f7ebfcf0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cm = confusion_matrix(y_test, y_test_gbc)\n", "ConfusionMatrixDisplay(confusion_matrix=cm).plot()" ] }, { "cell_type": "markdown", "id": "d80112a9", "metadata": {}, "source": [ "Gradienttitehostus on hyvä kompromissi väärien negatiivisten ja väärien positiivisten väliltä." ] }, { "cell_type": "code", "execution_count": 14, "id": "2fdf57b0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Text(0.4230769230769231, 0.875, 'V14 <= -1.808\\ngini = 0.5\\nsamples = 426440\\nvalue = [213220, 213220]'),\n", " Text(0.15384615384615385, 0.625, 'V4 <= -0.476\\ngini = 0.063\\nsamples = 192739\\nvalue = [6229, 186510]'),\n", " Text(0.07692307692307693, 0.375, 'gini = 0.0\\nsamples = 2015\\nvalue = [2015, 0]'),\n", " Text(0.23076923076923078, 0.375, 'V1 <= 1.992\\ngini = 0.043\\nsamples = 190724\\nvalue = [4214, 186510]'),\n", " Text(0.15384615384615385, 0.125, 'gini = 0.035\\nsamples = 189908\\nvalue = [3398, 186510]'),\n", " Text(0.3076923076923077, 0.125, 'gini = 0.0\\nsamples = 816\\nvalue = [816, 0]'),\n", " Text(0.6923076923076923, 0.625, 'V4 <= 1.661\\ngini = 0.202\\nsamples = 233701\\nvalue = [206991, 26710]'),\n", " Text(0.5384615384615384, 0.375, 'V20 <= -1.028\\ngini = 0.122\\nsamples = 203860\\nvalue = [190556, 13304]'),\n", " Text(0.46153846153846156, 0.125, 'gini = 0.5\\nsamples = 5630\\nvalue = [2837, 2793]'),\n", " Text(0.6153846153846154, 0.125, 'gini = 0.1\\nsamples = 198230\\nvalue = [187719, 10511]'),\n", " Text(0.8461538461538461, 0.375, 'V12 <= -0.46\\ngini = 0.495\\nsamples = 29841\\nvalue = [16435, 13406]'),\n", " Text(0.7692307692307693, 0.125, 'gini = 0.433\\nsamples = 15590\\nvalue = [4936, 10654]'),\n", " Text(0.9230769230769231, 0.125, 'gini = 0.312\\nsamples = 14251\\nvalue = [11499, 2752]')]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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gcDdqrrG2aiMKfjskVYhIyIlgObASVxzdco5G5Ex5lyq+gdwM3AAOIWrHIQx5grZHR5jjDHG+D2/3dX36quvTjl58mSQ03EUNIGBgQdOnDhRyek4jCksbKzyDBu7zKX47R0eEbEaeXkgIqiq1QQxxktsrPIMG7vMpdgcHmOMMcb4PUt4LqFr167u/w8PD+fMmTP897//5YYbbrjo+06dOpXrc7z00kv07t2b2bNnZ3n97Nmz3HnnnWzevJmdO3cSERFBSEgIQ4cO5fTp0wwdOpTIyEi2b99+eRdljPFr+TVuHT9+nG7duhEZGZnl9ezj0eHDhxkwYAB9+/blwIEDLFu2jCZNmrB58+a8X5QxV8gSnkuoV68eSUlJHDt2jMDAQAICAoiLi6NFixY5vjctLY358+fTtWtX1q3L3f6aJ0+e5I8//mDKlCls2LAhy9fi4+Np1qwZADVr1iQmJoa7776b9u3bs3DhQlJTUwEoX778FV6lMcaf5Ne4dc011xAXF5fj9ezj0YwZMyhevDgBAQGUKlWKFi1a0K1bN89cnDF5ZAnPJTz66KO89957fPjhhzz00EN8+umnNG7cmKuuyloAde3atbRq1YrAwEBmzpzJXXfd5b4rk/kxd+7cHMf//fffKVfOtTK8SJH//Th+++03jhw5wl/+8pcs379x40YaNmzIzp07adasGb179yY2NtbzF26MKbDye9zKLvt49NNPP9GhQweaN2/O+++/n1+XacxlsYTnEqpWrcrevXtZuXIl99xzD5s2beLjjz9m9erVzJs3z/199erV4+GHH2bhwoW8/fbbnD59+qLHXbFiBZGRkZw5c4bffvsNgPT0dPfXN27cyA8//MDcuXNJSEgAYN++fVSpUgWAoKAgKlWqRJUqVTh27JinL9sYU4Dl17h1IdnHIxufjE9SVb/8cF2aZ7z++usaGRmZ5bU+ffqc93vT09N16dKlunLlylwff9SoURoZGanx8fGqqjpw4ED31958803dtGmTqqr++9//1q1bt6qq6u+//65du3bVJ598Urdv3345l3NRGe3m+M/PPuyjsHx4cqw6V36NW71799Y6derou+++q19++aXOnj07x3iUnJysXbt21c6dO+vBgwd1w4YNetddd2nbtm11z549nri8HGzsso9LfdiydJOFLe00xrtsrPIMG7vMpdgjLWOM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lWVMXrRoEQ8++OB5//3KrN/TtGnTy471fPw+4WnVqhWLFi1CVSlatCgbN27kxRdfzFKMr1ixYqSlpXH48GHA1cgDBgxg/PjxWf7ayq127drx0Ucf8eabbwKu+iMTJ05k4cKF7roOd9xxBzVq1CA+Pp6lS5dy9913Z+mc53PkyBGKFi1KYmIia9euddeKKVKkCCVLlsxRUyI7J2ufePvnkFnHaMGCBcTHx+f4+qXq7PhK/RIn+u+YMWNo164dQUFB7rovr732GvPmzQNcVVnDwsLcW0i888477r+6s/v6669ZuXJlli1Ofv75Z4KDgylSpAivvPIKL730krtOVPbfnSvlRPud63zt9+GHH2a5NX+x9gsLC+Pf//43VatWpWTJkhc9V1BQECkpKZw6dYqAgIBLjgee5O12XrNmDVu2bGHJkiUkJCRQqVIloqOjefjhh6lRowaQtZ8GBwdTpkyZXNXVKlu2LL/99hvgqlFzqXF206ZNfPzxx6xevdr9M/YUp/tvdt9++y3Tpk1j9erVrFixgsaNGxMdHU2dOnWoXr06rVu35rXXXnMvb8/uk08+4ejRo+67YZnFEq+55prz9tfz1e+5En5fh6dUqVJ8//33PPHEE4BrZvfYsWNJTU11f0/jxo15+eWXqVChAmXKlKFHjx4MHDiQMmXKEBoa6i4fnlm2/WI2b95MXFwcqamp9O3bN0f9kex1Hfbv30/Pnj35/fff6dq1KwkJCbRu3dpdOychIYHPPvuMqKgoJkyYwKFDh4iIiCA4OJgaNWpw+PBhIiMjufvuu1m3bl2WmhJHjhzhmWeeITk5mfr169O5c2fHap94++dQv379LHWMsrdF165dGTFiBGfPnmXChAksW7aM6tWru5/DZ69fsnv37vxpmEvwdrutWrWKhIQEdu/ezZ9//smdd96Zpe7L22+/zapVqzh27Ji7NP327dupXbs2QI7++/jjj3PHHXcwcuRIRo0axdatW7nlllvc5+vWrRsnTpzg6aefzvG7UxDbD7LWc8refuC64zV16lT395/bfosXL3bPE5k6dSqvvfYa27dvd/8DMWXKFHr37u1+77n1T8LCwujduzcffPABAwcOzFFTZufOnUycOJGTJ09Sq1YtTp065bH6J95u58xHcZm1XrLXKcveT6+99loiIiJQVaZMmXLRcXbixImUKlWKvn37ctttt11ynM0cMyIjI897N/lKON1/W7RokWXczHy8FRkZSbNmzVi4cCGJiYmULVuWOnXqMGPGDDZs2MBNN91E6dKls/TX48eP0717dx544AEmT55M//79Wbx4Mffffz9AjnbNXr+nYcOGV96gquqXH65L854+ffp45DhjxozxyHFyK3vcGe1WIH8Gqnn/Ofz73//WkydPXvDru3bt0vHjx7s/92Q7ne/D+q9LXvtnQW2/S8nv8eFy2rsg/X5n50vtmP2jILdrdvk5HuRlDPb7R1reEhwc7F49cCVyu1mbJyQmJlKhQgWvnc8b8vpzGDBgAMWLF7/g199//32qVat2JaH5NF/sv999951Pb+txLk+136Xk5/gwd+5catWqlW/H9wRf7KfZrV279rwTo31ZfvVfT7azJ9rVCg+aLKzwYO5Y4UFnWOFB77LCg55hhQc9Ly9jsN/O4QkMDDwgIs7NNi2gAgMDPbYkyZ9/Bp5spwsd31/b7krktt2t/TzjYu1tbZx7lzNeWLvmTl7GYL+9w2OMMcYYk8nm8BhjjDHG71nCY4wxxhi/ZwmPMcYYY/yeJTzGGGOM8XuW8BhjjDHG71nCY4wxxhi/ZwmPMcYYY/yeJTzGGGOM8XuW8BhjjDHG71nCY4wxxhi/ZwmPMcYYY/yeJTzGGGOM8XuW8BhjjDHG71nCY4wxxhi/ZwmPMcYYY/yeJTzGGGOM8XuW8BhjjDHG71nCY4wxxhi/ZwmPMcYYY/yeJTzGGGOM8XuW8BhjjDHG71nCY4wxxhi/ZwmPMcYYY/yeJTzGGGOM8XuW8BhjjDHG71nCY4wxxhi/ZwmPMcYYY/yeJTzGGGOM8XuW8BhjjDHG71nCY4wxxhi/ZwmPMcYYY/yeJTzGGGOM8XuW8BhjjDHG7/0/yPnr/2RDMIQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Päätöspuumallin voin havainnollistaa kaaviona\n", "plt.figure(figsize=(10, 6))\n", "plot_tree(decision_tree=dtc, feature_names=X.columns)" ] } ], "metadata": { "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.9.12" } }, "nbformat": 4, "nbformat_minor": 5 }