Skip to content

Instantly share code, notes, and snippets.

@jshirius
Last active November 20, 2019 00:07
Show Gist options
  • Save jshirius/f56019e775c19e626e3fed0590ba4df8 to your computer and use it in GitHub Desktop.
Save jshirius/f56019e775c19e626e3fed0590ba4df8 to your computer and use it in GitHub Desktop.
Python・ロジスティク回帰からのAUC評価指標のサンプルコード
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/takizawa/.pyenv/versions/anaconda3-4.3.1/lib/python3.6/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": [
"array([0, 0, 0, 1])"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#オタクを判断する判別するもの\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.preprocessing import StandardScaler\n",
"from IPython.core.display import display\n",
"from sklearn.linear_model import LogisticRegression\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.model_selection import train_test_split\n",
"\n",
"\n",
"#説明変数と目的変数を分ける\n",
"pf = pd.read_csv(\"otaku_data.csv\")\n",
"X = pf.iloc[: , 1:-1]\n",
"y = pf.iloc[: , -1]\n",
"\n",
"# holdout\n",
"X_train,X_test,y_train,y_test=train_test_split(X,\n",
" y,\n",
" test_size=0.2,\n",
" random_state=3)\n",
"\n",
"#ロジテック回帰で学習\n",
"clf = LogisticRegression(random_state=1).fit(X_train, y_train)\n",
"\n",
"#予測\n",
"y_pred = clf.predict(X_test)\n",
"\n",
"y_pred"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"confusion matrix = \n",
" [[2 0]\n",
" [1 1]]\n",
"tn=2.000000 fp=0.000000 fn=1.000000 tp=1.000000\n",
"正解率(accuracy) = 0.75\n",
"適合率(precision) = 1.0\n",
"再現率(recall) = 0.5\n",
"F1スコア = 0.6666666666666666\n",
"[0.49029077 0.41097165 0.30278616 0.68056765]\n",
"[0. 0. 0.5 0.5 1. ]\n",
"[0. 0.5 0.5 1. 1. ]\n",
"[1.68056765 0.68056765 0.49029077 0.41097165 0.30278616]\n",
"14 0\n",
"2 1\n",
"1 0\n",
"17 1\n",
"Name: オタク判定, dtype: int64\n",
"AUCスコア 0.750\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3df5xWZZ3/8dfbAYUMBQVdBBM0f+GPbyghxqb4W6gQzUw2U3YVV02zTUmtRFCTEs3N0pT9rmXmD/BHRK6K+QMpFYVpEAUXI0EcoEQUdG1YmeGzf5zDeDNzz3ADc+5x5ryfj8f9mHPOfd3nfM7MPffnvq7rnOtSRGBmZvm1TWsHYGZmrcuJwMws55wIzMxyzonAzCznnAjMzHKuQ2sHsLm6d+8effr0ae0wzMzalMrKyrcjokex59pcIujTpw9z5sxp7TDMzNoUSW809ZybhszMcs6JwMws55wIzMxyrs31ERSzbt06qqurWbt2bWuHYjnSqVMnevfuTceOHVs7FLOt0i4SQXV1NV26dKFPnz5Iau1wLAciglWrVlFdXU3fvn1bOxyzrZJZIpB0B/BF4K2IOLDI8wJ+AgwD/g6Miog/bcmx1q5d6yRgZSWJnXfemZUrVzK1ahkTpy9k+eoaduvamTEn7MuI/r1aO0RrR7J+j2XZR/BL4MRmnh8K7J0+zgV+vjUHcxKwcpPE3z+s5YqHXmbZ6hoCWLa6hiseepmpVctaOzxrJ6ZWLcv8PZZZjSAiZkrq00yRk4BfRTIO9ixJXSX1jIgVWcVk1tLeq6mlZl3dRttq1tXxnQfmce+LS1spKmtPqpau5sO69Rttq1lXx8TpC1usVtCaVw31At4sWK9OtzUi6VxJcyTNWblyZVmCMytF3fri83k0/Mc121JNvZeWr65psWO0Zmdxsbacov9VETEJmAQwYMCArZ5Jx226TVuxYgWjR4/m4Ycfbu1QmnTnnXdy7bXXAvD973+fs846q1GZr371qyxcuBCA1atX07VrV+bOncuSJUvYf//92XfffQEYNGgQt912GwCVlZWMGjWKmpoahg0bxk9+8hMkcemllzJs2DCOPvroRsep2KZ4k2Svrp2Z/K+Ht8j5Wr4N/uFTLCvyob9b184tdozWTATVwO4F672B5VkfdEN724bq/Ib2NqBFkkFEEBFss035K1u1tbV06LB1f9If//jHjB49uuTydXV1VFRUbNUxN8c777zD+PHjmTNnDpI49NBDGT58ON26dduo3OTJk+uXL7nkEnbcccf69b322ou5c+c22vf555/PpEmTGDRoEMOGDeOxxx5j6NChXHTRRYwePbpoItihcwc6d6zYqHmoc8cKxpywb0ucrhljTth3o88saPn3WGsmgmnAhZLuAw4D1rRE/8D4381nwfL3mny+qfa25tp0++22A1d96YAm97lkyRKGDh3KUUcdxfPPP8/UqVN57rnnuO6664gIvvCFL/CjH/0IgMcee4zvfve71NXV0b17d5588smN9lVXV8dll13G9OnTkcTo0aO56KKL6sdY6t69O3PmzOHSSy9lxowZjBs3juXLl7NkyRK6d+/OX/7yF+644w4OOCCJd8iQIdx4443st99+XHTRRbz88svU1tYybtw4TjrppEbn8uCDD9Z/216yZAlf//rX+eCDDwD42c9+xuc+9zlmzJjB+PHj6dmzJ3PnzmXBggX8+te/5uabb+bDDz/ksMMO49Zbb6WiooLzzz+f2bNnU1NTw6mnnsr48eOb/D2WYvr06Rx33HHstNNOABx33HE89thjjBw5smj5iGDKlCk89dRTze53xYoVvPfeexx+ePIt/swzz2Tq1KkMHTqUPfbYg1WrVvHXv/6Vf/iHf9jodZ/YtgMTTjmI7zwwjw/r1tPLNUxrYRveS1m2YmR5+ei9wBCgu6Rq4CqgI0BE3AY8QnLp6CKSy0f/OatYCjXV3ra1bboLFy7kF7/4BbfeeivLly/nsssuo7Kykm7dunH88cczdepUBg8ezOjRo5k5cyZ9+/blnXfeabSfSZMmsXjxYqqqqujQoUPRMg1VVlbyxz/+kc6dO3PTTTcxZcoUxo8fz4oVK1i+fDmHHnoo3/3udzn66KO54447WL16NQMHDuTYY49l++23r9/P4sWL6datG9tttx0Au+yyC7///e/p1KkTf/7znxk5cmT9gH8vvvgir7zyCn379uXVV19l8uTJPPvss3Ts2JELLriAu+++mzPPPJMf/OAH7LTTTtTV1XHMMccwb948Dj744I3inzhxInfffXej8zriiCO4+eabN9q2bNkydt/9o4pk7969Wbas6asn/vCHP7Drrruy9957b3Se/fv3Z4cdduDaa6/l85//PMuWLaN3795N7veQQw7h2Wef5ctf/nKjY4zo36v+S4SbgywLI/r3yvTLRZZXDRX/ivbR8wF8o6WP29w3d2i6vW1r23T32GMPBg0aBMDs2bMZMmQIPXokI75+7WtfY+bMmVRUVHDEEUfU34C04VttoSeeeILzzjuvvomnWJmGhg8fTufOSXvhaaedxnHHHcf48eOZMmUKX/nKVwB4/PHHmTZtGjfccAOQ3HuxdOlS9t9///r9rFixoj5mSO7YvvDCC5k7dy4VFRW89tpr9c8NHDiw/jyefPJJKisr+exnPwtATU0Nu+yyCwBTpkxh0qRJ1NbWsmLFChYsWNAoEYwZM4YxY8Zs8jwh+YbfUHOXDt97770b1RZ69uzJ0qVL2XnnnamsrGTEiBHMnz9/k/vdZZddWL4885ZLs1bRLu4s3hxZtbcVfrMu9qGyYfum7ndoqkyHDh1Yvz6ptTQcSqPw2L169WLnnXdm3rx5TJ48mdtvv71+vw8++GB9J2kxnTt33mjfN910E7vuuisvvfQS69evp1OnTkWPGRGcddZZTJgwYaP9LV68mBtuuIHZs2fTrVs3Ro0aVXQYkM2pEfTu3ZsZM2bUr1dXVzNkyJCi51NbW8tDDz1EZWVl/bbtttuuvsZz6KGHstdee/Haa6/Ru3dvqqurN9rvbrvtVr++du3a+mRr1t7kbtC5Ef17MeGUg+jVtTMiqQlMOOWgFq12HXbYYTzzzDO8/fbb1NXVce+993LkkUdy+OGH88wzz7B48WKAos0+xx9/PLfddhu1tbUblenTp0/9B9qDDz7Y7PFPP/10rr/+etasWcNBBx0EwAknnMBPf/rT+iRVVVXV6HX77LMPS5YsqV9fs2YNPXv2ZJtttuGuu+6irq6u0WsAjjnmGB544AHeeuut+pjfeOMN3nvvPbbffnt23HFH/va3v/Hoo48Wff2YMWOYO3duo0fDJLDhPB5//HHeffdd3n33XR5//HFOOOGEovt94okn2G+//TZq8lm5cmX9ebz++uv8+c9/Zs8996Rnz5506dKFWbNmERH86le/2qgP5bXXXuPAAxvdIG/WLuSuRgDZt7f17NmTCRMmcNRRRxERDBs2rP5DZdKkSZxyyimsX7++vg2+0DnnnMNrr73GwQcfTMeOHRk9ejQXXnghV111FWeffTbXXXcdhx12WLPHP/XUU7n44ou58sor67ddeeWVfOtb3+Lggw8mIujTp0+jS0S333579tprLxYtWsSnP/1pLrjgAr785S9z//33c9RRR21UCyjUr18/rr32Wo4//njWr19Px44dueWWWxg0aBD9+/fngAMOYM8992Tw4MFb8uvcyE477cSVV15Z3ww1duzY+uazc845h/POO48BAwYAcN999zXqRJ45cyZjx46lQ4cOVFRUcNttt9W//uc//3n95aNDhw5l6NChQNJEtmjRovr9mrU3aqoZ4+NqwIAB0XCGsldffXWjtm7bcr/5zW+orKysv3LIkt/Jn/70J6655ppGz21473319ucBdxbbx5ekyogo+m0mlzUCa9rJJ5/MqlWrWjuMj5Xa2louueSS1g7DLDPtJhGU0hFrpTnnnHNaO4SPlQ1XXjXU1mrTZk1pF53FnTp1YtWqVf7HtLLZMB9B4ZVUZm1Vu6gRbLj0zwPSWTltmKHMrK1rF4mgY8eOniXKzGwLtYumITMz23JOBGZmOedEYGaWc04EZmY550RgZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc04EZmY550RgZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc04EZmY550RgZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc04EZmY5l2kikHSipIWSFkm6vMjzn5L0tKQqSfMkDcsyHjMzayyzRCCpArgFGAr0A0ZK6teg2PeBKRHRHzgduDWreMzMrLgsawQDgUUR8XpEfAjcB5zUoEwAO6TLOwLLM4zHzMyKyDIR9ALeLFivTrcVGgecIakaeAS4qNiOJJ0raY6kOStXrswiVjOz3MoyEajItmiwPhL4ZUT0BoYBd0lqFFNETIqIARExoEePHhmEamaWX1kmgmpg94L13jRu+jkbmAIQEc8DnYDuGcZkZmYNZJkIZgN7S+oraVuSzuBpDcosBY4BkLQ/SSJw24+ZWRlllggioha4EJgOvEpyddB8SVdLGp4WuwQYLekl4F5gVEQ0bD4yM7MMdchy5xHxCEkncOG2sQXLC4DBWcZgZmbN853FZmY550RgZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc04EZmY550RgZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc5tMBEqcIWlsuv4pSQOzD83MzMqhlBrBrcDhJLOJAbxPMim9mZm1A6UMQ31YRBwiqQogIt5NJ5oxM7N2oJQawTpJFaTzDUvqAazPNCozMyubUhLBzcBvgF0k/QD4IzAh06jMzKxsNtk0FBF3S6okmVtYwIiIeDXzyMzMrCw2mQgk3RURXwf+u8g2MzNr40ppGjqgcCXtLzg0m3DMzKzcmkwEkq6Q9D5wsKT3JL2frr8F/LZsEZqZWaaaTAQRMSEiugATI2KHiOiSPnaOiCvKGKOZmWWolM7iKyR1A/YGOhVsn5llYGZmVh6ldBafA1wM9AbmAoOA54Gjsw3NzMzKoZTO4ouBzwJvRMRRQH9gZaZRmZlZ2ZSSCNZGxFoASdtFxH8D+2YblpmZlUspYw1VS+oKTAV+L+ldYHm2YZmZWbmU0ll8cro4TtLTwI7AY5lGZWZmZdNsIpC0DTAvIg4EiIhnyhKVmZmVTbN9BBGxHnhJ0qfKFI+ZmZVZKZ3FPYH5kp6UNG3Do5SdSzpR0kJJiyRd3kSZ0yQtkDRf0j2bE7yZmW29UjqLx2/JjtMxiW4BjgOqgdmSpkXEgoIyewNXAIPTCW922ZJjmZnZliuls3hL+wUGAosi4nUASfcBJwELCsqMBm6JiHfTY721hccyM7MtVErT0JbqBbxZsF6dbiu0D7CPpGclzZJ0YrEdSTpX0hxJc1au9L1sZmYtKctEoCLbosF6B5IxjIYAI4H/n96zsPGLIiZFxICIGNCjR48WD9TMLM9KSgSSOkva3LuJq4HdC9Z70/hGtGrgtxGxLiIWAwtJEoOZmZXJJhOBpC+RDDb3WLr+mRKvGpoN7C2pr6RtgdOBhq+bChyV7rc7SVPR66WHb2ZmW6uUGsE4ko7f1QARMRfos6kXRUQtcCEwHXgVmBIR8yVdLWl4Wmw6sErSAuBpYExErNrckzAzsy1XyuWjtRGxRirW5N+8iHgEeKTBtrEFywF8O32YmVkrKCURvCLpn4CK9Lr/bwLPZRuWmZmVSylNQxeRTGD/v8A9wBrgW1kGZWZm5VNKjWDfiPge8L2sgzEzs/IrpUbwY0n/LekaSQdkHpGZmZXVJhNBOj3lEJLpKSdJelnS97MOzMzMyqOkG8oi4q8RcTNwHsk9BWM38RIzM2sjSrmhbH9J4yS9AvyM5Iqh3plHZmZmZVFKZ/EvgHuB4yPCcxWbmbUzpQxDPagcgZiZWetoMhFImhIRp0l6mY1HDRXJTcEHZx6dmZllrrkawcXpzy+WIxAzM2sdTXYWR8SKdPGCiHij8AFcUJ7wWsbUqmUM/uFT9L38vxj8w6eYWrWstUOydmRq1TKqlq7mhcXv+P1lbVIpl48eV2Tb0JYOJCtTq5ZxxUMvs2x1DQEsW13DFQ+97H9WaxEb3l8f1q0H/P6ytqm5PoLzSb757ylpXsFTXYBnsw6spUycvpCadXUbbatZV8d3HpjHvS8ubaWorL2oWrq6PglsULOujonTFzKif8OZWc0+nprrI7gHeBSYAFxesP39iHgn06ha0PLVNUW3N/znNdsSTb2PmnrfmX0cNZcIIiKWSPpGwyck7dRWksFuXTuzrMg/Za+unZn8r4e3QkTWngz+4VNF31+7de3cCtGYbZnm+gjuSX9WAnPSn5UF623CmBP2pXPHio22de5YwZgTNncKZrPG/P6y9qDJGkFEfDH92bd84bS8De2033lgHh/WradX186MOWFft99ai9jwPpo4fSHLV9ewm99f1gZt8s5iSYOBuRHxgaQzgEOAf4+INtPTOqJ/r/qOYTcHWUsb0b+XP/itTSvl8tGfA3+X9P+A7wBvAHdlGpWZmZVNKYmgNp1k/iTgJxHxE5JLSM3MrB0oZfTR9yVdAXwd+LykCqBjtmGZmVm5lFIj+CrJxPX/EhF/BXoBEzONyszMyqaUqSr/CtwN7Cjpi8DaiPhV5pGZmVlZlDJD2WnAi8BXgNOAFySdmnVgZmZWHqX0EXwP+GxEvAUgqQfwBPBAloGZmVl5lNJHsM2GJJBaVeLrzMysDSilRvCYpOkk8xZD0nn8SHYhmZlZOZUyZ/EYSacA/0gyTeWkiPhN5pGZmVlZlFIjAHgOqAPWA7OzC8fMzMqtlKuGziG5auhk4FRglqR/yTowMzMrj1I6fccA/SNiVEScBRwKXFbKziWdKGmhpEWSLm+m3KmSQtKA0sI2M7OWUkoiqAbeL1h/H3hzUy9Kh6K4hWR+437ASEn9ipTrAnwTeKGUgM3MrGWVkgiWkdxENk7SVcAsYJGkb0v6djOvGwgsiojXI+JD4D6Sgesauga4Hli7mbGbmVkLKCUR/AWYCkS6/ltgBckIpM2NQtqLjWsO1em2epL6A7tHxMPNBSDpXElzJM1ZuXJlCSGbmVmpSrl8dPwW7lvFdlf/pLQNcBMwqoQYJgGTAAYMGBCbKG5mZpshyzuEq4HdC9Z7A8sL1rsABwIzJC0BBgHT3GFsZlZeWSaC2cDekvpK2hY4HZi24cmIWBMR3SOiT0T0Iel7GB4RczKMyczMGsgsEURELXAhMB14FZgSEfMlXS1peFbHNTOzzVPK5PX7kMxbvGtEHCjpYJJv7tdu6rUR8QgNxiWKiLFNlB1SUsRmZtaiSqkR/AdwBbAOICLmkTTzmJlZO1BKIvhERLzYYFttFsGYmVn5lZII3pa0F+mln+nsZCsyjcrMzMqmlNFHv0FyDf9+kpYBi4EzMo3KzMzKppQbyl4HjpW0PclsZe9v6jVmZtZ2lHLV0NgG6wBExNUZxWRmZmVUStPQBwXLnYAvktwXYGZm7UApTUM3Fq5LuoGCO4TNzKxt25I7iz8B7NnSgZiZWesopY/gZT4aNbQC6AG4f8DMrJ0opY/giwXLtcDf0nGEzMysHWg2EaRzBvxXRBxYpnjMzKzMmu0jiIj1wEuSPlWmeMzMrMxKaRrqCcyX9CIFl5JGhIeSNjNrB0pJBFs6VaWZmbUBpSSCYRFxWeEGST8CnskmJDMzK6dS7iM4rsi2oS0diJmZtY4mawSSzgcuAPaUNK/gqS7As1kHZmZm5dFc09A9wKPABODygu3vR8Q7mUZlZmZl02QiiIg1wBpgZPnCMTOzctuSsYbMzKwdcSIwM8s5JwIzs5xzIjAzyzknAjOznHMiMDPLOScCM7OccyIwM8s5JwIzs5xzIjAzy7lME4GkEyUtlLRI0uVFnv+2pAWS5kl6UtIeWcZjZmaNZZYIJFUAt5AMWd0PGCmpX4NiVcCAiDgYeAC4Pqt4zMysuCxrBAOBRRHxekR8CNwHnFRYICKejoi/p6uzgN4ZxmNmZkVkmQh6AW8WrFen25pyNsmw141IOlfSHElzVq5c2YIhmplZlolARbZF0YLSGcAAYGKx5yNiUkQMiIgBPXr0aMEQzcyslDmLt1Q1sHvBem9gecNCko4FvgccGRH/m2E8ZmZWRJY1gtnA3pL6StoWOB2YVlhAUn/gdmB4RLyVYSxmZtaEzBJBRNQCFwLTgVeBKRExX9LVkoanxSYCnwTulzRX0rQmdmdmZhnJsmmIiHgEeKTBtrEFy8dmeXwzM9s031lsZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc04EZmY550RgZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc04EZmY550RgZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc04EZmY550RgZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc04EZmY550RgZpZzTgRmZjnnRGBmlnNOBGZmOedEYGaWc04EZmY550RgZpZzmSYCSSdKWihpkaTLizy/naTJ6fMvSOqTRRxTq5ZRtXQ1Lyx+h8E/fIqpVcuyOIyZWZuUWSKQVAHcAgwF+gEjJfVrUOxs4N2I+DRwE/Cjlo5jatUyrnjoZT6sWw/AstU1XPHQy04GZmapLGsEA4FFEfF6RHwI3Aec1KDMScCd6fIDwDGS1JJBTJy+kJp1dRttq1lXx8TpC1vyMGZmbVaWiaAX8GbBenW6rWiZiKgF1gA7N9yRpHMlzZE0Z+XKlZsVxPLVNZu13cwsb7JMBMW+2ccWlCEiJkXEgIgY0KNHj80KYreunTdru5lZ3mSZCKqB3QvWewPLmyojqQOwI/BOSwYx5oR96dyxYqNtnTtWMOaEfVvyMGZmbVaWiWA2sLekvpK2BU4HpjUoMw04K10+FXgqIhrVCLbGiP69mHDKQfTq2hkBvbp2ZsIpBzGif8NWKjOzfOqQ1Y4jolbShcB0oAK4IyLmS7oamBMR04D/BO6StIikJnB6FrGM6N/LH/xmZk3ILBEARMQjwCMNto0tWF4LfCXLGMzMrHm+s9jMLOecCMzMcs6JwMws55wIzMxyTi18tWbmJK0E3tjCl3cH3m7BcNoCn3M++JzzYWvOeY+IKHpHbptLBFtD0pyIGNDacZSTzzkffM75kNU5u2nIzCznnAjMzHIub4lgUmsH0Ap8zvngc86HTM45V30EZmbWWN5qBGZm1oATgZlZzrXLRCDpREkLJS2SdHmR57eTNDl9/gVJfcofZcsq4Zy/LWmBpHmSnpS0R2vE2ZI2dc4F5U6VFJLa/KWGpZyzpNPSv/V8SfeUO8aWVsJ7+1OSnpZUlb6/h7VGnC1F0h2S3pL0ShPPS9LN6e9jnqRDtvqgEdGuHiRDXv8F2BPYFngJ6NegzAXAbeny6cDk1o67DOd8FPCJdPn8PJxzWq4LMBOYBQxo7bjL8HfeG6gCuqXru7R23GU450nA+elyP2BJa8e9led8BHAI8EoTzw8DHiWZ4XEQ8MLWHrM91ggGAosi4vWI+BC4DzipQZmTgDvT5QeAYyQVmzazrdjkOUfE0xHx93R1FsmMcW1ZKX9ngGuA64G15QwuI6Wc82jgloh4FyAi3ipzjC2tlHMOYId0eUcaz4TYpkTETJqfqfEk4FeRmAV0ldRza47ZHhNBL+DNgvXqdFvRMhFRC6wBdi5LdNko5ZwLnU3yjaIt2+Q5S+oP7B4RD5czsAyV8nfeB9hH0rOSZkk6sWzRZaOUcx4HnCGpmmT+k4vKE1qr2dz/903KdGKaVlLsm33Da2RLKdOWlHw+ks4ABgBHZhpR9po9Z0nbADcBo8oVUBmU8nfuQNI8NISk1vcHSQdGxOqMY8tKKec8EvhlRNwo6XCSWQ8PjIj12YfXKlr886s91giqgd0L1nvTuKpYX0ZSB5LqZHNVsY+7Us4ZSccC3wOGR8T/lim2rGzqnLsABwIzJC0haUud1sY7jEt9b/82ItZFxGJgIUliaKtKOeezgSkAEfE80IlkcLb2qqT/983RHhPBbGBvSX0lbUvSGTytQZlpwFnp8qnAU5H2wrRRmzzntJnkdpIk0NbbjWET5xwRayKie0T0iYg+JP0iwyNiTuuE2yJKeW9PJbkwAEndSZqKXi9rlC2rlHNeChwDIGl/kkSwsqxRltc04Mz06qFBwJqIWLE1O2x3TUMRUSvpQmA6yRUHd0TEfElXA3MiYhrwnyTVx0UkNYHTWy/irVfiOU8EPgncn/aLL42I4a0W9FYq8ZzblRLPeTpwvKQFQB0wJiJWtV7UW6fEc74E+A9J/0bSRDKqLX+xk3QvSdNe97Tf4yqgI0BE3EbSDzIMWAT8HfjnrT5mG/59mZlZC2iPTUNmZrYZnAjMzHLOicDMLOecCMzMcs6JwMws55wI7GNN0jclvSrp7mbKDJH0sRhGQtLwDSNkShohqV/Bc1enN/WVK5Yhkj5XruNZ29Xu7iOwducCYGh6l+zHXnpd+4Z7GEYADwML0ufGtvTxJHVIx8sqZgjwP8BzLX1ca19cI7CPLUm3kQw/PE3Sv0kaKOm5dNz55yTtW+Q1R0qamz6qJHVJt4+RNDsdv318E8f7H0k3SvpTOmdDj3T7Z9IB3OZJ+o2kbun2b+qjOR7uS7eNkvSz9Jv4cGBiGstekn6pZG6EoZKmFBx3iKTfpcvHS3o+jeF+SZ8sEucMSddJega4WNKXlMyrUSXpCUm7Kplj4zzg39Ljf15SD0kPpr+H2ZIGb8Wfx9qT1h572w8/mnsAS4Du6fIOQId0+VjgwXR5CPBwuvw7YHC6/EmSWu/xJGPWi+TLz8PAEUWOFcDX0uWxwM/S5XnAkeny1cC/p8vLge3S5a7pz1EFr/slcGrB/n9JMqRJB5JhEbZPt/8cOINkfJyZBdsvA8YWiXMGcGvBejc+ujn0HODGdHkccGlBuXuAf0yXPwW82tp/Xz8+Hg83DVlbsiNwp6S9ST60OxYp8yzw47RP4aGIqJZ0PEkyqErLfJJkILaZDV67HpicLv8aeEjSjiQf8s+k2+8E7k+X5wF3S5pKMsZPSSIZNrKLn8MAAAHgSURBVOEx4EuSHgC+AHyHZETYfsCz6TAg2wLPN7GbyQXLvYHJSsak3xZoqhntWKCfPpp6YwdJXSLi/VJjt/bJicDakmuApyPi5LTpY0bDAhHxQ0n/RTIWy6y0c1bAhIi4fTOPt6nxV75AMpvUcOBKSQdsxr4nA98gGetqdkS8r+QT+vcRMbKE139QsPxT4McRMU3SEJKaQDHbAIdHRM1mxGk54D4Ca0t2BJaly6OKFZC0V0S8HBE/AuYA+5EMWPYvG9rbJfWStEuRl29D0nQD8E/AHyNiDfCupM+n278OPKNkvoPdI+Jpkm/zXUlqGoXeJxkOu5gZJNMRjuajb/ezgMGSPp3G+QlJ+zTx+kKFv5ezCrY3PP7jwIUbViR9poR9Ww44EVhbcj0wQdKzJCNRFvMtSa9IegmoAR6NiMdJ2sefl/QyyfSkxT6gPwAOkFQJHE3SHwDJh+tESfOAz6TbK4Bfp/urAm6KxpO/3AeMSTtx9yp8IiLqSPoqhqY/iYiVJAnu3vRYs0gS2aaMIxlV9g/A2wXbfwecvKGzGPgmMCDt3F5A0pls5tFHzTaQ9D8R0egqHbP2zjUCM7Occ43AzCznXCMwM8s5JwIzs5xzIjAzyzknAjOznHMiMDPLuf8DTejAHjNN0R4AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score\n",
"from sklearn.metrics import roc_curve, auc\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"\n",
"#混同行列を取り出す\n",
"print('confusion matrix = \\n', confusion_matrix(y_true=y_test, y_pred=y_pred))\n",
"tn, fp, fn, tp = confusion_matrix(y_true=y_test, y_pred=y_pred).ravel()\n",
"print(\"tn=%f fp=%f fn=%f tp=%f\" % (tn, fp, fn, tp))\n",
"\n",
"#正解率\n",
"ans = accuracy_score(y_test, y_pred)\n",
"print(\"正解率(accuracy) = \" + str(ans))\n",
"\n",
"#適合率\n",
"ans = precision_score(y_test, y_pred)\n",
"print(\"適合率(precision) = \" + str(ans))\n",
"\n",
"#再現率\n",
"ans = recall_score(y_test, y_pred)\n",
"print(\"再現率(recall) = \" + str(ans))\n",
"\n",
"#F値(f1スコア)\n",
"ans = f1_score(y_test, y_pred) \n",
"print(\"F1スコア = \" + str(ans))\n",
"\n",
"#AUCスコア\n",
"Y_score = clf.predict_proba(X_test)# 検証データがクラス1に属する確率を出す\n",
"Y_score = Y_score[:,1]\n",
"\n",
"print(Y_score)\n",
"\n",
"#ここでroc曲線の元になるfpr、fprを取り出す。thresholdsはしきい値\n",
"fpr, tpr, thresholds = roc_curve(y_true=y_test, y_score=Y_score)\n",
"\n",
"print(fpr)\n",
"print(tpr)\n",
"print(thresholds)\n",
"print(y_test)\n",
"\n",
"\n",
"print('AUCスコア %0.3f' % auc(fpr, tpr))\n",
"plt.plot(fpr, tpr, label='roc curve (area = %0.3f)' % auc(fpr, tpr) , marker='o')\n",
"plt.legend()\n",
"plt.xlabel('false positive rate')\n",
"plt.ylabel('true positive rate')\n",
"plt.show()\n",
"\n",
"\n",
"\n"
]
},
{
"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.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment