diff options
Diffstat (limited to 'Experiment/ExpertFeature/tls_cert_length.ipynb')
| -rw-r--r-- | Experiment/ExpertFeature/tls_cert_length.ipynb | 297 |
1 files changed, 182 insertions, 115 deletions
diff --git a/Experiment/ExpertFeature/tls_cert_length.ipynb b/Experiment/ExpertFeature/tls_cert_length.ipynb index e25e45f..88d78bc 100644 --- a/Experiment/ExpertFeature/tls_cert_length.ipynb +++ b/Experiment/ExpertFeature/tls_cert_length.ipynb @@ -2,21 +2,41 @@ "cells": [ { "cell_type": "code", - "execution_count": 38, + "execution_count": 17, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import os\n", + "import pandas as pd\n", + "import numpy as np\n", + "import json\n", + "import traceback" + ] + }, + { + "cell_type": "code", + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "zhihu 3488\n", - "weibo 2705\n", - "douyin 2072\n", - "hupu 1217\n", - "toutiao 1058\n", + "alipay 4196\n", + "zhihu 4164\n", + "meituan 3992\n", + "gaode 3979\n", + "jd 3938\n", + "evernote 3511\n", + "weibo 3453\n", + "bilibili 3347\n", + "ele 2159\n", + "douyin 1990\n", "Name: 4, dtype: int64" ] }, - "execution_count": 38, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -24,7 +44,8 @@ "source": [ "date = '2019-12-20_21'\n", "root_dir = '/Users/Leo/Documents/github/GradProj/'\n", - "example_label_file = root_dir + 'DataSet/result/' + date + '/stream_tag.txt'\n", + "#example_label_file = root_dir + 'DataSet/result/' + date + '/stream_tag.txt'\n", + "example_label_file = root_dir + 'DataSet/result/' + 'noProxy/All' + '/stream_tag.txt'\n", "example_label_df = pd.read_table(example_label_file, sep='\\s+', header=None)\n", "example_label_df[3] = 443\n", "example_label_df[4].value_counts()" @@ -32,21 +53,53 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ - "import os\n", - "import pandas as pd\n", - "import numpy as np\n", - "import json" + "extensions = { \n", + " 0:0, \n", + " 1:1, \n", + " 2:2, \n", + " 3:3, \n", + " 4:4, \n", + " 5:5, \n", + " 6:6, \n", + " 7:7, \n", + " 8:8, \n", + " 9:9, \n", + " 10:10, \n", + " 11:11, \n", + " 12:12, \n", + " 13:13, \n", + " 14:14, \n", + " 15:15, \n", + " 16:16, \n", + " 17:17, \n", + " 18:18, \n", + " 19:19, \n", + " 20:20, \n", + " 21:21, \n", + " 22:22, \n", + " 23:23, \n", + " 24:24, \n", + " 25:25, \n", + " 26:26, \n", + " 27:27, \n", + " 28:28, \n", + " 29:29, \n", + " 30:30, \n", + " 31:31, \n", + " 35:32, \n", + " 65281:33 \n", + "}" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 20, "metadata": { "collapsed": true }, @@ -181,76 +234,66 @@ }, { "cell_type": "code", - "execution_count": 41, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "extensions = { \n", - " 0:0, \n", - " 1:1, \n", - " 2:2, \n", - " 3:3, \n", - " 4:4, \n", - " 5:5, \n", - " 6:6, \n", - " 7:7, \n", - " 8:8, \n", - " 9:9, \n", - " 10:10, \n", - " 11:11, \n", - " 12:12, \n", - " 13:13, \n", - " 14:14, \n", - " 15:15, \n", - " 16:16, \n", - " 17:17, \n", - " 18:18, \n", - " 19:19, \n", - " 20:20, \n", - " 21:21, \n", - " 22:22, \n", - " 23:23, \n", - " 24:24, \n", - " 25:25, \n", - " 26:26, \n", - " 27:27, \n", - " 28:28, \n", - " 29:29, \n", - " 30:30, \n", - " 31:31, \n", - " 35:32, \n", - " 65281:33 \n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "39777\n", + "39737\n" + ] + } + ], "source": [ "#TODO: 加入cipher suites,extensions特征\n", - "stream_stat_json_file = root_dir + 'DataSet/result/' + date + '/stream_stat.txt'\n", + "#stream_stat_json_file = root_dir + 'DataSet/result/' + date + '/stream_stat.txt'\n", + "stream_stat_json_file = root_dir + 'DataSet/result/' + 'noProxy/All' + '/stream_stat.txt'\n", "stm2cipherDict = dict()\n", "stm2extenDict = dict()\n", + "flow_key_set = set()\n", "with open(stream_stat_json_file) as f:\n", " lines = f.readlines()\n", + " print(len(lines))\n", " for line in lines:\n", " line = json.loads(line)\n", " flow_key = (line['sip'], line['sport'], line['dip'], line['dport'])\n", " cipher_suites = line['tls']['cipher_suites']\n", + " flow_key_set.add(flow_key)\n", " extension_list = line['tls']['extensions_list']\n", " stm2cipherDict[flow_key] = cipher_suites\n", - " stm2extenDict[flow_key] = extension_list" + " stm2extenDict[flow_key] = extension_list\n", + "print(len(flow_key_set))" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "146.89064032\n" + ] + } + ], + "source": [ + "with open(stream_stat_json_file) as f:\n", + " lines = f.readlines()\n", + " pkt_len_list = list()\n", + " for line in lines:\n", + " line = json.loads(line)\n", + " packets = line['packets']\n", + " pkt_len_list.append(len(packets))\n", + " print(np.mean(pkt_len_list))" ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 23, "metadata": { "collapsed": true }, @@ -261,13 +304,15 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "34686\n", + "34686\n", "end\n" ] }, @@ -277,13 +322,14 @@ "'\\nkeys = set(example_label.keys()).difference(set(result_key))\\nexample_keys = example_label_df.iloc[:,0:4].values.copy()\\nfor i,value in enumerate(list(example_keys)):\\n #print(tuple(value))\\n if tuple(value) in keys:\\n print(i)\\n'" ] }, - "execution_count": 25, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "example_json_file = root_dir + 'DataSet/result/' + date + '/ssl_stat.txt'\n", + "#example_json_file = root_dir + 'DataSet/result/' + date + '/ssl_stat.txt'\n", + "example_json_file = root_dir + 'DataSet/result/' + 'noProxy/All' + '/ssl_stat.txt'\n", "example_json_f = open(example_json_file, 'r')\n", "#array_shape = (1771,6)\n", "result_data = list()\n", @@ -299,24 +345,28 @@ " #标签\n", " try:\n", " flow_key = (example_json['sip'], example_json['sport'], example_json['dip'], example_json['dport'])\n", - " result_label.append(example_label[flow_key])\n", " result_key.append(flow_key)\n", " ciphers = stm2cipherDict[flow_key]\n", " extensions_list = stm2extenDict[flow_key]\n", + " result_label.append(example_label[flow_key])\n", " except Exception:\n", + " #traceback.print_exc()\n", " continue\n", " #print(example_json)\n", " san_count = 0\n", " cert_length = [0,0,0,0]\n", " if 'san' in example_json:\n", " san_count = len(example_json['san'].split(';'))\n", + " if 'sni' in example_json:\n", + " sni_len = len(example_json['sni'])\n", " cert = example_json['Cert']\n", " cert_count = cert['cert_count']\n", " if cert_count != 0:\n", " cert_length = [c['length'] for c in cert['cert_list']]\n", " for i in range(4 - len(cert_length)):\n", " cert_length.append(0)\n", - " result = [san_count, cert_count]\n", + " result = [sni_len, san_count, cert_count]\n", + " result = [cert_count]\n", " result += cert_length\n", " #print(len(result))\n", " \n", @@ -343,12 +393,16 @@ "for i in range(len(extensions)):\n", " extensions_head.append('extension'+str(i))\n", "cipher_head = ['cipher'+str(i) for i in range(len(ciper_suits))]\n", - "base_head = ['san_count', 'cert_count', 'cert_length1', 'cert_length2', 'cert_length3','cert_length4']\n", + "base_head = ['sni_len', 'san_count', 'cert_count', 'cert_length1', 'cert_length2', 'cert_length3','cert_length4']\n", + "base_head = ['cert_count', 'cert_length1', 'cert_length2', 'cert_length3','cert_length4']\n", "header = base_head+cipher_head+extensions_head\n", "result_df = pd.DataFrame(result_data, columns=header)\n", + "print(len(result_label))\n", + "print(len(result_data))\n", "result_df['label'] = np.array(result_label)\n", "\n", "print('end')\n", + "\n", "'''\n", "keys = set(example_label.keys()).difference(set(result_key))\n", "example_keys = example_label_df.iloc[:,0:4].values.copy()\n", @@ -361,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 25, "metadata": { "collapsed": true }, @@ -376,35 +430,21 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "164\n", - "[2357, 5]\n", - "0.999400838826\n", - "0.999400838826\n", - "0.999400838826\n", - " precision recall f1\n", - "LogisticRegression 0.00000 0.00000 0.00000\n", - "SVM 0.00000 0.00000 0.00000\n", - "GaussianNB 0.00000 0.00000 0.00000\n", - "tree 0.00000 0.00000 0.00000\n", - "RandomForest 0.89563 0.89563 0.89563\n" + "163\n", + " precision recall f1\n", + "LogisticRegression 0.872348 0.872348 0.872348\n", + "SVM 0.910055 0.910055 0.910055\n", + "GaussianNB 0.698339 0.698339 0.698339\n", + "tree 0.911208 0.911208 0.911208\n", + "RandomForest 0.904059 0.904059 0.904059\n" ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAFcCAYAAAAzq/4LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu8VXWd//HXmyMXQ5FG0VG5HDIvIHIHwQuWZJk/Q00L\nKFPLYBLNSudCU9M4NjNl46hUmlmGZt5zNHQsL4l3cbgIKCCKeNATXknlpnLx8/tjrQObw4Gzwc1Z\n+6z1fj4e58Fea33PPp+zgfde+7u+6/tVRGBmZvnSJusCzMys8hzuZmY55HA3M8shh7uZWQ453M3M\ncsjhbmaWQw53q2qSaiWFpJ220ubfJb0p6VVJ3SWtlFTTknVuL0n/LOnXWddh+SOPc7dqJqkWeBFo\nGxHrmjjeDXgO6BERr7dsdS1L0gXAxyPi1KxrsernM3dr7XoAy7IO9q19sqjk95iVy+FuLU7SP0n6\ni6QVkhZKGilpqKQZkpZLek3SJWU8z6eA+4B90q6Yaxp340h6UNIPJT2W/rx7Je1R8hynSVoiaZmk\nf5FUlz4vktpImijphfT4LZL+Jj3W8HPOlPQS8EDJvvGSlkp6RdL5JT/rAkm/l/Q7ScuBM9J9v2v0\nnKdLeintavpeeuxY4J+B0envOqdSfx+WTw53a1GSDgTOAYZExK7AZ4A6YBIwKSI6AfsBtzT3XBFx\nP/BZYGlE7BIRZ2yh6ZeArwJ7Au2Av09r6Q1cAXwZ2BvYDdi35PvOBU4EjgL2Ad4CLm/03EcBvdLf\no8Engf2BTwMTG94sUicAvwc6A9dvod4jgAOBkcAPJPWKiD8B/wncnP6u/bbwvWaAw91a3nqgPdBb\nUtuIqIuIF4C1wMcl7RERKyNiWgV/5uSIeC4i3iV50+if7j8FuDMiHo2INcAPgNKLUH8HfC8i6iPi\nfeAC4JRG3SkXRMSq9Lkb/Fu672lgMjC25NgTEXFHRHzQ6Hto9P3vRsQcYA7gILdt5nC3FhURi4Bv\nkwTl65JukrQPcCZwAPCspOmSjm/8vZKOTLskVkqatw0/9tWSx6uBXdLH+wAvl9S2GlhW0rYHcLuk\ntyW9DSwgeXPaq6TNy2yudN+S9OdsrX259ZqVzeFuLS4iboiII0jCM4CLIuL5iBhL0nVyEfB7SR0b\nfd8jaZfELhFxcAVKeQXo2rAhaWdg95LjLwOfjYjOJV8dIuIvpWU18bzdSh53B5Y2075cHtpmZXO4\nW4uSdKCkoyW1B94D3gXWSzpVUpeI+AB4O22+fgeX83vgc5IOk9QO+DdAJcevBP5DUo+09i6STijj\nef9F0kckHUzS139zhep9DaiV5P+31iz/I7GW1h74MfAmSffDniSjQI4F5klaSXJxdUxEvLcjC4mI\necA3gZtIzuJXAK8D76dNJgFTgHslrQCmAYeW8dQPAYuAPwMXR8S9FSr51vTPZZJmVeg5Lad8E5NZ\nStIuJJ8a9o+IF7fj+2vZyg1XZi3JZ+5WaJI+l3ahdAQuBp4mGZpp1qo53K3oTiC54LmUZGz6mPDH\nWcsBd8uYmeWQz9zNzHLI4W5mlkOZzUq3xx57RG1tbVY/3sysVZo5c+abEdGluXaZhXttbS0zZszI\n6sebmbVKkpaU087dMmZmOeRwNzPLIYe7mVkOVdUyX2vXrqW+vp733tuhU4rkVocOHejatStt27bN\nuhQzy1hVhXt9fT277rortbW1SGr+G2yDiGDZsmXU19fTs2fPrMsxs4xVVbfMe++9x+677+5g3w6S\n2H333f2px8yAKgt3wMH+Ifi1M7MGVRfueXXYYYdt9fhxxx3H22+/vdU2Zmblqqo+98ZqJ/5vRZ+v\n7sf/ryLPs379empqarbpex5//PGtHr/77rs/TElm1oxtyZO6Dl8qu+0hPbuX3fbp058uu+2H5TP3\nRurq6jjooIM4/fTT6du3L6eccgqrV6+mtraWCy+8kCOOOIJbb72VF154gWOPPZZBgwZx5JFH8uyz\nzwLw2muvcdJJJ9GvXz/69eu3IdR32SVZ4/iVV15hxIgR9O/fnz59+vDII48AyR27b775JgCXXHIJ\nffr0oU+fPlx22WUb6urVqxfjxo3j4IMP5tOf/jTvvvtuS788ZtZKONybsHDhQsaPH8/cuXPp1KkT\nV1xxBZAMNXz00UcZM2YM48eP52c/+xkzZ87k4osvZsKECQCce+65HHXUUcyZM4dZs2Zx8MGbruN8\nww038JnPfIbZs2czZ84c+vfvv8nxmTNnMnnyZJ588kmmTZvGr371K5566ikAnn/+ec4++2zmzZtH\n586due2221rg1TCz1qiqu2Wy0q1bNw4//HAATj31VH76058CMHr0aABWrlzJ448/zhe+8IUN3/P+\n+8mymw888AC//e1vAaipqWG33Xbb5LmHDBnC1772NdauXcuJJ564Wbg/+uijnHTSSXTs2BGAz3/+\n8zzyyCOMGjWKnj17bmg/aNAg6urqKvybm1le+My9CY1HnTRsNwTuBx98QOfOnZk9e/aGrwULFpT1\n3CNGjODhhx9m33335Stf+cqGN4IGW1s8pX379hse19TUsG6dl+k0s6Y53Jvw0ksv8cQTTwBw4403\ncsQRR2xyvFOnTvTs2ZNbb00Wo48I5syZA8DIkSP5xS9+ASQXXpcvX77J9y5ZsoQ999yTcePGceaZ\nZzJr1qaL2I8YMYI77riD1atXs2rVKm6//XaOPPLIHfJ7mll+Odyb0KtXL6699lr69u3LX//6V846\n66zN2lx//fVcffXV9OvXj4MPPpg//OEPAEyaNImpU6dyyCGHMGjQIObNm7fJ9z344IP079+fAQMG\ncNttt/Gtb31rk+MDBw7kjDPOYOjQoRx66KF8/etfZ8CAATvulzWzXMpsDdXBgwdH4/ncFyxYQK9e\nvTKpp0FdXR3HH388zzzzTKZ1bK9qeA3NqlFehkJKmhkRg5tr5zN3M7Mccrg3Ultb22rP2s3MGjjc\nzcxyyOFuZpZDDnczsxxyuJuZ5ZDDvQXU1dXRp08fIBnnfvzxx2dckZnlXXXPLXPBbs232abne2eb\nmkcEEUGbNn4PNLPWxanVSMPUuhMmTGDgwIFcd911DB8+nIEDB/KFL3yBlStXAjB9+nQOO+ww+vXr\nx9ChQ1mxYgV1dXUceeSRDBw4kIEDBzY7h7uZ2Y7icG/CwoULOe2007jvvvu4+uqruf/++5k1axaD\nBw/mkksuYc2aNYwePZpJkyYxZ84c7r//fnbeeWf23HNP7rvvPmbNmsXNN9/Mueeem/WvYmYFVd3d\nMhnp0aMHw4YN46677mL+/Pkbpv9ds2YNw4cPZ+HChey9994MGTIESCYSA1i1ahXnnHMOs2fPpqam\nhueeey6z38HMiq2scJd0LDAJqAF+HRE/bnS8O3At0DltMzEiWu26cQ1T+0YExxxzDDfeeOMmx+fO\nndvkYtSXXnope+21F3PmzOGDDz6gQ4cOLVKvmVljzXbLSKoBLgc+C/QGxkrq3ajZ94FbImIAMAa4\notKFZmHYsGE89thjLFq0CIDVq1fz3HPPcdBBB7F06VKmT58OwIoVK1i3bh3vvPMOe++9N23atOG6\n665j/fr1WZZvZgVWTp/7UGBRRCyOiDXATcAJjdoE0Cl9vBuwtHIlZqdLly5cc801jB07lr59+zJs\n2DCeffZZ2rVrx80338w3v/lN+vXrxzHHHMN7773HhAkTuPbaaxk2bBjPPffchk8AZmYtrdkpfyWd\nAhwbEV9Pt78CHBoR55S02Ru4F/go0BH4VETMbOK5xgPjAbp37z5oyZIlmxz3dLUfnl9Ds6Z5yt8m\nnquJfY3fEcYC10REV+A44DpJmz13RFwVEYMjYnCXLl3K+NFmZrY9ygn3eqBbyXZXNu92ORO4BSAi\nngA6AHtUokAzM9t25YT7dGB/ST0ltSO5YDqlUZuXgJEAknqRhPsblSzUzMzK12y4R8Q64BzgHmAB\nyaiYeZIulDQqbXY+ME7SHOBG4IzIav0+MzMrb5x7Omb97kb7flDyeD5weGVLMzOz7eXpB8zMcsjh\n3shPf/pTevXqxcknn8zw4cNp3749F198cdZlmZltk6qeW+aQaw+p6POVM8b0iiuu4I9//CMdO3Zk\nyZIl3HHHHRWtwcysJfjMvcQ3vvENFi9ezKhRo7j++usZMmQIbdu2zbosM7NtVtVn7i3tyiuv5E9/\n+hNTp05ljz08TN/MWi+fuZuZ5ZDD3cwshxzuZmY55D73LXj11VcZPHgwy5cvp02bNlx22WXMnz9/\nw6pLZmbVrKrDvRLTY26rurq6DY/r6+tb/OebmVWCu2XMzHLI4W5mlkMOdzOzHKq6cPdMwdvPr52Z\nNaiqcO/QoQPLli1zSG2HiGDZsmV06NAh61LMrApU1WiZrl27Ul9fzxtveBGn7dGhQwe6du2adRlm\nVgWqKtzbtm1Lz549sy7DzKzVq6puGTMzqwyHu5lZDjnczcxyyOFuZpZDDnczsxxyuJuZ5ZDD3cws\nhxzuZmY55HA3M8shh7uZWQ453M3McsjhbmaWQw53M7MccribmeWQw93MLIcc7mZmOeRwNzPLIYe7\nmVkOOdzNzHLI4W5mlkNlhbukYyUtlLRI0sQttPmipPmS5km6obJlmpnZttipuQaSaoDLgWOAemC6\npCkRMb+kzf7Ad4HDI+ItSXvuqILNzKx55Zy5DwUWRcTiiFgD3ASc0KjNOODyiHgLICJer2yZZma2\nLcoJ932Bl0u269N9pQ4ADpD0mKRpko5t6okkjZc0Q9KMN954Y/sqNjOzZpUT7mpiXzTa3gnYH/gE\nMBb4taTOm31TxFURMTgiBnfp0mVbazUzszKVE+71QLeS7a7A0iba/CEi1kbEi8BCkrA3M7MMlBPu\n04H9JfWU1A4YA0xp1OYO4JMAkvYg6aZZXMlCzcysfM2Ge0SsA84B7gEWALdExDxJF0oalTa7B1gm\naT4wFfiHiFi2o4o2M7Ota3YoJEBE3A3c3WjfD0oeB3Be+mVmZhnzHapmZjnkcDczyyGHu5lZDjnc\nzcxyyOFuZpZDDnczsxxyuJuZ5ZDD3cwshxzuZmY55HA3M8shh7uZWQ453M3McsjhbmaWQw53M7Mc\ncribmeWQw93MLIcc7mZmOeRwNzPLIYe7mVkOOdzNzHLI4W5mlkMOdzOzHHK4m5nlkMPdzCyHHO5m\nZjnkcDczyyGHu5lZDjnczcxyyOFuZpZDDnczsxxyuJuZ5ZDD3cwshxzuZmY55HA3M8shh7uZWQ45\n3M3McsjhbmaWQ2WFu6RjJS2UtEjSxK20O0VSSBpcuRLNzGxbNRvukmqAy4HPAr2BsZJ6N9FuV+Bc\n4MlKF2lmZtumnDP3ocCiiFgcEWuAm4ATmmj3Q+AnwHsVrM/MzLZDOeG+L/ByyXZ9um8DSQOAbhFx\nVwVrMzOz7VROuKuJfbHhoNQGuBQ4v9knksZLmiFpxhtvvFF+lWZmtk3KCfd6oFvJdldgacn2rkAf\n4EFJdcAwYEpTF1Uj4qqIGBwRg7t06bL9VZuZ2VaVE+7Tgf0l9ZTUDhgDTGk4GBHvRMQeEVEbEbXA\nNGBURMzYIRWbmVmzmg33iFgHnAPcAywAbomIeZIulDRqRxdoZmbbbqdyGkXE3cDdjfb9YAttP/Hh\nyzIzsw/Dd6iameWQw93MLIcc7mZmOeRwNzPLIYe7mVkOOdzNzHLI4W5mlkMOdzOzHHK4m5nlkMPd\nzCyHHO5mZjnkcDczyyGHu5lZDjnczcxyyOFuZpZDDnczsxxyuJuZ5ZDD3cwshxzuZmY55HA3M8sh\nh7uZWQ453M3McsjhbmaWQw53M7MccribmeWQw93MLIcc7mZmOeRwNzPLIYe7mVkOOdzNzHLI4W5m\nlkMOdzOzHHK4m5nlkMPdzCyHHO5mZjnkcDczyyGHu5lZDpUV7pKOlbRQ0iJJE5s4fp6k+ZLmSvqz\npB6VL9XMzMrVbLhLqgEuBz4L9AbGSurdqNlTwOCI6Av8HvhJpQs1M7PylXPmPhRYFBGLI2INcBNw\nQmmDiJgaEavTzWlA18qWaWZm26KccN8XeLlkuz7dtyVnAn/8MEWZmdmHs1MZbdTEvmiyoXQqMBg4\nagvHxwPjAbp3715miWZmtq3KOXOvB7qVbHcFljZuJOlTwPeAURHxflNPFBFXRcTgiBjcpUuX7anX\nzMzKUE64Twf2l9RTUjtgDDCltIGkAcAvSYL99cqXaWZm26LZcI+IdcA5wD3AAuCWiJgn6UJJo9Jm\n/wXsAtwqabakKVt4OjMzawHl9LkTEXcDdzfa94OSx5+qcF1mZvYh+A5VM7MccribmeWQw93MLIcc\n7mZmOeRwNzPLIYe7mVkOOdzNzHLI4W5mlkMOdzOzHHK4m5nlkMPdzCyHHO5mZjnkcDczyyGHu5lZ\nDjnczcxyyOFuZpZDDnczsxxyuJuZ5ZDD3cwshxzuZmY55HA3M8shh7uZWQ453M3McsjhbmaWQw53\nM7MccribmeWQw93MLIcc7mZmOeRwNzPLIYe7mVkOOdzNzHLI4W5mlkMOdzOzHHK4m5nlkMPdzCyH\nHO5mZjnkcDczyyGHu5lZDpUV7pKOlbRQ0iJJE5s43l7SzenxJyXVVrpQMzMrX7PhLqkGuBz4LNAb\nGCupd6NmZwJvRcTHgUuBiypdqJmZla+cM/ehwKKIWBwRa4CbgBMatTkBuDZ9/HtgpCRVrkwzM9sW\nO5XRZl/g5ZLteuDQLbWJiHWS3gF2B94sbSRpPDA+3VwpaeH2FF1he9CozgLza5Hw67BRIV+LLZyZ\nbuG1eKb85z2jIue8PcppVE64N1VNbEcbIuIq4KoyfmaLkTQjIgZnXUc18GuR8OuwkV+LjVrba1FO\nt0w90K1kuyuwdEttJO0E7Ab8tRIFmpnZtisn3KcD+0vqKakdMAaY0qjNFOD09PEpwAMRsdmZu5mZ\ntYxmu2XSPvRzgHuAGuA3ETFP0oXAjIiYAlwNXCdpEckZ+5gdWXSFVVU3Ucb8WiT8Omzk12KjVvVa\nyCfYZmb54ztUzcxyyOFuZpZDDnczsxxyuJuZbYGkw8vZV40KeUFV0gHAP5Dc6bVhxFBEHJ1ZUS1I\n0twtHQIiIvq2ZD1ZktQBGA28BdwJ/CNwJPAC8MOIKN7dmdJHgPOB7hExTtL+wIERcVfGpbU4SbMi\nYmBz+6pROXeo5tGtwJXAr4D1GdeShQ9I7iC+gSTQ3s22nEz9FlgLdCQJtGeAnwNHANcAx2dWWXYm\nAzOB4el2Pcn/mcKEu6ThwGFAF0nnlRzqRDIkvOoVNdzXRcQvsi4iKxHRX9JBwFiSgJ+f/nlvRKzL\ntLiW1zsi+qR3VtdHxFHp/j9JmpNlYRnaLyJGSxoLEBHvFnAiwHbALiQZuWvJ/uUkN2pWvaKG+52S\nJgC3A+837IyIwkyZEBHPAv8K/Kuk0SRnsBcB/5VpYS1vDWy4Wa/xtBpF/FQHsEbSzqTzQ0naj5L/\nJ0UQEQ8BD0m6JiKWAEhqA+wSEcuzra48Re1zf7GJ3RERH2vxYjIiaV+SO4lPIulvvgW4PSJWZlpY\nC5P0Osk01iLpe7+p4RDwxYjYK6vasiLpGOD7JOs33AscDpwREQ9mWVcWJN0AfIPkjX4mybxZl0RE\n1Z8EFTLci07SQyQfNW8hmX9/k08sRfoEI+n0rR2PiGu3djyvJO0ODCN5k5tWxAvLAJJmp92YXwYG\nAf8EzGwNgw4KGe6S2gJnASPSXQ8Cv4yItZkV1YIk1bFxSubSfwANo2UK8wnGNpf2r38Z+FhEXCip\nO/C3EfF/GZfW4iTNA/qTXJP6eUQ8JGlORPTLuLRmFbXP/RdAW+CKdPsr6b6vZ1ZRC4qI2qxrqBaS\nJtPE2gOpiIgzW7KeKnEFyYiqo4ELgRXAbcCQLIvKyC+BOmAO8LCkHiQXVateUc/cN3vnbS3vxpUg\naT7wO+CmiFicdT1ZknRyE7u7A98GaiKiawuXlLmGcdySnoqIAem+wvz/aI6knVrDqLKi3qG6Ph0B\nAICkj1GskRFjSfrc75P0pKRvS9on66KyEBG3NXwBT5EsBH8W8GOgqN1TayXVsHG0TBeSM/nCkbSX\npKsl/THd7s3GtSuqWlHP3EeS3KixmKSfuQfw1YiYmmlhGZA0jGSUyMnAIuDGiPhVtlW1LEm9gO8B\nA0iGgv6uNZyZ7SjpxcPRwECShe9PAb4fEbdmWlgG0lCfDHwvIvql90M8FRGHZFxaswoZ7gCS2gMH\nkoT7sxFRqHG8jUn6BHApyU097TMup8VIuhUYDFxMMnpok09wRRo5VCq9yW0kyf+PP0fEgoxLyoSk\n6RExpFEX1eyI6J91bc0p1AVVSUdHxAOSPt/o0H6SiIj/yaSwjEgaQtJFczLJRaOrSG4zL5IhJN0P\nf08y/UDpnZhBwbpm0ht15kZEH+DZrOupAqvSYaENXVTDgHeyLak8hQp34CjgAeBzTRwLoBDhLuk/\ngS8Cb5PctHN4RNRnW1U2PHJoUxHxgaQ5krpHxEtZ11MFziNZI3o/SY8BXWgl0w8UtlumyCTdDfw4\nIh5Ot08jOXtfAlxQ4K6Ifdl8ptCHs6soG5IeIPlE83/Aqob9ETEqs6IykH6KGUbyOjR04S5sLffD\nFO3MHQBJ3yK5SLKCZGbIgcDEiLg308Jazt+SzH6IpBEkI0O+SXKzxlW0kjOTSpJ0EclFxPls7HcP\noHDhTjJhVulsmCKZd6hQ0k8x/x0Rw4F5WdezrQoZ7sDXImKSpM8AewJfJQn7ooR7m5Kz89HAVelQ\nwNskzc6wriydSDJneaEvrKd2SifO2iCdSKyI7k3vhfifaGXdHEUN94aLZscBkyNiTsGmNN2p5EaM\nkcD40mMZ1ZS1xSR3LRc23CWdBUwAPtZoQZddgceyqSpz55HM9b9e0rtsnKKjU7ZlNa+o/5FnSroX\n6Al8V9KuFOsmjRtJpjN9k2ShjkcAJH2cVjISYAdYDcyW9Gc2nQb63OxKanE3AH8EfgRMLNm/oqjX\nYSJi1+ZbVadCXlBNL5T0BxZHxNuS/gboGhFbWn4ud9IhXXuTLNCxKt13AMl81bMyLS4DW5odsqiz\nQtpGkkZRMslga1lusKjhfjgwOyJWSTqV5ILqpIZJ+c3MACT9mGTk0PXprrEkU/5O3PJ3VYeihvtc\noB/QF7gOuBr4fMkSa1Yw6SLQPyJZoKJDw35Pf1xsaVb0j4gP0u0akukHqn4+96JOHLYuvfJ9AskZ\n+yQ2XSfRimcyybTP64BPkiw7eF2mFVm16FzyeLfMqthGRb2gukLSd0nmcT8yfTdum3FNlq2dI+LP\nkpR2z10g6RGSdWatuH4EPCVpKslImRHAd7MtqTxFDffRwJdIxru/mq40U/VrItoO9V56of15SecA\nfyG5B8IKLCJulPQgSb+7gH+KiFezrao8hexzB0hXVNk/Iu6X9BGShRlWZF2XZSOdRG0ByUfwH5J8\n/P5JREzLtDDLhKRzIuLn6eODI6LV3aFayHCXNI7kxp2/iYj90otpV0bEyIxLM7Mq0LAaVePHrUlR\nu2XOBoYCTwJExPOS/BG8gCRdFhHflnQnTaylWrTJsqxJrfLu9aKG+/sRsaZhxoF0dZXifYQx2Dgi\n5uJMq7Bq01nSSSQjCjs1XgOiNaz9UNRumZ+QzGV+GslsiBOA+RHxvUwLs6og6aNAtyLdsWybkjR5\nK4cjIr7WYsVsp6KGexvgTODTJB+57gF+3dpmfbPKSUdEjCL5NDsbeAN4KCLOy7Ius+1VuHBPx7Rf\nGxGnZl2LVY+GNTIlfZ3krP1fJc1tDXci2o4jqTPJJ/xaNl3EpeonlCtcn3tErJfURVK7iFiTdT1W\nNXaStDfJ8oPunrMGdwPTgKdpZTPHFi7cU3XAY5KmsOkyYpdkVpFl7UKS7rlHI2K6pI8Bz2dck2Wv\nQ2vtmitctwyApCZvKY+If2vpWsysekn6DrASuItN5/mv+vntCxnuZo2lI6j+nWTxkj+RzBr67Yj4\nXaaFWaYknQ38B8nouoawjNYwW2ghw30LN6y8A8wAfhkR77V8VZYlSbMjon86tvlE4DvA1Ijol3Fp\nliFJLwCHRsSbWdeyrYo65e9iko9av0q/lgOvAQek21Y8DbOCHgfc2Bo+dluLmEeyBGOrU9QLqgMi\nYkTJ9p2SHo6IEZJa3QRBVhF3SnqWpFtmgqQugD/B2XqStXWn0srW1i1quHeR1D0iXgJIp/zdIz3m\n4ZEFFBETJV0ELE+Hy64iWczFiu2O9KvVKWq4nw88mvanCehJcrbWEfCCyAUk6bSSx6WHftvy1Vi1\niIhrJbUj6bIFWBgRa7OsqVyFvKAKIKk9cBBJuD/ri6jFJulnJZsdgJHArIg4JaOSrApI+gTJCV8d\nSVZ0A06PiIczLKsshQz3dHGO84AeETEunc/9wIi4K+PSrEpI2g24zlP+FpukmcCXImJhun0AyQX3\nQdlW1ryijpaZTNK3PjzdricZ42zWYDWwf9ZFWObaNgQ7QEQ8RytZb7mofe77RcRoSWMBIuJdNepo\ntWJpdO9DG6A3cEt2FVmVmCHpajbO+/9lYGaG9ZStqOG+RtLOpP+ZJe1HyTAnK6TSxTrWAUsioj6r\nYqxqnEWyctu5JH3uDwNXZFpRmYra534M8H2Ss7N7gcOBMyLiwSzrMjOrlEKGO4Ck3YFhJO/G01rj\n7cVWOZKGAT8DegHtgBpgVUR0yrQwy4Skp9nK0putYZ7/onbLEBHLgP8FkHSgpB9FxLiMy7Ls/BwY\nA9wKDCZZoOHjmVZkWTo+/fPs9M/SPvdWMR1BoUbLSOor6V5Jz0j6d0l7SboN+DMwP+v6LFsRsQio\niYj1ETEZ+GTWNVk2ImJJRCwBDo+If4yIp9OvicBnsq6vHIUKd5JJwW4ATiZZI3MWySRiH4+IS7Ms\nzDK3Or0TcY6kn6TzeHfMuijLXEdJRzRsSDqMVvLvolB97g3TupZsvwzURsT6DMuyKiCpB8nMoO1I\npvvtBPwiPZu3gpI0CPgNsFu6623gaxExK7uqylO0PvcOkgaQXESFZNrfvg1j3FvDX5hVlqQTgK4R\ncXm6/RCEGBsmAAAEc0lEQVSwJ8nFtCcAh3uBRcRMoJ+kTiQnw+9kXVO5inbmPnUrhyMijm6xYqwq\nSHoMGBMRL6fbs4GjgV2AyRExMsv6LFvpHFQnA7WUnAxHxIVZ1VSuQp25R4QvkFlj7RqCPfVoulDH\nX9NZQq3Y/kCySttMWtmNjoU6c2+Qrot4fUS8nW5/FBgbEa3izjOrHEmLIqLJIY+SXoiI/Vq6Jqse\nkp6JiD5Z17E9ijZapsG4hmAHiIi3AI9xL6YnJW32dy/p74D/y6Aeqy6PSzok6yK2R1HP3OcC/SL9\n5SXVAHMj4uBsK7OWJmlPkpV23icZGgswCGgPnBgRr2VVm2VP0nySm9leJPk3IpLrc1V/h2pRw/2/\nSC6QXEkyKuIbwMsRcX6WdVl2JB0NNLy5z4uIB7Ksx6pDOkR2M+kNTlWtqOHeBvg7ktV2RDJ52K89\n3t3MmpJ+wuvQsN2w/nI1K2S4m5mVQ9Io4L+BfYDXgR7AgtbQhVuooZCSbomIL25pxrfW0I9mZi3q\nhySzx94fEQMkfRIYm3FNZSlUuAPfSv88fqutzMwSayNimaQ2ktpExFRJF2VdVDkKNRQyIl5JH05o\nmPWtZPa3CVnWZmZV6W1Ju5CswHS9pEkkK3VVvUL2uUuaFREDG+2b624ZMyuV3qX8LsmJ8JdJJhC7\nPl0PoqoVKtwlnUVyhr4fm04ItSvwWEScmklhZtYqpPfEjImI67OupTlFC/fdgI8CPwImlhxakc4n\nYmZGOgvk2cC+wBTgvnT7H4DZEXFChuWVpVDh3kDSfkB9RLwv6RNAX+C3pVMSmFlxSfoD8BbJtM8j\nSU4K2wHfiojZWdZWrqKG+2ySdTJrgXtI3pkPjIjjsqzLzKqDpKcj4pD0cQ3wJtA9IlZkW1n5CjVa\npsQHEbEO+DxwWUR8B9g745rMrHqsbXiQ3rn+YmsKdijeOPcGayWNJVnh/nPpvrYZ1mNm1aWfpOXp\nYwE7p9sNE4d1yq608hQ13L9KMlnYf0TEi5J6Ar/LuCYzqxIRUZN1DR9WIfvczczyrlBn7p5bxsyK\nolBn7pL2johXWvMczWZm5ShUuJuZFUWhumUaSFrB5t0y7wAzgPMjYnHLV2VmVjmFDHfgEmApcAPJ\n0KYxwN8CC4HfAJ/IrDIzswooZLeMpCcj4tBG+6ZFxDBJcyKiX1a1mZlVQmHvUJX0xYYJ+CV9seRY\n8d7tzCx3inrm/jFgEjA83fUE8B3gL8CgiHg0q9rMzCqhkOFuZpZ3heyWkdRV0u2SXpf0mqTbJHXN\nui4zs0opZLgDk0mm+d2HZDL+O9N9Zma5UMhuGUmzI6J/c/vMzFqrop65vynpVEk16depQNUveGtm\nVq6inrl3B35OMlomgMeBcyPipUwLMzOrkEKGe1MkfTsiLsu6DjOzSnC4pyS9FBHds67DzKwSitrn\n3hRlXYCZWaU43DfyRxgzy41CzQq5hal+IV0At4XLMTPbYdznbmaWQ+6WMTPLIYe7mVkOOdzNzHLI\n4W5mlkMOdzOzHPr/xjLMxOS1hXMAAAAASUVORK5CYII=\n", - "text/plain": [ - "<matplotlib.figure.Figure at 0x10c611ac8>" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -430,19 +470,21 @@ " wrong_count = 0\n", " for i in range(rows):\n", " temp = max(proba[i])\n", - " if temp < 0.95:\n", + " if temp < 0.9:\n", " continue\n", " y_pred1.append(y_pred[i])\n", " y_test1.append(y_test[i])\n", - " f1 = f1_score(y_test1, y_pred1, average='micro')\n", - " recall = recall_score(y_test1, y_pred1, average='micro')\n", - " precision = precision_score(y_test1, y_pred1, average='micro')\n", + " f1 = f1_score(y_test1, y_pred1, average=None)\n", + " recall = recall_score(y_test1, y_pred1, average=None)\n", + " precision = precision_score(y_test1, y_pred1, average=None)\n", " print(precision)\n", " print(recall)\n", " print(f1)\n", + " print(np.mean(precision))\n", + " print(np.mean(recall))\n", + " print(np.mean(f1))\n", + " print(str(len(y_test)) + \": \" + str(len(y_test1)) + \": \" + str(len(y_test1) / len(y_test)))\n", " \n", - "\n", - "'''\n", "#def a():\n", "f1_score_list = list()\n", "recall_score_list = list()\n", @@ -523,7 +565,6 @@ " precision_score_list.append(precision_score(y_test, y_pred, average='micro'))\n", "scores = [np.mean(precision_score_list), np.mean(recall_score_list), np.mean(f1_score_list)]\n", "score_df.loc['tree'] = scores\n", - "'''\n", "\n", "f1_score_list = list()\n", "recall_score_list = list()\n", @@ -542,24 +583,50 @@ " f1_score_list.append(f1_score(y_test, y_pred, average='micro'))\n", " recall_score_list.append(recall_score(y_test, y_pred, average='micro'))\n", " precision_score_list.append(precision_score(y_test, y_pred, average='micro')) \n", - " proba = classifer.predict_proba(x_test)\n", - " my_pred(y_pred, y_test, proba)\n", + " #proba = classifer.predict_proba(x_test)\n", + " #my_pred(y_pred, y_test, proba)\n", + " \n", "scores = [np.mean(precision_score_list), np.mean(recall_score_list), np.mean(f1_score_list)]\n", "score_df.loc['RandomForest'] = scores\n", "print(score_df)\n", - "ax = score_df.plot.bar(title='ssl-fingerprint')\n", - "fig = ax.get_figure()\n", - "#fig.savefig('../figure/ssl.svg')\n" + "# ax = score_df.plot.bar(title='ssl-fingerprint')\n", + "# fig = ax.get_figure()\n", + "# #fig.savefig('../figure/ssl.svg')" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "ename": "IndentationError", + "evalue": "unexpected indent (<ipython-input-27-3f33e9548833>, line 2)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"<ipython-input-27-3f33e9548833>\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m precision recall f1\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unexpected indent\n" + ] + } + ], + "source": [ + "+ sni, san\n", + " precision recall f1\n", + "LogisticRegression 0.891720 0.891720 0.891720\n", + "SVM 0.946033 0.946033 0.946033\n", + "GaussianNB 0.772025 0.772025 0.772025\n", + "tree 0.963330 0.963330 0.963330\n", + "RandomForest 0.964022 0.964022 0.964022\n", + "\n", + "\n", + "no sni, san\n", + "\n", + " precision recall f1\n", + "LogisticRegression 0.872348 0.872348 0.872348\n", + "SVM 0.910055 0.910055 0.910055\n", + "GaussianNB 0.698339 0.698339 0.698339\n", + "tree 0.911208 0.911208 0.911208\n", + "RandomForest 0.904059 0.904059 0.904059" + ] }, { "cell_type": "code", |
