Files
cas-pml/SL/aufgaben/template/4_WS/Loesungen/WS 15 Loesung.ipynb
T
2026-05-21 14:16:30 +02:00

225 lines
40 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"toc": true
},
"source": [
"# WS 15 Schwellenwert für Accuracy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* `.predict_proba()` gibt bei allen Klassifikatoren die Wahrscheinlichkeit für die Zugehörigkeit zu den einlenen Klassen zurück, `predict()` dagegen die wahrscheinlichtste Klasse selber\n",
"* für Zwei-Klassen Fragestellungen bedeutet dies, dass bei einer Wahrscheinlickkeit (proba) `> 0.5` für die erste Klasse diese zurückgegeben wird, andernfalls die zweite Klasse, `0.5` ist somit ein scheinbar willkürlicher Schwellenwert\n",
"* untersuchen Sie die Auswirkung anderer Schwellenwerte auf die Accuracy mit `RandomForestClassifier` auf den aufbereiteten Bankkunden-Datan\n",
"\n",
"* vorgeschlagenes Vorgehen:\n",
" * trainieren eines RandomForestClassifier mit den vorbereiteten Bankkundendaten (Trainingsdaten)\n",
" * bestimmen der Wahrscheinlichkeit für jede Beobachtung der entsprechenden Testdaten zur Klasse 'no'\n",
" * erstellen einens Range der zu untersuchenden Schwellenwerte, z.B. mit np.arange()\n",
" * in einem Loop über alle Werte dieses Ranges\n",
" * `y_pred` für den jeweiligen Schwellenwert berechnen (wiederum als `['no', 'yes']`)\n",
" * `accuracy_score()` der jeweiligen Prediction (und sammeln in einer Liste)\n",
" * ausgeben des besten Score-Wertes und des zugehörigen Schwellenwertes in der Konsole\n",
" * visualisieren der Ergebnisse auch als Lineplot "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"## prepare env, read and prepare data\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns; sns.set()\n",
"\n",
"codepath = '.././2_code' ## for import of user defined module\n",
"datapath = '../../3_data'\n",
"#codepath = '../2_code' ## for import of user defined module\n",
"#datapath = '../3_data'\n",
"\n",
"from sys import path; path.insert(1, codepath)\n",
"from os import chdir; chdir(datapath)\n",
"\n",
"from bfh_cas_pml import prep_data\n",
"X_train, X_test, y_train, y_test = prep_data('bank_data_prep.csv', target='y', seed=1234)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"ExecuteTime": {
"end_time": "2020-04-15T21:03:01.918701Z",
"start_time": "2020-04-15T21:03:01.844142Z"
}
},
"outputs": [],
"source": [
"## train a model\n",
"from sklearn.ensemble import RandomForestClassifier \n",
"model = RandomForestClassifier(random_state=1234)\n",
"model.fit(X_train, y_train) \n",
"\n",
"## prediction using .predict_proba()\n",
"y_pred_p_no = model.predict_proba(X_test)[:, 0]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"## inspect different threshold values\n",
"from sklearn.metrics import accuracy_score\n",
"\n",
"thresholds = np.arange(0, 1.01, 0.01)\n",
"scores = []\n",
"\n",
"for threshold in thresholds:\n",
" y_pred = np.where(y_pred_p_no > threshold, 'no', 'yes')\n",
" scores.append(accuracy_score(y_test, y_pred))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"max accuracy 0.8792 for threshold 0.56\n"
]
}
],
"source": [
"## results\n",
"print('max accuracy %6.4f for threshold %4.2f' % (\n",
" max(scores),\n",
" thresholds[scores.index(max(scores))]))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\werne\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"C:\\Users\\werne\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"## viszalization\n",
"sns.lineplot(x=thresholds, y=scores)\n",
"plt.scatter(x=thresholds[scores.index(max(scores))], y=max(scores), color=\"black\")\n",
"plt.xlabel('threshold')\n",
"plt.ylabel('accuracy');"
]
}
],
"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.11.7"
},
"toc": {
"base_numbering": "",
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "WS 15 Validierung - Sampling",
"title_sidebar": "Contents",
"toc_cell": true,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "195.867px"
},
"toc_section_display": true,
"toc_window_display": true
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"position": {
"height": "306.85px",
"left": "862px",
"right": "20px",
"top": "137px",
"width": "350px"
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}