{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "judicial-clearing",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "defensive-liver",
"metadata": {},
"outputs": [],
"source": [
"data = pd.read_csv('MediaSearch_20210127.tsv',sep='\\t',header=None)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "brave-cylinder",
"metadata": {},
"outputs": [],
"source": [
"data[1] = data[1].apply(lambda x: int(x[x.find(':')+1:]))\n",
"data.iloc[:,2:17] = data.iloc[:,2:17].applymap(lambda x: float(x[x.find(':')+1:]))"
]
},
{
"cell_type": "code",
"execution_count": 70,
"id": "unable-shore",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 0 | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
" 9 | \n",
" 10 | \n",
" 11 | \n",
" 12 | \n",
" 13 | \n",
" 14 | \n",
" 15 | \n",
" 16 | \n",
" 17 | \n",
" 18 | \n",
"
\n",
" \n",
" \n",
" \n",
" 7431 | \n",
" -1 | \n",
" 8 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 17.072510 | \n",
" 18.349998 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" # Patterson's General Store Ledger - DPLA - 00... | \n",
" Miss James | \n",
"
\n",
" \n",
" 7432 | \n",
" -1 | \n",
" 8 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 17.072510 | \n",
" 18.349998 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" # Patterson's General Store Ledger - DPLA - 00... | \n",
" Miss James | \n",
"
\n",
" \n",
" 7433 | \n",
" -1 | \n",
" 8 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 5.587692 | \n",
" 4.949943 | \n",
" 10.363359 | \n",
" 10.363359 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 7.291962 | \n",
" 0.0 | \n",
" 11.986000 | \n",
" 12.289614 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" # James Meredith's Letter to the Registrar, Un... | \n",
" Miss James | \n",
"
\n",
" \n",
" 7434 | \n",
" 1 | \n",
" 8 | \n",
" 15.927404 | \n",
" 16.88351 | \n",
" 16.058949 | \n",
" 15.291920 | \n",
" 12.418142 | \n",
" 12.418142 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 22.127102 | \n",
" 0.0 | \n",
" 19.741373 | \n",
" 18.958454 | \n",
" 17.161888 | \n",
" 17.941786 | \n",
" 0.0 | \n",
" # Miss James by Camille Silvy (cropped).jpg | \n",
" Miss James | \n",
"
\n",
" \n",
" 7435 | \n",
" 0 | \n",
" 8 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 15.977814 | \n",
" 16.052890 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 22.987890 | \n",
" 0.0 | \n",
" 17.306084 | \n",
" 17.825270 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" # Hindhead Tunnel Miss James Bridge.JPG | \n",
" Miss James | \n",
"
\n",
" \n",
" 7436 | \n",
" -1 | \n",
" 8 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 19.746199 | \n",
" 20.056736 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" # Herstmonceux Place - geograph.org.uk - 15863... | \n",
" Miss James | \n",
"
\n",
" \n",
" 7437 | \n",
" -1 | \n",
" 8 | \n",
" 17.795383 | \n",
" 16.75280 | \n",
" 15.976525 | \n",
" 16.070520 | \n",
" 14.965977 | \n",
" 14.965977 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 23.022842 | \n",
" 0.0 | \n",
" 17.441265 | \n",
" 15.371144 | \n",
" 14.034350 | \n",
" 14.117758 | \n",
" 0.0 | \n",
" # Miss James' Walk NT sign.jpg | \n",
" Miss James | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4 5 6 7 \\\n",
"7431 -1 8 0.000000 0.00000 0.000000 0.000000 0.000000 0.000000 \n",
"7432 -1 8 0.000000 0.00000 0.000000 0.000000 0.000000 0.000000 \n",
"7433 -1 8 0.000000 0.00000 5.587692 4.949943 10.363359 10.363359 \n",
"7434 1 8 15.927404 16.88351 16.058949 15.291920 12.418142 12.418142 \n",
"7435 0 8 0.000000 0.00000 15.977814 16.052890 0.000000 0.000000 \n",
"7436 -1 8 0.000000 0.00000 0.000000 0.000000 0.000000 0.000000 \n",
"7437 -1 8 17.795383 16.75280 15.976525 16.070520 14.965977 14.965977 \n",
"\n",
" 8 9 10 11 12 13 14 15 \\\n",
"7431 0.0 0.0 0.000000 0.0 17.072510 18.349998 0.000000 0.000000 \n",
"7432 0.0 0.0 0.000000 0.0 17.072510 18.349998 0.000000 0.000000 \n",
"7433 0.0 0.0 7.291962 0.0 11.986000 12.289614 0.000000 0.000000 \n",
"7434 0.0 0.0 22.127102 0.0 19.741373 18.958454 17.161888 17.941786 \n",
"7435 0.0 0.0 22.987890 0.0 17.306084 17.825270 0.000000 0.000000 \n",
"7436 0.0 0.0 0.000000 0.0 19.746199 20.056736 0.000000 0.000000 \n",
"7437 0.0 0.0 23.022842 0.0 17.441265 15.371144 14.034350 14.117758 \n",
"\n",
" 16 17 18 \n",
"7431 0.0 # Patterson's General Store Ledger - DPLA - 00... Miss James \n",
"7432 0.0 # Patterson's General Store Ledger - DPLA - 00... Miss James \n",
"7433 0.0 # James Meredith's Letter to the Registrar, Un... Miss James \n",
"7434 0.0 # Miss James by Camille Silvy (cropped).jpg Miss James \n",
"7435 0.0 # Hindhead Tunnel Miss James Bridge.JPG Miss James \n",
"7436 0.0 # Herstmonceux Place - geograph.org.uk - 15863... Miss James \n",
"7437 0.0 # Miss James' Walk NT sign.jpg Miss James "
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[data[1] == 8] # select qid"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "recreational-leonard",
"metadata": {},
"outputs": [],
"source": [
"feature = data.iloc[:,2:17].copy()\n",
"feature.columns = [str(x) for x in range(1, 16)]"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "martial-luxembourg",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
" 9 | \n",
" 10 | \n",
" 11 | \n",
" 12 | \n",
" 13 | \n",
" 14 | \n",
" 15 | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.0 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
" 8783.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 1.873118 | \n",
" 1.919654 | \n",
" 9.729096 | \n",
" 9.315373 | \n",
" 8.179032 | \n",
" 8.179032 | \n",
" 1.960876 | \n",
" 1.882697 | \n",
" 11.608655 | \n",
" 0.0 | \n",
" 13.281795 | \n",
" 12.398102 | \n",
" 3.987170 | \n",
" 3.797345 | \n",
" 1.606014 | \n",
"
\n",
" \n",
" std | \n",
" 4.656279 | \n",
" 4.651493 | \n",
" 8.046713 | \n",
" 8.189460 | \n",
" 8.141790 | \n",
" 8.141790 | \n",
" 4.905001 | \n",
" 4.862315 | \n",
" 11.170136 | \n",
" 0.0 | \n",
" 8.856893 | \n",
" 8.978599 | \n",
" 7.209812 | \n",
" 7.109495 | \n",
" 4.235872 | \n",
"
\n",
" \n",
" min | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 7.360486 | \n",
" 6.230877 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 9.889608 | \n",
" 9.537116 | \n",
" 7.436558 | \n",
" 7.436558 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 11.490162 | \n",
" 0.0 | \n",
" 12.593857 | \n",
" 11.631214 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 14.970320 | \n",
" 14.613925 | \n",
" 13.459657 | \n",
" 13.459657 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 17.813028 | \n",
" 0.0 | \n",
" 18.695495 | \n",
" 17.750853 | \n",
" 7.326907 | \n",
" 6.376496 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" max | \n",
" 31.278097 | \n",
" 30.218302 | \n",
" 43.350067 | \n",
" 44.527184 | \n",
" 47.128155 | \n",
" 47.128155 | \n",
" 30.328350 | \n",
" 30.142078 | \n",
" 73.689400 | \n",
" 0.0 | \n",
" 54.403400 | \n",
" 55.522293 | \n",
" 47.798890 | \n",
" 45.360588 | \n",
" 14.294704 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 1 2 3 4 5 \\\n",
"count 8783.000000 8783.000000 8783.000000 8783.000000 8783.000000 \n",
"mean 1.873118 1.919654 9.729096 9.315373 8.179032 \n",
"std 4.656279 4.651493 8.046713 8.189460 8.141790 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"50% 0.000000 0.000000 9.889608 9.537116 7.436558 \n",
"75% 0.000000 0.000000 14.970320 14.613925 13.459657 \n",
"max 31.278097 30.218302 43.350067 44.527184 47.128155 \n",
"\n",
" 6 7 8 9 10 \\\n",
"count 8783.000000 8783.000000 8783.000000 8783.000000 8783.0 \n",
"mean 8.179032 1.960876 1.882697 11.608655 0.0 \n",
"std 8.141790 4.905001 4.862315 11.170136 0.0 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.0 \n",
"25% 0.000000 0.000000 0.000000 0.000000 0.0 \n",
"50% 7.436558 0.000000 0.000000 11.490162 0.0 \n",
"75% 13.459657 0.000000 0.000000 17.813028 0.0 \n",
"max 47.128155 30.328350 30.142078 73.689400 0.0 \n",
"\n",
" 11 12 13 14 15 \n",
"count 8783.000000 8783.000000 8783.000000 8783.000000 8783.000000 \n",
"mean 13.281795 12.398102 3.987170 3.797345 1.606014 \n",
"std 8.856893 8.978599 7.209812 7.109495 4.235872 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 7.360486 6.230877 0.000000 0.000000 0.000000 \n",
"50% 12.593857 11.631214 0.000000 0.000000 0.000000 \n",
"75% 18.695495 17.750853 7.326907 6.376496 0.000000 \n",
"max 54.403400 55.522293 47.798890 45.360588 14.294704 "
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature.describe()"
]
},
{
"cell_type": "code",
"execution_count": 101,
"id": "different-british",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
" 9 | \n",
" 10 | \n",
" 11 | \n",
" 12 | \n",
" 13 | \n",
" 14 | \n",
" 15 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 21.599610 | \n",
" 20.682966 | \n",
" 16.616700 | \n",
" 16.738070 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 23.066238 | \n",
" 0.0 | \n",
" 18.571686 | \n",
" 16.565067 | \n",
" 14.098110 | \n",
" 14.834125 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 17.829681 | \n",
" 17.955060 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 23.244255 | \n",
" 0.0 | \n",
" 20.544075 | \n",
" 19.795902 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 13.733603 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 13.584030 | \n",
" 13.691393 | \n",
" 9.782837 | \n",
" 9.782837 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 21.310215 | \n",
" 0.0 | \n",
" 17.368101 | \n",
" 17.481064 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 14.262909 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 14.194130 | \n",
" 14.266314 | \n",
" 10.036509 | \n",
" 10.036509 | \n",
" 14.340542 | \n",
" 14.655287 | \n",
" 23.026300 | \n",
" 0.0 | \n",
" 12.062780 | \n",
" 12.286295 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8778 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 5.472188 | \n",
" 5.472188 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.714787 | \n",
" 10.621951 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 11.901220 | \n",
"
\n",
" \n",
" 8779 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 8.862578 | \n",
" 8.512956 | \n",
" 9.209509 | \n",
" 9.209509 | \n",
" 8.934017 | \n",
" 9.085819 | \n",
" 13.406617 | \n",
" 0.0 | \n",
" 11.307065 | \n",
" 11.244468 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 8780 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 7.252279 | \n",
" 7.252279 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.166705 | \n",
" 9.703100 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 8781 | \n",
" 11.453621 | \n",
" 10.807982 | \n",
" 12.647715 | \n",
" 12.327956 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 14.847295 | \n",
" 0.0 | \n",
" 11.634139 | \n",
" 11.382575 | \n",
" 13.589712 | \n",
" 13.659342 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 8782 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 8.449377 | \n",
" 8.449377 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.399742 | \n",
" 10.222792 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
"
\n",
"
8783 rows × 15 columns
\n",
"
"
],
"text/plain": [
" 1 2 3 4 5 6 \\\n",
"0 21.599610 20.682966 16.616700 16.738070 0.000000 0.000000 \n",
"1 0.000000 0.000000 17.829681 17.955060 0.000000 0.000000 \n",
"2 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"3 0.000000 0.000000 13.584030 13.691393 9.782837 9.782837 \n",
"4 0.000000 0.000000 14.194130 14.266314 10.036509 10.036509 \n",
"... ... ... ... ... ... ... \n",
"8778 0.000000 0.000000 0.000000 0.000000 5.472188 5.472188 \n",
"8779 0.000000 0.000000 8.862578 8.512956 9.209509 9.209509 \n",
"8780 0.000000 0.000000 0.000000 0.000000 7.252279 7.252279 \n",
"8781 11.453621 10.807982 12.647715 12.327956 0.000000 0.000000 \n",
"8782 0.000000 0.000000 0.000000 0.000000 8.449377 8.449377 \n",
"\n",
" 7 8 9 10 11 12 13 \\\n",
"0 0.000000 0.000000 23.066238 0.0 18.571686 16.565067 14.098110 \n",
"1 0.000000 0.000000 23.244255 0.0 20.544075 19.795902 0.000000 \n",
"2 0.000000 0.000000 0.000000 0.0 0.000000 0.000000 0.000000 \n",
"3 0.000000 0.000000 21.310215 0.0 17.368101 17.481064 0.000000 \n",
"4 14.340542 14.655287 23.026300 0.0 12.062780 12.286295 0.000000 \n",
"... ... ... ... ... ... ... ... \n",
"8778 0.000000 0.000000 0.000000 0.0 10.714787 10.621951 0.000000 \n",
"8779 8.934017 9.085819 13.406617 0.0 11.307065 11.244468 0.000000 \n",
"8780 0.000000 0.000000 0.000000 0.0 10.166705 9.703100 0.000000 \n",
"8781 0.000000 0.000000 14.847295 0.0 11.634139 11.382575 13.589712 \n",
"8782 0.000000 0.000000 0.000000 0.0 10.399742 10.222792 0.000000 \n",
"\n",
" 14 15 \n",
"0 14.834125 0.000000 \n",
"1 0.000000 0.000000 \n",
"2 0.000000 13.733603 \n",
"3 0.000000 14.262909 \n",
"4 0.000000 0.000000 \n",
"... ... ... \n",
"8778 0.000000 11.901220 \n",
"8779 0.000000 0.000000 \n",
"8780 0.000000 0.000000 \n",
"8781 13.659342 0.000000 \n",
"8782 0.000000 0.000000 \n",
"\n",
"[8783 rows x 15 columns]"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "electronic-provider",
"metadata": {},
"outputs": [],
"source": [
"rating = data[0].copy()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "chicken-munich",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEGCAYAAAB1iW6ZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAcFklEQVR4nO3de3RU9b338ffXgHIJRrw0KqFcPB4r5RJCBJSDQqmKl2Kp9DlSVOJTZNk+iEepz6IPLquULm9V8XbwcqxSa0XkKIcqCtUSFaseLiYg4AUBlYigeONSVML3+WM2OUmYkEmyN2R+fF5rZTmzZ89nfm72fLKzZ+895u6IiEj2O2h/D0BEROKhQhcRCYQKXUQkECp0EZFAqNBFRALRYn+98JFHHumdO3fOaN5t27bRtm3bRMaRVHa25SaZrdzks7MtN8nsbMttaPaSJUs+dfej0j7o7vvlp0+fPp6pBQsWZDxvQyWVnW25SWYrN/nsbMtNMjvbchuaDSz2OnpVu1xERAKhQhcRCYQKXUQkEPvtQ9F0vv32W9avX8+OHTtqTM/Ly2PVqlWJvGZS2dmWm2R2krlr166loKCAli1bxp4vkm2aVaGvX7+edu3a0blzZ8ysavqWLVto165dIq+ZVHa25SaZnVTuV199xTfffMP69evp0qVL7Pki2aZZ7XLZsWMHRxxxRI0yF6mLmXHEEUfs8RedyIGqWRU6oDKXBtH6IvI/ml2hi4hI4zSrfei1dZ74TKx56248J7asqVOnMnbsWNq0adPkrLfeeosLLrgAM2PWrFkcd9xxMYxQRA40zbrQ96eqM68OSv9HzNSpU7nwwgtjKfTZs2czYsQIrrnmmiZnJaGyspKcnJx9+po7d+6kRQutnvtSug2oCT12UpJmepwbRxIf7XKpZt26dZxwwglcfPHFdO/enQ8//JBf/OIXFBcX8/3vf5/f/OY3ANx555189NFHDB48mMGDBwMwf/58Tj75ZIqKivjpT3/K1q1b98gvKyujf//+9OzZk+HDh/P5558zd+5cpk6dyrRp06qyqsvNzWXSpEn06tWL/v37s2nTpqqx/uAHP6Bnz54MGTKEDz74AICSkhLGjx/PKaecQteuXZk1axYA1157LYWFhRQWFtKhQwcuueQSAP70pz/Rt29fCgsLueKKK6isrKx63QkTJtCrVy9effVVbrvtNrp370737t2ZOnXqHuOsrKykpKSE7t2706NHD26//XYAVq9ezbBhw+jVqxdFRUW89957uDtXX3111byPP/44AKWlpQwcOJBhw4bRrVs3KisrufrqqznppJPo2bMn9913X6P/bUUOBCr0Wt59911++ctfsmLFCjp16sTvfvc7Fi9ezLJly3jxxRdZtmwZ48eP59hjj2XBggUsWLCATz/9lClTpvD888+zdOlSiouLufvuu/fIvvjii7nppptYtmwZPXr04Prrr+fss8/msssu48orr2TBggV7PGfbtm3079+f8vJyTj31VB5++GEALr/8ckaPHs2yZcsYNWoU48ePr3rOhg0bWLhwIU8//TQTJ04EYPLkyZSVlVFaWsrhhx/OuHHjWLVqFY8//jivvPIKZWVlHHTQQTz66KNVr9uvXz/Ky8tp3bo1Dz30EK+//jqvvfYaDzzwAG+88UaNcZaVlVFRUcGbb77J8uXLq35hjBo1iksvvZTy8nL+/ve/c8wxx/Dkk09SVlZGeXk5zz//PFdffTUbNmwAYOnSpdxxxx288847PPjgg+Tl5bFo0SIWLVrEAw88wNq1a5v+jywSKBV6LZ06daJ///5V92fOnElRURG9e/dmxYoVrFy5co/nvPbaa6xcuZIBAwZQWFjI9OnT+fDDD2vM8+WXX/LFF19w2mmnATB69Gheeumlesdz8MEHc+655wLQp0+fqi3xV199lZ/97GcAXHTRRSxcuLDqOT/+8Y856KCD6NatGxs3bqya7u5ceOGFXHXVVfTp04cXXniBJUuWcNJJJ1FYWMiLL77ImjVrAMjJyeH8888HYOHChQwfPpy2bduSm5vLT37yE15++eUa4+zatStr1qzh8ssv57nnnuPQQw9ly5YtVFRU8KMf/QiAVq1a0aZNGxYuXMjIkSPJyckhPz+f0047jUWLFgHQt2/fqmPK58+fzx//+EcKCwvp168fmzdv5t133613mYkcqLSTspbql7Bcu3Ytv//971m0aBHt27enpKQk7THP7s7pp5/OY489VjVty5YtsYynZcuWVYfm5eTksHPnznqfc8ghh9QY227XXXcdBQUFVVvP7s7o0aO54YYbqsa8+wSgVq1aNWi/efv27SkvL2fevHnce++9zJw5kzvuuCPj5+9Wffm7O3fddRdnnnlmg3NEDkTaQt+Lr776irZt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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df = pd.DataFrame({'feature':list(range(1,16)), 'rate of nonzero score':((feature > 0).sum(axis=0)/8783).values})\n",
"ax = df.plot.bar(x='feature', y='rate of nonzero score', rot=0, grid=True)"
]
},
{
"cell_type": "code",
"execution_count": 108,
"id": "quick-watson",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
" 9 | \n",
" 10 | \n",
" 11 | \n",
" 12 | \n",
" 13 | \n",
" 14 | \n",
" 15 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 21.599610 | \n",
" 20.682966 | \n",
" 16.616700 | \n",
" 16.738070 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 23.066238 | \n",
" 0.0 | \n",
" 18.571686 | \n",
" 16.565067 | \n",
" 14.098110 | \n",
" 14.834125 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 17.829681 | \n",
" 17.955060 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 23.244255 | \n",
" 0.0 | \n",
" 20.544075 | \n",
" 19.795902 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 13.733603 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 13.584030 | \n",
" 13.691393 | \n",
" 9.782837 | \n",
" 9.782837 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 21.310215 | \n",
" 0.0 | \n",
" 17.368101 | \n",
" 17.481064 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 14.262909 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 14.194130 | \n",
" 14.266314 | \n",
" 10.036509 | \n",
" 10.036509 | \n",
" 14.340542 | \n",
" 14.655287 | \n",
" 23.026300 | \n",
" 0.0 | \n",
" 12.062780 | \n",
" 12.286295 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8778 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 5.472188 | \n",
" 5.472188 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.714787 | \n",
" 10.621951 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 11.901220 | \n",
"
\n",
" \n",
" 8779 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 8.862578 | \n",
" 8.512956 | \n",
" 9.209509 | \n",
" 9.209509 | \n",
" 8.934017 | \n",
" 9.085819 | \n",
" 13.406617 | \n",
" 0.0 | \n",
" 11.307065 | \n",
" 11.244468 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 8780 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 7.252279 | \n",
" 7.252279 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.166705 | \n",
" 9.703100 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 8781 | \n",
" 11.453621 | \n",
" 10.807982 | \n",
" 12.647715 | \n",
" 12.327956 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 14.847295 | \n",
" 0.0 | \n",
" 11.634139 | \n",
" 11.382575 | \n",
" 13.589712 | \n",
" 13.659342 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 8782 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 8.449377 | \n",
" 8.449377 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.399742 | \n",
" 10.222792 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
"
\n",
"
8783 rows × 15 columns
\n",
"
"
],
"text/plain": [
" 1 2 3 4 5 6 \\\n",
"0 21.599610 20.682966 16.616700 16.738070 0.000000 0.000000 \n",
"1 0.000000 0.000000 17.829681 17.955060 0.000000 0.000000 \n",
"2 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"3 0.000000 0.000000 13.584030 13.691393 9.782837 9.782837 \n",
"4 0.000000 0.000000 14.194130 14.266314 10.036509 10.036509 \n",
"... ... ... ... ... ... ... \n",
"8778 0.000000 0.000000 0.000000 0.000000 5.472188 5.472188 \n",
"8779 0.000000 0.000000 8.862578 8.512956 9.209509 9.209509 \n",
"8780 0.000000 0.000000 0.000000 0.000000 7.252279 7.252279 \n",
"8781 11.453621 10.807982 12.647715 12.327956 0.000000 0.000000 \n",
"8782 0.000000 0.000000 0.000000 0.000000 8.449377 8.449377 \n",
"\n",
" 7 8 9 10 11 12 13 \\\n",
"0 0.000000 0.000000 23.066238 0.0 18.571686 16.565067 14.098110 \n",
"1 0.000000 0.000000 23.244255 0.0 20.544075 19.795902 0.000000 \n",
"2 0.000000 0.000000 0.000000 0.0 0.000000 0.000000 0.000000 \n",
"3 0.000000 0.000000 21.310215 0.0 17.368101 17.481064 0.000000 \n",
"4 14.340542 14.655287 23.026300 0.0 12.062780 12.286295 0.000000 \n",
"... ... ... ... ... ... ... ... \n",
"8778 0.000000 0.000000 0.000000 0.0 10.714787 10.621951 0.000000 \n",
"8779 8.934017 9.085819 13.406617 0.0 11.307065 11.244468 0.000000 \n",
"8780 0.000000 0.000000 0.000000 0.0 10.166705 9.703100 0.000000 \n",
"8781 0.000000 0.000000 14.847295 0.0 11.634139 11.382575 13.589712 \n",
"8782 0.000000 0.000000 0.000000 0.0 10.399742 10.222792 0.000000 \n",
"\n",
" 14 15 \n",
"0 14.834125 0.000000 \n",
"1 0.000000 0.000000 \n",
"2 0.000000 13.733603 \n",
"3 0.000000 14.262909 \n",
"4 0.000000 0.000000 \n",
"... ... ... \n",
"8778 0.000000 11.901220 \n",
"8779 0.000000 0.000000 \n",
"8780 0.000000 0.000000 \n",
"8781 13.659342 0.000000 \n",
"8782 0.000000 0.000000 \n",
"\n",
"[8783 rows x 15 columns]"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature"
]
},
{
"cell_type": "code",
"execution_count": 118,
"id": "verbal-cleaning",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
" 9 | \n",
" 10 | \n",
" 11 | \n",
" 12 | \n",
" 13 | \n",
" 14 | \n",
" 15 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 21.59961 | \n",
" 20.682966 | \n",
" 16.616700 | \n",
" 16.738070 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 23.066238 | \n",
" 0.0 | \n",
" 18.571686 | \n",
" 16.565067 | \n",
" 14.09811 | \n",
" 14.834125 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 17.829681 | \n",
" 17.955060 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 23.244255 | \n",
" 0.0 | \n",
" 20.544075 | \n",
" 19.795902 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 13.733603 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 13.584030 | \n",
" 13.691393 | \n",
" 9.782837 | \n",
" 9.782837 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 21.310215 | \n",
" 0.0 | \n",
" 17.368101 | \n",
" 17.481064 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 14.262909 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 14.194130 | \n",
" 14.266314 | \n",
" 10.036509 | \n",
" 10.036509 | \n",
" 14.340542 | \n",
" 14.655287 | \n",
" 23.026300 | \n",
" 0.0 | \n",
" 12.062780 | \n",
" 12.286295 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8777 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 9.235743 | \n",
" 9.235743 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.924480 | \n",
" 10.995590 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 11.798944 | \n",
"
\n",
" \n",
" 8778 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 5.472188 | \n",
" 5.472188 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.714787 | \n",
" 10.621951 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 11.901220 | \n",
"
\n",
" \n",
" 8779 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 8.862578 | \n",
" 8.512956 | \n",
" 9.209509 | \n",
" 9.209509 | \n",
" 8.934017 | \n",
" 9.085819 | \n",
" 13.406617 | \n",
" 0.0 | \n",
" 11.307065 | \n",
" 11.244468 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 8780 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 7.252279 | \n",
" 7.252279 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.166705 | \n",
" 9.703100 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 8782 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 8.449377 | \n",
" 8.449377 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 10.399742 | \n",
" 10.222792 | \n",
" 0.00000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
"
\n",
"
7459 rows × 15 columns
\n",
"
"
],
"text/plain": [
" 1 2 3 4 5 6 \\\n",
"0 21.59961 20.682966 16.616700 16.738070 0.000000 0.000000 \n",
"1 0.00000 0.000000 17.829681 17.955060 0.000000 0.000000 \n",
"2 0.00000 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"3 0.00000 0.000000 13.584030 13.691393 9.782837 9.782837 \n",
"4 0.00000 0.000000 14.194130 14.266314 10.036509 10.036509 \n",
"... ... ... ... ... ... ... \n",
"8777 0.00000 0.000000 0.000000 0.000000 9.235743 9.235743 \n",
"8778 0.00000 0.000000 0.000000 0.000000 5.472188 5.472188 \n",
"8779 0.00000 0.000000 8.862578 8.512956 9.209509 9.209509 \n",
"8780 0.00000 0.000000 0.000000 0.000000 7.252279 7.252279 \n",
"8782 0.00000 0.000000 0.000000 0.000000 8.449377 8.449377 \n",
"\n",
" 7 8 9 10 11 12 13 \\\n",
"0 0.000000 0.000000 23.066238 0.0 18.571686 16.565067 14.09811 \n",
"1 0.000000 0.000000 23.244255 0.0 20.544075 19.795902 0.00000 \n",
"2 0.000000 0.000000 0.000000 0.0 0.000000 0.000000 0.00000 \n",
"3 0.000000 0.000000 21.310215 0.0 17.368101 17.481064 0.00000 \n",
"4 14.340542 14.655287 23.026300 0.0 12.062780 12.286295 0.00000 \n",
"... ... ... ... ... ... ... ... \n",
"8777 0.000000 0.000000 0.000000 0.0 10.924480 10.995590 0.00000 \n",
"8778 0.000000 0.000000 0.000000 0.0 10.714787 10.621951 0.00000 \n",
"8779 8.934017 9.085819 13.406617 0.0 11.307065 11.244468 0.00000 \n",
"8780 0.000000 0.000000 0.000000 0.0 10.166705 9.703100 0.00000 \n",
"8782 0.000000 0.000000 0.000000 0.0 10.399742 10.222792 0.00000 \n",
"\n",
" 14 15 \n",
"0 14.834125 0.000000 \n",
"1 0.000000 0.000000 \n",
"2 0.000000 13.733603 \n",
"3 0.000000 14.262909 \n",
"4 0.000000 0.000000 \n",
"... ... ... \n",
"8777 0.000000 11.798944 \n",
"8778 0.000000 11.901220 \n",
"8779 0.000000 0.000000 \n",
"8780 0.000000 0.000000 \n",
"8782 0.000000 0.000000 \n",
"\n",
"[7459 rows x 15 columns]"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"feature.iloc[rating[rating != 0].index]"
]
},
{
"cell_type": "code",
"execution_count": 119,
"id": "hidden-nitrogen",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1\n",
"1 1\n",
"2 1\n",
"3 1\n",
"4 -1\n",
" ..\n",
"8777 -1\n",
"8778 1\n",
"8779 -1\n",
"8780 1\n",
"8782 -1\n",
"Name: 0, Length: 7459, dtype: int64"
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rating[rating != 0]"
]
},
{
"cell_type": "code",
"execution_count": 115,
"id": "medical-athens",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Int64Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n",
" ...\n",
" 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8782],\n",
" dtype='int64', length=7459)"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rating[rating != 0].index"
]
},
{
"cell_type": "code",
"execution_count": 72,
"id": "contemporary-pasta",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.42344681012562146"
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(feature > 0).sum(axis=0).sum() / (feature.shape[0]*feature.shape[1])"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "received-running",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3907 1324 3552\n"
]
}
],
"source": [
"print((rating == 1).sum(), (rating == 0).sum(), (rating == -1).sum())"
]
},
{
"cell_type": "code",
"execution_count": 123,
"id": "supported-hardware",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.15074575885232835"
]
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1324 / 8783"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "abroad-tiger",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3907 4876\n"
]
}
],
"source": [
"numbinrating = rating.apply(lambda x: 1 if x > 0 else 0)\n",
"print((numbinrating == 1).sum(), (numbinrating == 0).sum())"
]
},
{
"cell_type": "code",
"execution_count": 120,
"id": "leading-backing",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1\n",
"1 1\n",
"2 1\n",
"3 1\n",
"4 0\n",
" ..\n",
"8777 0\n",
"8778 1\n",
"8779 0\n",
"8780 1\n",
"8782 0\n",
"Name: 0, Length: 7459, dtype: int64"
]
},
"execution_count": 120,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"numbinrating.iloc[rating[rating != 0].index]"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "careful-louis",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.linear_model import LogisticRegression\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn import metrics, preprocessing\n",
"import math"
]
},
{
"cell_type": "code",
"execution_count": 121,
"id": "refined-ethiopia",
"metadata": {},
"outputs": [],
"source": [
"balanced_accuracy = []\n",
"avg_precision_score = []\n",
"brier_loss = []\n",
"f1_score = []\n",
"coefs = []\n",
"intercepts = []\n",
"\n",
"for rs in range(10):\n",
" X_train,X_test,y_train,y_test = train_test_split(feature.iloc[rating[rating != 0].index], \n",
" numbinrating.iloc[rating[rating != 0].index],\n",
" test_size=0.2,random_state=rs)\n",
" # standardization using min-max scaler\n",
" #min_max_scaler = preprocessing.MinMaxScaler()\n",
" #X_train_minmax = min_max_scaler.fit_transform(X_train)\n",
" #X_test_minmax = min_max_scaler.transform(X_test)\n",
" # logistic regression\n",
" logit=LogisticRegression(fit_intercept=True,solver='liblinear')\n",
" fitted=logit.fit(X_train,y_train)\n",
" y_pred=logit.predict(X_test)\n",
" balanced_accuracy.append(metrics.balanced_accuracy_score(y_test, y_pred))\n",
" y_pred_p=logit.predict_proba(X_test)\n",
" avg_precision_score.append(metrics.average_precision_score(y_test, y_pred_p.T[1]))\n",
" brier_loss.append(metrics.brier_score_loss(y_test, y_pred_p.T[1]))\n",
" f1_score.append(metrics.average_precision_score(y_test, y_pred))\n",
" coefs.append(fitted.coef_[0])\n",
" intercepts.append(fitted.intercept_[0])\n",
" #print('balanced accuracy: {:.4f}'.format(metrics.balanced_accuracy_score(y_test, y_pred)))\n",
" #print('average precision score: {:.4f}'.format(metrics.average_precision_score(y_test, y_pred_p.T[1])))\n",
" #print('brier score loss: {:.4f}'.format(metrics.brier_score_loss(y_test, y_pred_p.T[1]))) # The smaller, the better\n",
" #print('f1 score: {:.4f}'.format(metrics.average_precision_score(y_test, y_pred)))"
]
},
{
"cell_type": "code",
"execution_count": 122,
"id": "friendly-gnome",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"balanced accuracy: 0.6624\n",
"average precision score: 0.7551\n",
"brier score loss: 0.2073\n",
"f1 score: 0.6293\n"
]
}
],
"source": [
"# no standardization\n",
"print('balanced accuracy: {:.4f}'.format(np.mean(balanced_accuracy)))\n",
"print('average precision score: {:.4f}'.format(np.mean(avg_precision_score)))\n",
"print('brier score loss: {:.4f}'.format(np.mean(brier_loss))) # The smaller, the better\n",
"print('f1 score: {:.4f}'.format(np.mean(f1_score)))"
]
},
{
"cell_type": "code",
"execution_count": 131,
"id": "printable-singer",
"metadata": {},
"outputs": [],
"source": [
"balanced_accuracy = []\n",
"avg_precision_score = []\n",
"brier_loss = []\n",
"f1_score = []\n",
"coefs = []\n",
"intercepts = []\n",
"\n",
"for rs in range(10):\n",
" X_train,X_test,y_train,y_test = train_test_split(feature,numbinrating,test_size=0.2,random_state=rs)\n",
" # standardization using min-max scaler\n",
" #min_max_scaler = preprocessing.MinMaxScaler()\n",
" #X_train_minmax = min_max_scaler.fit_transform(X_train)\n",
" #X_test_minmax = min_max_scaler.transform(X_test)\n",
" # logistic regression\n",
" logit=LogisticRegression(fit_intercept=True,solver='liblinear')\n",
" fitted=logit.fit(X_train,y_train)\n",
" y_pred=logit.predict(X_test)\n",
" balanced_accuracy.append(metrics.balanced_accuracy_score(y_test, y_pred))\n",
" y_pred_p=logit.predict_proba(X_test)\n",
" avg_precision_score.append(metrics.average_precision_score(y_test, y_pred_p.T[1]))\n",
" brier_loss.append(metrics.brier_score_loss(y_test, y_pred_p.T[1]))\n",
" f1_score.append(metrics.average_precision_score(y_test, y_pred))\n",
" coefs.append(fitted.coef_[0])\n",
" intercepts.append(fitted.intercept_[0])\n",
" #print('balanced accuracy: {:.4f}'.format(metrics.balanced_accuracy_score(y_test, y_pred)))\n",
" #print('average precision score: {:.4f}'.format(metrics.average_precision_score(y_test, y_pred_p.T[1])))\n",
" #print('brier score loss: {:.4f}'.format(metrics.brier_score_loss(y_test, y_pred_p.T[1]))) # The smaller, the better\n",
" #print('f1 score: {:.4f}'.format(metrics.average_precision_score(y_test, y_pred)))"
]
},
{
"cell_type": "code",
"execution_count": 103,
"id": "thorough-shopper",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"balanced accuracy: 0.6306\n",
"average precision score: 0.6506\n",
"brier score loss: 0.2153\n",
"f1 score: 0.5318\n"
]
}
],
"source": [
"# no standardization\n",
"print('balanced accuracy: {:.4f}'.format(np.mean(balanced_accuracy)))\n",
"print('average precision score: {:.4f}'.format(np.mean(avg_precision_score)))\n",
"print('brier score loss: {:.4f}'.format(np.mean(brier_loss))) # The smaller, the better\n",
"print('f1 score: {:.4f}'.format(np.mean(f1_score)))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "literary-conversation",
"metadata": {},
"outputs": [],
"source": [
"# best\n",
"balanced accuracy: 0.6342\n",
"average precision score: 0.6821\n",
"brier score loss: 0.2137\n",
"f1 score: 0.5533"
]
},
{
"cell_type": "code",
"execution_count": 124,
"id": "joined-destination",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAgzUlEQVR4nO3df5xV9X3n8de7gEIYFhXIVMF23GraooMio8QfMTMiijUJaYKpBlnshrI8NmysyiMPXBu1hvahjUo3NqmySKQmdfzR/GADKYpktq5VCyjKL3+gmTVQAwqGOImog5/9455h79y5I3fmngMznPfz8ZgH53zP977Pdy733s+cc+45RxGBmZnl128d6gGYmdmh5UJgZpZzLgRmZjnnQmBmlnMuBGZmOTfwUA+gN0aOHBl1dXUV9f31r3/N0KFDUx9DVrlZZjs3++z+lptldn/LzTK7r+SuW7fuzYgY1WVBRPS7nwkTJkSlfvrTn1bctyeyys0y27nZZ/e33Cyz+1tultl9JRdYG2U+U71ryMws51wIzMxyzoXAzCzn+uXB4nLef/99tm3bxt69ezu1Dx8+nC1btqS+vqxys8xOM3fw4MGMGTOGQYMGpZJnZofOYVMItm3bxrBhw6irq0PS/va3336bYcOGpb6+rHKzzE4rNyLYtWsX27Zt44QTTkhhZGZ2KB02u4b27t3LiBEjOhUBy4YkRowY0WXry8z6p8OmEAAuAgeRn2uzw8dhVQjMzKznDptjBKXq5i9PNa/1lktSzSvn3Xff5ZJLLmHnzp1cf/31HHfcccyZM4dBgwaxfPlyrrrqKh5++OFuHz9r1iyuueYaxo4d2+N1t7S0cMQRR3D22WdX8yuYWUbKfaZdW9/OlWXae/p5ddgWgv7o2WefBeCJJ55g2LBhzJkzh+uuu44rrrgC4EOLAMDixYt7ve6WlhZqampcCMxyyLuGUvQP//APjBs3jlNPPZUZM2bQ2trK+eefz7hx45g0aRKvvfYaAG+88Qaf//znOeOMMzjjjDN44okn2LlzJ1dccQVr1qzhnHPO4e677+bBBx/ka1/7GtOnT6e1tZVTTjkFgH379jFv3jxOOeUUxo0bx5133glAY2Mja9euBeCRRx7hrLPO4vTTT+fSSy+lra0NgLq6Om688UZOP/106uvreeGFF2htbeWuu+5i4cKFnHbaaTz++OM89NBDnHLKKZx66qmcd955h+DZNLODxVsEKdm0aRMLFizgX//1Xxk5ciS7d+9m5syZ+3+WLFnCV77yFX74wx9y1VVXcfXVV3Puuefy2muvcdFFF7FlyxYWL17Mbbfdxv3338+wYcN48skn+dSnPsW0adNobW3dv65FixbR2trK+vXrGThwILt37+40ljfffJMFCxawatUqhg4dyq233sodd9zB1VdfDcDIkSN55pln+Pa3v81tt93G4sWLmTNnDjU1NcybNw+A+vp6Vq5cyejRo/nlL395sJ5GMzsEXAhSsnr1ai699FJGjhwJwDHHHMOTTz7J97//fQBmzJjBV7/6VQBWrVrF5s2b9z/2V7/61f6/2CuxatUq5syZw8CBA/evq9hTTz3F5s2bOeeccwB47733OOuss/Yv/9znPgfAhAkT9o+v1DnnnMOVV17JF77whf39zezw5EJwCHzwwQc89dRTDB48OJP8iGDy5Mncf//9ndrffvttAI488kgABgwYQHt7e9mMu+66i6effprly5czYcIE1q1bx4gRIzIZr5kdWj5GkJLzzz+fhx56iF27dgGwe/duzj77bJqbmwH43ve+xyc+8QkALrzwwv379QHWr1/fo3VNnjyZu+++e/+HeOmuoY9//OM88cQTbN26FShcs/yll1760Mxhw4btLxQAr7zyChMnTuTmm29m1KhR/PznP+/RGM2s/0hli0DSFOB/AAOAxRFxS8ny84C/BcYBl0XEw0XLZgJ/kcwuiIilaYyp4+tTWV4KotjJJ5/M9ddfzyc/+UkGDBjA+PHjufPOO/nTP/1TvvGNbzBq1Ci+853vAPDNb36TL3/5y4wbN4729nbOO+887rrrrorXNWvWLF566SXGjRvHoEGD+LM/+zPmzp27f/moUaO49957ufzyy3n33XcBWLBgAccee2y3mZ/+9KeZNm0aP/rRj7jzzjtZuHAhL7/8MhHBpEmTOPXUU3v5zJhZX1d1IZA0APgWMBnYBqyRtCwiNhd1ew24EphX8thjgBuBBiCAdclj36p2XIdCx4HhYqtXr+7Sb+TIkTzwwANd2hsbG2lsbNz/l/m99967f1ldXR0bN24EYODAgdxxxx3ccccdnR7f0tKyf/r8889nzZo1nZa//fbbnQ46NzQ07H/Mxz72MZ5//vn9yzq2Xszs8JfGrqEzga0R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\n",
"text/plain": [
"