4618 lines (4617 with data), 163.5 kB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"All topological realated functions are used from the package giotto-tda\n",
"\n",
"Reference: giotto-tda: A Topological Data Analysis Toolkit for Machine Learning and Data Exploration, Tauzin et al, arXiv:2004.02551, 2020.\n",
"\n",
"Some part of the code were take from the tutorials and examples of giotto-tda. Reference: https://giotto-ai.github.io/gtda-docs/latest/notebooks/index.html"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"#Run this if giott-tda is not installed\n",
"#pip install giotto-tda"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"#Libraries for toplogical data analysis\n",
"from gtda.homology import CubicalPersistence #persistance diagram\n",
"from gtda.time_series import TakensEmbedding #embeddings\n",
"from gtda.metaestimators import CollectionTransformer\n",
"#topological features\n",
"from gtda.diagrams import Scaler, BettiCurve, Amplitude, PersistenceEntropy, NumberOfPoints, PersistenceLandscape, HeatKernel,PersistenceImage\n",
"from gtda.pipeline import Pipeline\n",
"\n",
"#libraries for classifiers\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn import preprocessing\n",
"import sklearn.metrics\n",
"from sklearn.model_selection import StratifiedKFold, cross_val_score\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.svm import SVC\n",
"from sklearn.utils import shuffle\n",
"\n",
"from os import listdir, walk\n",
"from os.path import isfile, join, relpath\n",
"import pickle\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"import math\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def write_to_file(data, filename):\n",
" '''\n",
" Utitlity function to dump data to file\n",
" '''\n",
" with open(\"pickle_dumps/%s.pk1\"%filename, 'wb') as f:\n",
" pickle.dump(data, f)\n",
"\n",
"def read_from_file(filename):\n",
" '''\n",
" Utility function to read data from file\n",
" '''\n",
" with open(\"pickle_dumps/%s.pk1\"%filename, 'rb') as f:\n",
" data = pickle.load(f)\n",
" return data;\n",
"\n",
"def read_filenames(filepath):\n",
" '''\n",
" Utility functionn to the file name of raw data \n",
" '''\n",
" path=\"data/wisdm-dataset/raw/\" + filepath #path of raw data files\n",
" files = [relpath(join(dirpath, f)) for dirpath,_,filenames in walk(path) \n",
" for f in filenames if f.endswith(\".txt\")] #read only txt files\n",
" return files"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"#Some useful global variables\n",
"noofsubjects = 51\n",
"noofactivities = 18\n",
"activity_labels = np.append(range(1, 14), range(15, 20)) #class labels\n",
"segmentsize=400 #window size of time series data (20 seconda)\n",
"cols = [\"tree_accuracy\", \"forest_accuracy\", \"kn_accuracy\", \n",
" \"tree_recall\", \"forest_recall\", \"kn_recall\",\n",
" \"tree_precision\", \"forest_precision\", \"kn_precision\",\n",
" \"tree_f1\", \"foresh_ft\", \"kn_f1\"]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"#persistance diagram object in homology dimension 0 and 1\n",
"persistence = CubicalPersistence(homology_dimensions=[0, 1], n_jobs=-1)\n",
"\n",
"#scale\n",
"scaling = Scaler()\n",
"\n",
"#steps in the pipele - configuratble\n",
"steps = [(\"persistence\", persistence),\n",
" (\"scaling\", scaling), \n",
" ]\n",
"\n",
"topological_transfomer = Pipeline(steps)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def generate_time_segments(filepath):\n",
" '''\n",
" Generates segmented data from the raw data for all 51 subjects\n",
" '''\n",
" inputarr=[] #input\n",
" output=[] #output labels\n",
" subjectid_arr=[] #array of subject ids\n",
" \n",
" #get filesname of the data files\n",
" files=read_filenames(filepath)\n",
" \n",
" #loop through all 51 subjects\n",
" for subjectid, file in enumerate(files):\n",
" data = pd.read_csv(file)\n",
" \n",
" #loop through each activity and get data\n",
" for class_label in activity_labels:\n",
" #get data for each activity\n",
" rawdata=np.array(data.loc[data['activity']==chr(class_label+64), ['X','Y', 'Z']])\n",
" \n",
" #if no data exists for the activity skip and continue\n",
" if rawdata.size <= 0:\n",
" continue\n",
" \n",
" #no of samples of size=segment size\n",
" #rawdata=scaler.fit_transform(rawdata)\n",
" samples = math.floor(rawdata.shape[0]/segmentsize)\n",
" \n",
" #loop through the segments\n",
" start=0\n",
" for i in range(samples):\n",
" segmenteddata=rawdata[start:(start+segmentsize)]\n",
" \n",
" #break the look if data size < segment size \n",
" if segmenteddata.shape[0] < segmentsize:\n",
" break;\n",
" \n",
" #Perform time delay embedding with embedding dimension=3\n",
" embedded_data=np.column_stack([\n",
" segmenteddata[0:-2,:],\n",
" segmenteddata[1:-1,:],\n",
" segmenteddata[2:,:],\n",
" ])\n",
" \n",
" inputarr.append(embedded_data)\n",
" output.append(class_label)\n",
" subjectid_arr.append(subjectid)\n",
" \n",
" start += segmentsize\n",
" \n",
" return np.array(inputarr), np.array(subjectid_arr), np.array(output)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def generate_topological_features(inputarr, nbins=50):\n",
" '''\n",
" Generates persistance homology for the the raw data in segmentsize windows.\n",
" Extract topological features out of the persistance homology diagrams\n",
" '''\n",
" #topological feature extracted from persistance homology\n",
" entropy=PersistenceEntropy(n_jobs=-1, normalize=True)\n",
" landscape=Amplitude(metric=\"landscape\", n_jobs=-1, metric_params={\"n_bins\":nbins})\n",
" wasserstein=Amplitude(metric=\"wasserstein\", n_jobs=-1)\n",
" betti=Amplitude(metric=\"betti\", n_jobs=-1, metric_params={\"n_bins\":nbins})\n",
" bottleneck=Amplitude(metric=\"bottleneck\", n_jobs=-1)\n",
" p_image=Amplitude(metric=\"persistence_image\", n_jobs=-1, metric_params={\"n_bins\":nbins})\n",
" heat=Amplitude(metric=\"heat\", n_jobs=-1, metric_params={\"n_bins\":nbins})\n",
" silhouette=Amplitude(metric=\"silhouette\", n_jobs=-1, metric_params={\"n_bins\":nbins})\n",
" noofpoints=NumberOfPoints(n_jobs=-1)\n",
"\n",
" #generate persistance homology diagram\n",
" features = topological_transfomer.fit_transform(inputarr)\n",
" \n",
" #extract topological features\n",
" features_array=np.column_stack([\n",
" entropy.fit_transform(features),\n",
" landscape.fit_transform(features),\n",
" wasserstein.fit_transform(features),\n",
" betti.fit_transform(features),\n",
" bottleneck.fit_transform(features),\n",
" p_image.fit_transform(features),\n",
" heat.fit_transform(features),\n",
" silhouette.fit_transform(features),\n",
" noofpoints.fit_transform(features), \n",
" ])\n",
"\n",
" return features_array\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def generate_features(inputarr, subject, output, nbins):\n",
" '''\n",
" Generate topological features for the input\n",
" '''\n",
" features = np.empty((0,18), float)\n",
" class_label=np.empty((0,1), int)\n",
" subject_label = np.empty((0,1), int)\n",
" \n",
" for subjectid in range(51):\n",
" print(\"Processing subject %i\"%subjectid)\n",
" X = inputarr[subject==subjectid]\n",
" y = output[subject==subjectid]\n",
" \n",
" if X.shape[0] == 0:\n",
" continue;\n",
" \n",
" #generate topological features\n",
" features = np.append(features, generate_topological_features(X, nbins), axis=0)\n",
" class_label = np.append(class_label, y)\n",
" subject_label = np.append(subject_label, np.full((X.shape[0], 1), subjectid, int))\n",
" \n",
" return features, class_label, subject_label"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def impersonal_model(features, class_label, subject_label):\n",
" '''\n",
" Trains impersonal nodel for the toplogical features.\n",
" Classifiers trained - decision tree, random forest and k neighbours\n",
" '''\n",
" tree_model=[]\n",
" forest_model=[]\n",
" kn_model=[]\n",
" X_tst=[]\n",
" y_tst=[]\n",
" scaler = preprocessing.StandardScaler()\n",
" \n",
" #loop through all 51 subjects\n",
" for subjectid in range(51):\n",
" #LOSO validation\n",
" print(\"Validating subject %i\"%subjectid)\n",
" X_train = features[subject_label!=subjectid]\n",
" y_train = class_label[subject_label!=subjectid]\n",
" X_test = features[subject_label==subjectid] \n",
" y_test = class_label[subject_label==subjectid]\n",
" \n",
" #shuffle training samples\n",
" X_train, y_train = shuffle(X_train, y_train)\n",
" \n",
" #schale the features\n",
" X_train=scaler.fit_transform(X_train)\n",
" X_test=scaler.transform(X_test)\n",
" \n",
" #train the model\n",
" forest = RandomForestClassifier(random_state=0)\n",
" tree = DecisionTreeClassifier(random_state=0)\n",
" kneighbors=KNeighborsClassifier()\n",
" \n",
" #fit the models\n",
" forest.fit(X_train, y_train)\n",
" tree.fit(X_train, y_train)\n",
" kneighbors.fit(X_train, y_train)\n",
" \n",
" tree_model.append(tree)\n",
" forest_model.append(forest)\n",
" kn_model.append(kneighbors)\n",
" X_tst.append(X_test)\n",
" y_tst.append(y_test)\n",
" \n",
" return tree_model, forest_model, kn_model, X_tst, y_tst"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"def personal_model(features, class_label, subject_label):\n",
" '''\n",
" Trains personal nodel for the toplogical features.\n",
" Classifiers trained - decision tree, random forest and k neighbours\n",
" '''\n",
" tree_model=[]\n",
" forest_model=[]\n",
" kn_model=[]\n",
" X_tst=[]\n",
" y_tst=[]\n",
" scaler = preprocessing.StandardScaler()\n",
" \n",
" #loop through all 51 subjects\n",
" for subjectid in range(51):\n",
" print(\"Processing subject %i\"%subjectid)\n",
" X = features[subject_label==subjectid]\n",
" y = class_label[subject_label==subjectid]\n",
" \n",
" #split the data\n",
" X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0, stratify=y)\n",
"\n",
" #schale the features\n",
" X_train=scaler.fit_transform(X_train)\n",
" X_test=scaler.transform(X_test)\n",
" \n",
" #train the model\n",
" forest = RandomForestClassifier(random_state=0)\n",
" tree = DecisionTreeClassifier(random_state=0)\n",
" kneighbors=KNeighborsClassifier()\n",
" \n",
" #fit the models\n",
" forest.fit(X_train, y_train)\n",
" tree.fit(X_train, y_train)\n",
" kneighbors.fit(X_train, y_train)\n",
" \n",
" tree_model.append(tree)\n",
" forest_model.append(forest)\n",
" kn_model.append(kneighbors)\n",
" X_tst.append(X_test)\n",
" y_tst.append(y_test)\n",
" \n",
" return tree_model, forest_model, kn_model, X_tst, y_tst"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"#calculate avg\n",
"def calculate_score(tree_model, forest_model, kn_model, X_tst, y_tst):\n",
" '''\n",
" Evaluates the model and return the average metric scores\n",
" '''\n",
" #initialize to np.nan to handle missing subjects and activities\n",
" #use np.nanmean to ignore nan values\n",
" noOfSubjects = len(tree_model)\n",
" recall_score=np.full([3, noOfSubjects,18], np.nan)\n",
" precision_score=np.full([3, noOfSubjects,18], np.nan)\n",
" f1_score= np.full([3, noOfSubjects,18], np.nan)\n",
" accuracy=np.full([3, noOfSubjects,18], np.nan)\n",
" overall_accuracy = np.full([3, noOfSubjects], np.nan)\n",
" \n",
" for subjectid, X_test in enumerate(X_tst):\n",
" if len(X_test) == 0:\n",
" continue\n",
" for i, clf in enumerate([tree_model[subjectid], forest_model[subjectid], kn_model[subjectid]]):\n",
" y_pred = clf.predict(X_test)\n",
" with np.errstate(divide='ignore', invalid='ignore'):\n",
" recall_score[i][subjectid] = sklearn.metrics.recall_score(y_tst[subjectid], y_pred, average=None, labels=activity_labels, zero_division=0)\n",
" precision_score[i][subjectid] = sklearn.metrics.precision_score(y_tst[subjectid], y_pred, average=None, labels=activity_labels, zero_division=0)\n",
" f1_score[i][subjectid] = sklearn.metrics.f1_score(y_tst[subjectid], y_pred, average=None, labels=activity_labels, zero_division=0)\n",
" cm = sklearn.metrics.confusion_matrix(y_tst[subjectid], y_pred, labels=activity_labels)\n",
" accuracy[i][subjectid] = cm.diagonal()/cm.sum(axis=1)\n",
" overall_accuracy[i][subjectid] = sklearn.metrics.accuracy_score(y_tst[subjectid], y_pred)\n",
"\n",
" score = np.column_stack([np.nanmean(accuracy, axis=1).T, \n",
" np.nanmean(recall_score, axis=1).T, \n",
" np.nanmean(precision_score, axis=1).T, \n",
" np.nanmean(f1_score, axis=1).T]) * 100\n",
" \n",
" return score, np.nanmean(overall_accuracy, axis=1)\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"#get all time segments from each sensors\n",
"phone_accel_input, phone_accel_subjectid, phone_accel_output = generate_time_segments(\"phone/accel/\")\n",
"phone_gyro_input, phone_gyro_subjectid, phone_gyro_output = generate_time_segments(\"phone/gyro/\")\n",
"watch_accel_input, watch_accel_subjectid, watch_accel_output = generate_time_segments(\"watch/accel/\")\n",
"watch_gyro_input, watch_gyro_subjectid, watch_gyro_output = generate_time_segments(\"watch/gyro/\")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Phone accel: input (11465, 398, 9) subcjectid (11465,) output (11465,)\n",
"Phone gyro: input (8407, 398, 9) subcjectid (8407,) output (8407,)\n",
"Watch accel: input (9396, 398, 9) subcjectid (9396,) output (9396,)\n",
"Watch gyro: input (8448, 398, 9) subcjectid (8448,) output (8448,)\n"
]
}
],
"source": [
"print(\"Phone accel: input %s subcjectid %s output %s\"%(np.shape(phone_accel_input), np.shape(phone_accel_subjectid), np.shape(phone_accel_output)))\n",
"print(\"Phone gyro: input %s subcjectid %s output %s\"%(np.shape(phone_gyro_input), np.shape(phone_gyro_subjectid), np.shape(phone_gyro_output)))\n",
"print(\"Watch accel: input %s subcjectid %s output %s\"%(np.shape(watch_accel_input), np.shape(watch_accel_subjectid), np.shape(watch_accel_output)))\n",
"print(\"Watch gyro: input %s subcjectid %s output %s\"%(np.shape(watch_gyro_input), np.shape(watch_gyro_subjectid), np.shape(watch_gyro_output)))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing subject 0\n",
"Processing subject 1\n",
"Processing subject 2\n",
"Processing subject 3\n",
"Processing subject 4\n",
"Processing subject 5\n",
"Processing subject 6\n",
"Processing subject 7\n",
"Processing subject 8\n",
"Processing subject 9\n",
"Processing subject 10\n",
"Processing subject 11\n",
"Processing subject 12\n",
"Processing subject 13\n",
"Processing subject 14\n",
"Processing subject 15\n",
"Processing subject 16\n",
"Processing subject 17\n",
"Processing subject 18\n",
"Processing subject 19\n",
"Processing subject 20\n",
"Processing subject 21\n",
"Processing subject 22\n",
"Processing subject 23\n",
"Processing subject 24\n",
"Processing subject 25\n",
"Processing subject 26\n",
"Processing subject 27\n",
"Processing subject 28\n",
"Processing subject 29\n",
"Processing subject 30\n",
"Processing subject 31\n",
"Processing subject 32\n",
"Processing subject 33\n",
"Processing subject 34\n",
"Processing subject 35\n",
"Processing subject 36\n",
"Processing subject 37\n",
"Processing subject 38\n",
"Processing subject 39\n",
"Processing subject 40\n",
"Processing subject 41\n",
"Processing subject 42\n",
"Processing subject 43\n",
"Processing subject 44\n",
"Processing subject 45\n",
"Processing subject 46\n",
"Processing subject 47\n",
"Processing subject 48\n",
"Processing subject 49\n",
"Processing subject 50\n",
"(11465, 18)\n",
"(11465,)\n",
"(11465,)\n"
]
}
],
"source": [
"#generate features for phone accel \n",
"(phone_accel_features, phone_accel_class_label, phone_accel_subject) = generate_features(\n",
" phone_accel_input, \n",
" phone_accel_subjectid, \n",
" phone_accel_output, nbins=100)\n",
"\n",
"print(phone_accel_features.shape)\n",
"print(phone_accel_class_label.shape)\n",
"print(phone_accel_subject.shape)\n",
"write_to_file((phone_accel_features, phone_accel_class_label, phone_accel_subject), \"phone_accel_features\")"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing subject 0\n",
"Processing subject 1\n",
"Processing subject 2\n",
"Processing subject 3\n",
"Processing subject 4\n",
"Processing subject 5\n",
"Processing subject 6\n",
"Processing subject 7\n",
"Processing subject 8\n",
"Processing subject 9\n",
"Processing subject 10\n",
"Processing subject 11\n",
"Processing subject 12\n",
"Processing subject 13\n",
"Processing subject 14\n",
"Processing subject 15\n",
"Processing subject 16\n",
"Processing subject 17\n",
"Processing subject 18\n",
"Processing subject 19\n",
"Processing subject 20\n",
"Processing subject 21\n",
"Processing subject 22\n",
"Processing subject 23\n",
"Processing subject 24\n",
"Processing subject 25\n",
"Processing subject 26\n",
"Processing subject 27\n",
"Processing subject 28\n",
"Processing subject 29\n",
"Processing subject 30\n",
"Processing subject 31\n",
"Processing subject 32\n",
"Processing subject 33\n",
"Processing subject 34\n",
"Processing subject 35\n",
"Processing subject 36\n",
"Processing subject 37\n",
"Processing subject 38\n",
"Processing subject 39\n",
"Processing subject 40\n",
"Processing subject 41\n",
"Processing subject 42\n",
"Processing subject 43\n",
"Processing subject 44\n",
"Processing subject 45\n",
"Processing subject 46\n",
"Processing subject 47\n",
"Processing subject 48\n",
"Processing subject 49\n",
"Processing subject 50\n",
"(8407, 18)\n",
"(8407,)\n",
"(8407,)\n"
]
}
],
"source": [
"#generate features for phone gyro \n",
"(phone_gyro_features, phone_gyro_class_label, phone_gyro_subject) = generate_features(\n",
" phone_gyro_input, \n",
" phone_gyro_subjectid, \n",
" phone_gyro_output, nbins=100)\n",
"\n",
"print(phone_gyro_features.shape)\n",
"print(phone_gyro_class_label.shape)\n",
"print(phone_gyro_subject.shape)\n",
"\n",
"write_to_file((phone_gyro_features, phone_gyro_class_label, phone_gyro_subject), \"phone_gyro_features\")"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing subject 0\n",
"Processing subject 1\n",
"Processing subject 2\n",
"Processing subject 3\n",
"Processing subject 4\n",
"Processing subject 5\n",
"Processing subject 6\n",
"Processing subject 7\n",
"Processing subject 8\n",
"Processing subject 9\n",
"Processing subject 10\n",
"Processing subject 11\n",
"Processing subject 12\n",
"Processing subject 13\n",
"Processing subject 14\n",
"Processing subject 15\n",
"Processing subject 16\n",
"Processing subject 17\n",
"Processing subject 18\n",
"Processing subject 19\n",
"Processing subject 20\n",
"Processing subject 21\n",
"Processing subject 22\n",
"Processing subject 23\n",
"Processing subject 24\n",
"Processing subject 25\n",
"Processing subject 26\n",
"Processing subject 27\n",
"Processing subject 28\n",
"Processing subject 29\n",
"Processing subject 30\n",
"Processing subject 31\n",
"Processing subject 32\n",
"Processing subject 33\n",
"Processing subject 34\n",
"Processing subject 35\n",
"Processing subject 36\n",
"Processing subject 37\n",
"Processing subject 38\n",
"Processing subject 39\n",
"Processing subject 40\n",
"Processing subject 41\n",
"Processing subject 42\n",
"Processing subject 43\n",
"Processing subject 44\n",
"Processing subject 45\n",
"Processing subject 46\n",
"Processing subject 47\n",
"Processing subject 48\n",
"Processing subject 49\n",
"Processing subject 50\n",
"(9396, 18)\n",
"(9396,)\n",
"(9396,)\n"
]
}
],
"source": [
"#generate features for watch accel \n",
"(watch_accel_features, watch_accel_class_label, watch_accel_subject) = generate_features(\n",
" watch_accel_input, \n",
" watch_accel_subjectid, \n",
" watch_accel_output, nbins=100)\n",
"\n",
"print(watch_accel_features.shape)\n",
"print(watch_accel_class_label.shape)\n",
"print(watch_accel_subject.shape)\n",
"write_to_file((watch_accel_features, watch_accel_class_label, watch_accel_subject), \"watch_accel_features\")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing subject 0\n",
"Processing subject 1\n",
"Processing subject 2\n",
"Processing subject 3\n",
"Processing subject 4\n",
"Processing subject 5\n",
"Processing subject 6\n",
"Processing subject 7\n",
"Processing subject 8\n",
"Processing subject 9\n",
"Processing subject 10\n",
"Processing subject 11\n",
"Processing subject 12\n",
"Processing subject 13\n",
"Processing subject 14\n",
"Processing subject 15\n",
"Processing subject 16\n",
"Processing subject 17\n",
"Processing subject 18\n",
"Processing subject 19\n",
"Processing subject 20\n",
"Processing subject 21\n",
"Processing subject 22\n",
"Processing subject 23\n",
"Processing subject 24\n",
"Processing subject 25\n",
"Processing subject 26\n",
"Processing subject 27\n",
"Processing subject 28\n",
"Processing subject 29\n",
"Processing subject 30\n",
"Processing subject 31\n",
"Processing subject 32\n",
"Processing subject 33\n",
"Processing subject 34\n",
"Processing subject 35\n",
"Processing subject 36\n",
"Processing subject 37\n",
"Processing subject 38\n",
"Processing subject 39\n",
"Processing subject 40\n",
"Processing subject 41\n",
"Processing subject 42\n",
"Processing subject 43\n",
"Processing subject 44\n",
"Processing subject 45\n",
"Processing subject 46\n",
"Processing subject 47\n",
"Processing subject 48\n",
"Processing subject 49\n",
"Processing subject 50\n",
"(8448, 18)\n",
"(8448,)\n",
"(8448,)\n"
]
}
],
"source": [
"#generate features for watch gyro \n",
"(watch_gyro_features, watch_gyro_class_label, watch_gyro_subject) = generate_features(\n",
" watch_gyro_input, \n",
" watch_gyro_subjectid, \n",
" watch_gyro_output, nbins=100)\n",
"\n",
"print(watch_gyro_features.shape)\n",
"print(watch_gyro_class_label.shape)\n",
"print(watch_gyro_subject.shape)\n",
"write_to_file((watch_gyro_features, watch_gyro_class_label, watch_gyro_subject), \"watch_gyro_features\")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing subject 0\n",
"Processing subject 1\n",
"Processing subject 2\n",
"Processing subject 3\n",
"Processing subject 4\n",
"Processing subject 5\n",
"Processing subject 6\n",
"Processing subject 7\n",
"Processing subject 8\n",
"Processing subject 9\n",
"Processing subject 10\n",
"Processing subject 11\n",
"Processing subject 12\n",
"Processing subject 13\n",
"Processing subject 14\n",
"Processing subject 15\n",
"Processing subject 16\n",
"Processing subject 17\n",
"Processing subject 18\n",
"Processing subject 19\n",
"Processing subject 20\n",
"Processing subject 21\n",
"Processing subject 22\n",
"Processing subject 23\n",
"Processing subject 24\n",
"Processing subject 25\n",
"Processing subject 26\n",
"Processing subject 27\n",
"Processing subject 28\n",
"Processing subject 29\n",
"Processing subject 30\n",
"Processing subject 31\n",
"Processing subject 32\n",
"Processing subject 33\n",
"Processing subject 34\n",
"Processing subject 35\n",
"Processing subject 36\n",
"Processing subject 37\n",
"Processing subject 38\n",
"Processing subject 39\n",
"Processing subject 40\n",
"Processing subject 41\n",
"Processing subject 42\n",
"Processing subject 43\n",
"Processing subject 44\n",
"Processing subject 45\n",
"Processing subject 46\n",
"Processing subject 47\n",
"Processing subject 48\n",
"Processing subject 49\n",
"Processing subject 50\n"
]
}
],
"source": [
"#generate personal models for phone accel \n",
"(phone_accel_tree_model, \n",
" phone_accel_forest_model, \n",
" phone_accel_kn_model, \n",
" phone_accel_X_tst, \n",
" phone_accel_y_tst) = personal_model(phone_accel_features, phone_accel_class_label, phone_accel_subject)\n",
"\n",
"write_to_file((phone_accel_tree_model, \n",
" phone_accel_forest_model, \n",
" phone_accel_kn_model, \n",
" phone_accel_X_tst, \n",
" phone_accel_y_tst), \"phone_accel_personal_model\")\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing subject 0\n",
"Processing subject 1\n",
"Processing subject 2\n",
"Processing subject 3\n",
"Processing subject 4\n",
"Processing subject 5\n",
"Processing subject 6\n",
"Processing subject 7\n",
"Processing subject 8\n",
"Processing subject 9\n",
"Processing subject 10\n",
"Processing subject 11\n",
"Processing subject 12\n",
"Processing subject 13\n",
"Processing subject 14\n",
"Processing subject 15\n",
"Processing subject 16\n",
"Processing subject 17\n",
"Processing subject 18\n",
"Processing subject 19\n",
"Processing subject 20\n",
"Processing subject 21\n",
"Processing subject 22\n",
"Processing subject 23\n",
"Processing subject 24\n",
"Processing subject 25\n",
"Processing subject 26\n",
"Processing subject 27\n",
"Processing subject 28\n",
"Processing subject 29\n",
"Processing subject 30\n",
"Processing subject 31\n",
"Processing subject 32\n",
"Processing subject 33\n",
"Processing subject 34\n",
"Processing subject 35\n",
"Processing subject 36\n",
"Processing subject 37\n",
"Processing subject 38\n",
"Processing subject 39\n",
"Processing subject 40\n",
"Processing subject 41\n",
"Processing subject 42\n",
"Processing subject 43\n",
"Processing subject 44\n",
"Processing subject 45\n",
"Processing subject 46\n",
"Processing subject 47\n",
"Processing subject 48\n",
"Processing subject 49\n",
"Processing subject 50\n"
]
}
],
"source": [
"#generate personal models for phone gyro and classfiy using it\n",
"(phone_gyro_tree_model, \n",
" phone_gyro_forest_model, \n",
" phone_gyro_kn_model, \n",
" phone_gyro_X_tst, \n",
" phone_gyro_y_tst) = personal_model(phone_gyro_features, phone_gyro_class_label, phone_gyro_subject)\n",
"\n",
"\n",
"write_to_file((phone_gyro_tree_model, \n",
" phone_gyro_forest_model, \n",
" phone_gyro_kn_model, \n",
" phone_gyro_X_tst, \n",
" phone_gyro_y_tst), \"phone_gyro_personal_model\")\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing subject 0\n",
"Processing subject 1\n",
"Processing subject 2\n",
"Processing subject 3\n",
"Processing subject 4\n",
"Processing subject 5\n",
"Processing subject 6\n",
"Processing subject 7\n",
"Processing subject 8\n",
"Processing subject 9\n",
"Processing subject 10\n",
"Processing subject 11\n",
"Processing subject 12\n",
"Processing subject 13\n",
"Processing subject 14\n",
"Processing subject 15\n",
"Processing subject 16\n",
"Processing subject 17\n",
"Processing subject 18\n",
"Processing subject 19\n",
"Processing subject 20\n",
"Processing subject 21\n",
"Processing subject 22\n",
"Processing subject 23\n",
"Processing subject 24\n",
"Processing subject 25\n",
"Processing subject 26\n",
"Processing subject 27\n",
"Processing subject 28\n",
"Processing subject 29\n",
"Processing subject 30\n",
"Processing subject 31\n",
"Processing subject 32\n",
"Processing subject 33\n",
"Processing subject 34\n",
"Processing subject 35\n",
"Processing subject 36\n",
"Processing subject 37\n",
"Processing subject 38\n",
"Processing subject 39\n",
"Processing subject 40\n",
"Processing subject 41\n",
"Processing subject 42\n",
"Processing subject 43\n",
"Processing subject 44\n",
"Processing subject 45\n",
"Processing subject 46\n",
"Processing subject 47\n",
"Processing subject 48\n",
"Processing subject 49\n",
"Processing subject 50\n"
]
}
],
"source": [
"#generate personal models for watch accel and classfiy using it\n",
"(watch_accel_tree_model, \n",
" watch_accel_forest_model, \n",
" watch_accel_kn_model, \n",
" watch_accel_X_tst, \n",
" watch_accel_y_tst) = personal_model(watch_accel_features, watch_accel_class_label, watch_accel_subject)\n",
"\n",
"write_to_file((watch_accel_tree_model, \n",
" watch_accel_forest_model, \n",
" watch_accel_kn_model, \n",
" watch_accel_X_tst, \n",
" watch_accel_y_tst), \"watch_accel_personal_model\")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing subject 0\n",
"Processing subject 1\n",
"Processing subject 2\n",
"Processing subject 3\n",
"Processing subject 4\n",
"Processing subject 5\n",
"Processing subject 6\n",
"Processing subject 7\n",
"Processing subject 8\n",
"Processing subject 9\n",
"Processing subject 10\n",
"Processing subject 11\n",
"Processing subject 12\n",
"Processing subject 13\n",
"Processing subject 14\n",
"Processing subject 15\n",
"Processing subject 16\n",
"Processing subject 17\n",
"Processing subject 18\n",
"Processing subject 19\n",
"Processing subject 20\n",
"Processing subject 21\n",
"Processing subject 22\n",
"Processing subject 23\n",
"Processing subject 24\n",
"Processing subject 25\n",
"Processing subject 26\n",
"Processing subject 27\n",
"Processing subject 28\n",
"Processing subject 29\n",
"Processing subject 30\n",
"Processing subject 31\n",
"Processing subject 32\n",
"Processing subject 33\n",
"Processing subject 34\n",
"Processing subject 35\n",
"Processing subject 36\n",
"Processing subject 37\n",
"Processing subject 38\n",
"Processing subject 39\n",
"Processing subject 40\n",
"Processing subject 41\n",
"Processing subject 42\n",
"Processing subject 43\n",
"Processing subject 44\n",
"Processing subject 45\n",
"Processing subject 46\n",
"Processing subject 47\n",
"Processing subject 48\n",
"Processing subject 49\n",
"Processing subject 50\n"
]
}
],
"source": [
"#generate personal models for watch gyro and classfiy using it\n",
"(watch_gyro_tree_model, \n",
" watch_gyro_forest_model, \n",
" watch_gyro_kn_model, \n",
" watch_gyro_X_tst, \n",
" watch_gyro_y_tst) = personal_model(watch_gyro_features, watch_gyro_class_label, watch_gyro_subject)\n",
"\n",
"write_to_file((watch_gyro_tree_model, \n",
" watch_gyro_forest_model, \n",
" watch_gyro_kn_model, \n",
" watch_gyro_X_tst, \n",
" watch_gyro_y_tst), \"watch_gyro_personal_model\")"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"#calculate personal model accuracy scores\n",
"\n",
"phone_accel_score_personal = calculate_score(phone_accel_tree_model, \n",
" phone_accel_forest_model, \n",
" phone_accel_kn_model, \n",
" phone_accel_X_tst, \n",
" phone_accel_y_tst)\n",
"\n",
"phone_gyro_score_personal = calculate_score(phone_gyro_tree_model, \n",
" phone_gyro_forest_model, \n",
" phone_gyro_kn_model, \n",
" phone_gyro_X_tst, \n",
" phone_gyro_y_tst)\n",
"\n",
"watch_accel_score_personal = calculate_score(watch_accel_tree_model, \n",
" watch_accel_forest_model, \n",
" watch_accel_kn_model, \n",
" watch_accel_X_tst, \n",
" watch_accel_y_tst)\n",
"\n",
"watch_gyro_score_personal = calculate_score(watch_gyro_tree_model, \n",
" watch_gyro_forest_model, \n",
" watch_gyro_kn_model, \n",
" watch_gyro_X_tst, \n",
" watch_gyro_y_tst)\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Validating subject 0\n",
"Validating subject 1\n",
"Validating subject 2\n",
"Validating subject 3\n",
"Validating subject 4\n",
"Validating subject 5\n",
"Validating subject 6\n",
"Validating subject 7\n",
"Validating subject 8\n",
"Validating subject 9\n",
"Validating subject 10\n",
"Validating subject 11\n",
"Validating subject 12\n",
"Validating subject 13\n",
"Validating subject 14\n",
"Validating subject 15\n",
"Validating subject 16\n",
"Validating subject 17\n",
"Validating subject 18\n",
"Validating subject 19\n",
"Validating subject 20\n",
"Validating subject 21\n",
"Validating subject 22\n",
"Validating subject 23\n",
"Validating subject 24\n",
"Validating subject 25\n",
"Validating subject 26\n",
"Validating subject 27\n",
"Validating subject 28\n",
"Validating subject 29\n",
"Validating subject 30\n",
"Validating subject 31\n",
"Validating subject 32\n",
"Validating subject 33\n",
"Validating subject 34\n",
"Validating subject 35\n",
"Validating subject 36\n",
"Validating subject 37\n",
"Validating subject 38\n",
"Validating subject 39\n",
"Validating subject 40\n",
"Validating subject 41\n",
"Validating subject 42\n",
"Validating subject 43\n",
"Validating subject 44\n",
"Validating subject 45\n",
"Validating subject 46\n",
"Validating subject 47\n",
"Validating subject 48\n",
"Validating subject 49\n",
"Validating subject 50\n"
]
}
],
"source": [
"#generate impersonal models for phone accel \n",
"(phone_accel_tree_impersonal_model, \n",
" phone_accel_forest_impersonal_model, \n",
" phone_accel_kn_impersonal_model, \n",
" phone_accel_impersonal_X_tst, \n",
" phone_accel_impersonal_y_tst) = impersonal_model(phone_accel_features, phone_accel_class_label, phone_accel_subject)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Validating subject 0\n",
"Validating subject 1\n",
"Validating subject 2\n",
"Validating subject 3\n",
"Validating subject 4\n",
"Validating subject 5\n",
"Validating subject 6\n",
"Validating subject 7\n",
"Validating subject 8\n",
"Validating subject 9\n",
"Validating subject 10\n",
"Validating subject 11\n",
"Validating subject 12\n",
"Validating subject 13\n",
"Validating subject 14\n",
"Validating subject 15\n",
"Validating subject 16\n",
"Validating subject 17\n",
"Validating subject 18\n",
"Validating subject 19\n",
"Validating subject 20\n",
"Validating subject 21\n",
"Validating subject 22\n",
"Validating subject 23\n",
"Validating subject 24\n",
"Validating subject 25\n",
"Validating subject 26\n",
"Validating subject 27\n",
"Validating subject 28\n",
"Validating subject 29\n",
"Validating subject 30\n",
"Validating subject 31\n",
"Validating subject 32\n",
"Validating subject 33\n",
"Validating subject 34\n",
"Validating subject 35\n",
"Validating subject 36\n",
"Validating subject 37\n",
"Validating subject 38\n",
"Validating subject 39\n",
"Validating subject 40\n",
"Validating subject 41\n",
"Validating subject 42\n",
"Validating subject 43\n",
"Validating subject 44\n",
"Validating subject 45\n",
"Validating subject 46\n",
"Validating subject 47\n",
"Validating subject 48\n",
"Validating subject 49\n",
"Validating subject 50\n"
]
}
],
"source": [
"#generate impersonal models for phone gyro \n",
"(phone_gyro_tree_impersonal_model, \n",
" phone_gyro_forest_impersonal_model, \n",
" phone_gyro_kn_impersonal_model, \n",
" phone_gyro_impersonal_X_tst, \n",
" phone_gyro_impersonal_y_tst) = impersonal_model(phone_gyro_features[:,:18], phone_gyro_class_label, phone_gyro_subject)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Validating subject 0\n",
"Validating subject 1\n",
"Validating subject 2\n",
"Validating subject 3\n",
"Validating subject 4\n",
"Validating subject 5\n",
"Validating subject 6\n",
"Validating subject 7\n",
"Validating subject 8\n",
"Validating subject 9\n",
"Validating subject 10\n",
"Validating subject 11\n",
"Validating subject 12\n",
"Validating subject 13\n",
"Validating subject 14\n",
"Validating subject 15\n",
"Validating subject 16\n",
"Validating subject 17\n",
"Validating subject 18\n",
"Validating subject 19\n",
"Validating subject 20\n",
"Validating subject 21\n",
"Validating subject 22\n",
"Validating subject 23\n",
"Validating subject 24\n",
"Validating subject 25\n",
"Validating subject 26\n",
"Validating subject 27\n",
"Validating subject 28\n",
"Validating subject 29\n",
"Validating subject 30\n",
"Validating subject 31\n",
"Validating subject 32\n",
"Validating subject 33\n",
"Validating subject 34\n",
"Validating subject 35\n",
"Validating subject 36\n",
"Validating subject 37\n",
"Validating subject 38\n",
"Validating subject 39\n",
"Validating subject 40\n",
"Validating subject 41\n",
"Validating subject 42\n",
"Validating subject 43\n",
"Validating subject 44\n",
"Validating subject 45\n",
"Validating subject 46\n",
"Validating subject 47\n",
"Validating subject 48\n",
"Validating subject 49\n",
"Validating subject 50\n"
]
}
],
"source": [
"#generate impersonal models for watch accel \n",
"(watch_accel_tree_impersonal_model, \n",
" watch_accel_forest_impersonal_model, \n",
" watch_accel_kn_impersonal_model, \n",
" watch_accel_impersonal_X_tst, \n",
" watch_accel_impersonal_y_tst) = impersonal_model(watch_accel_features, watch_accel_class_label, watch_accel_subject)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Validating subject 0\n",
"Validating subject 1\n",
"Validating subject 2\n",
"Validating subject 3\n",
"Validating subject 4\n",
"Validating subject 5\n",
"Validating subject 6\n",
"Validating subject 7\n",
"Validating subject 8\n",
"Validating subject 9\n",
"Validating subject 10\n",
"Validating subject 11\n",
"Validating subject 12\n",
"Validating subject 13\n",
"Validating subject 14\n",
"Validating subject 15\n",
"Validating subject 16\n",
"Validating subject 17\n",
"Validating subject 18\n",
"Validating subject 19\n",
"Validating subject 20\n",
"Validating subject 21\n",
"Validating subject 22\n",
"Validating subject 23\n",
"Validating subject 24\n",
"Validating subject 25\n",
"Validating subject 26\n",
"Validating subject 27\n",
"Validating subject 28\n",
"Validating subject 29\n",
"Validating subject 30\n",
"Validating subject 31\n",
"Validating subject 32\n",
"Validating subject 33\n",
"Validating subject 34\n",
"Validating subject 35\n",
"Validating subject 36\n",
"Validating subject 37\n",
"Validating subject 38\n",
"Validating subject 39\n",
"Validating subject 40\n",
"Validating subject 41\n",
"Validating subject 42\n",
"Validating subject 43\n",
"Validating subject 44\n",
"Validating subject 45\n",
"Validating subject 46\n",
"Validating subject 47\n",
"Validating subject 48\n",
"Validating subject 49\n",
"Validating subject 50\n"
]
}
],
"source": [
"#generate impersonal models for watch gyro \n",
"(watch_gyro_tree_impersonal_model, \n",
" watch_gyro_forest_impersonal_model, \n",
" watch_gyro_kn_impersonal_model, \n",
" watch_gyro_impersonal_X_tst, \n",
" watch_gyro_impersonal_y_tst) = impersonal_model(watch_gyro_features, watch_gyro_class_label, watch_gyro_subject)\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"#calculate scores for impersonal model\n",
"phone_accel_score_impersonal = calculate_score(phone_accel_tree_impersonal_model, \n",
" phone_accel_forest_impersonal_model, \n",
" phone_accel_kn_impersonal_model, \n",
" phone_accel_impersonal_X_tst, \n",
" phone_accel_impersonal_y_tst)\n",
"\n",
"\n",
"phone_gyro_score_impersonal = calculate_score(phone_gyro_tree_impersonal_model, \n",
" phone_gyro_forest_impersonal_model, \n",
" phone_gyro_kn_impersonal_model, \n",
" phone_gyro_impersonal_X_tst, \n",
" phone_gyro_impersonal_y_tst)\n",
"\n",
"watch_accel_score_impersonal = calculate_score(watch_accel_tree_impersonal_model, \n",
" watch_accel_forest_impersonal_model, \n",
" watch_accel_kn_impersonal_model, \n",
" watch_accel_impersonal_X_tst, \n",
" watch_accel_impersonal_y_tst)\n",
" \n",
"watch_gyro_score_impersonal = calculate_score(watch_gyro_tree_impersonal_model, \n",
" watch_gyro_forest_impersonal_model, \n",
" watch_gyro_kn_impersonal_model, \n",
" watch_gyro_impersonal_X_tst, \n",
" watch_gyro_impersonal_y_tst) "
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_accuracy</th>\n",
" <th>forest_accuracy</th>\n",
" <th>kn_accuracy</th>\n",
" <th>tree_recall</th>\n",
" <th>forest_recall</th>\n",
" <th>kn_recall</th>\n",
" <th>tree_precision</th>\n",
" <th>forest_precision</th>\n",
" <th>kn_precision</th>\n",
" <th>tree_f1</th>\n",
" <th>foresh_ft</th>\n",
" <th>kn_f1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>89.7</td>\n",
" <td>98.4</td>\n",
" <td>98.4</td>\n",
" <td>89.7</td>\n",
" <td>98.4</td>\n",
" <td>98.4</td>\n",
" <td>89.4</td>\n",
" <td>95.1</td>\n",
" <td>94.1</td>\n",
" <td>88.3</td>\n",
" <td>96.2</td>\n",
" <td>95.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>87.2</td>\n",
" <td>98.0</td>\n",
" <td>95.4</td>\n",
" <td>83.8</td>\n",
" <td>94.1</td>\n",
" <td>91.7</td>\n",
" <td>82.2</td>\n",
" <td>95.7</td>\n",
" <td>93.1</td>\n",
" <td>82.0</td>\n",
" <td>94.6</td>\n",
" <td>91.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>80.8</td>\n",
" <td>86.5</td>\n",
" <td>90.0</td>\n",
" <td>79.2</td>\n",
" <td>84.8</td>\n",
" <td>88.2</td>\n",
" <td>74.1</td>\n",
" <td>87.3</td>\n",
" <td>83.8</td>\n",
" <td>74.5</td>\n",
" <td>85.3</td>\n",
" <td>85.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>60.5</td>\n",
" <td>74.5</td>\n",
" <td>66.1</td>\n",
" <td>60.5</td>\n",
" <td>74.5</td>\n",
" <td>66.1</td>\n",
" <td>60.1</td>\n",
" <td>76.2</td>\n",
" <td>59.1</td>\n",
" <td>57.9</td>\n",
" <td>73.1</td>\n",
" <td>59.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>72.3</td>\n",
" <td>86.0</td>\n",
" <td>73.0</td>\n",
" <td>72.3</td>\n",
" <td>86.0</td>\n",
" <td>73.0</td>\n",
" <td>73.2</td>\n",
" <td>86.8</td>\n",
" <td>68.6</td>\n",
" <td>69.5</td>\n",
" <td>84.7</td>\n",
" <td>68.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>64.5</td>\n",
" <td>78.8</td>\n",
" <td>63.8</td>\n",
" <td>62.0</td>\n",
" <td>75.7</td>\n",
" <td>61.3</td>\n",
" <td>70.3</td>\n",
" <td>87.0</td>\n",
" <td>65.0</td>\n",
" <td>63.4</td>\n",
" <td>78.5</td>\n",
" <td>60.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>71.5</td>\n",
" <td>84.5</td>\n",
" <td>81.6</td>\n",
" <td>71.5</td>\n",
" <td>84.5</td>\n",
" <td>81.6</td>\n",
" <td>66.0</td>\n",
" <td>82.3</td>\n",
" <td>74.8</td>\n",
" <td>66.7</td>\n",
" <td>81.6</td>\n",
" <td>75.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>55.9</td>\n",
" <td>77.5</td>\n",
" <td>65.5</td>\n",
" <td>55.9</td>\n",
" <td>77.5</td>\n",
" <td>65.5</td>\n",
" <td>55.3</td>\n",
" <td>74.3</td>\n",
" <td>55.1</td>\n",
" <td>53.4</td>\n",
" <td>72.5</td>\n",
" <td>56.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>56.0</td>\n",
" <td>73.3</td>\n",
" <td>53.9</td>\n",
" <td>54.9</td>\n",
" <td>71.9</td>\n",
" <td>52.8</td>\n",
" <td>51.9</td>\n",
" <td>69.4</td>\n",
" <td>46.1</td>\n",
" <td>50.3</td>\n",
" <td>68.7</td>\n",
" <td>47.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>64.2</td>\n",
" <td>72.6</td>\n",
" <td>49.9</td>\n",
" <td>62.9</td>\n",
" <td>71.2</td>\n",
" <td>48.9</td>\n",
" <td>59.8</td>\n",
" <td>78.2</td>\n",
" <td>53.5</td>\n",
" <td>57.6</td>\n",
" <td>71.8</td>\n",
" <td>49.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>57.4</td>\n",
" <td>68.1</td>\n",
" <td>54.0</td>\n",
" <td>57.4</td>\n",
" <td>68.1</td>\n",
" <td>54.0</td>\n",
" <td>48.3</td>\n",
" <td>61.4</td>\n",
" <td>50.4</td>\n",
" <td>50.3</td>\n",
" <td>62.7</td>\n",
" <td>49.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>54.7</td>\n",
" <td>67.8</td>\n",
" <td>47.2</td>\n",
" <td>54.7</td>\n",
" <td>67.8</td>\n",
" <td>47.2</td>\n",
" <td>59.0</td>\n",
" <td>69.9</td>\n",
" <td>54.4</td>\n",
" <td>53.1</td>\n",
" <td>67.0</td>\n",
" <td>48.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>70.3</td>\n",
" <td>88.6</td>\n",
" <td>86.0</td>\n",
" <td>70.3</td>\n",
" <td>88.6</td>\n",
" <td>86.0</td>\n",
" <td>79.4</td>\n",
" <td>85.6</td>\n",
" <td>82.3</td>\n",
" <td>71.2</td>\n",
" <td>85.1</td>\n",
" <td>81.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>79.2</td>\n",
" <td>82.5</td>\n",
" <td>72.3</td>\n",
" <td>77.7</td>\n",
" <td>80.9</td>\n",
" <td>70.9</td>\n",
" <td>72.7</td>\n",
" <td>78.2</td>\n",
" <td>75.5</td>\n",
" <td>73.1</td>\n",
" <td>78.3</td>\n",
" <td>71.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>73.6</td>\n",
" <td>75.6</td>\n",
" <td>73.4</td>\n",
" <td>73.6</td>\n",
" <td>75.6</td>\n",
" <td>73.4</td>\n",
" <td>72.3</td>\n",
" <td>76.2</td>\n",
" <td>69.1</td>\n",
" <td>71.5</td>\n",
" <td>74.4</td>\n",
" <td>69.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>62.7</td>\n",
" <td>79.3</td>\n",
" <td>58.5</td>\n",
" <td>62.7</td>\n",
" <td>79.3</td>\n",
" <td>58.5</td>\n",
" <td>74.8</td>\n",
" <td>88.7</td>\n",
" <td>68.3</td>\n",
" <td>65.8</td>\n",
" <td>81.5</td>\n",
" <td>60.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>76.6</td>\n",
" <td>87.8</td>\n",
" <td>74.0</td>\n",
" <td>76.6</td>\n",
" <td>87.8</td>\n",
" <td>74.0</td>\n",
" <td>78.7</td>\n",
" <td>89.4</td>\n",
" <td>78.1</td>\n",
" <td>75.5</td>\n",
" <td>86.9</td>\n",
" <td>73.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>77.3</td>\n",
" <td>95.6</td>\n",
" <td>89.3</td>\n",
" <td>77.3</td>\n",
" <td>95.6</td>\n",
" <td>89.3</td>\n",
" <td>80.7</td>\n",
" <td>88.1</td>\n",
" <td>84.0</td>\n",
" <td>76.6</td>\n",
" <td>91.0</td>\n",
" <td>84.9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_accuracy forest_accuracy kn_accuracy tree_recall forest_recall \\\n",
"0 89.7 98.4 98.4 89.7 98.4 \n",
"1 87.2 98.0 95.4 83.8 94.1 \n",
"2 80.8 86.5 90.0 79.2 84.8 \n",
"3 60.5 74.5 66.1 60.5 74.5 \n",
"4 72.3 86.0 73.0 72.3 86.0 \n",
"5 64.5 78.8 63.8 62.0 75.7 \n",
"6 71.5 84.5 81.6 71.5 84.5 \n",
"7 55.9 77.5 65.5 55.9 77.5 \n",
"8 56.0 73.3 53.9 54.9 71.9 \n",
"9 64.2 72.6 49.9 62.9 71.2 \n",
"10 57.4 68.1 54.0 57.4 68.1 \n",
"11 54.7 67.8 47.2 54.7 67.8 \n",
"12 70.3 88.6 86.0 70.3 88.6 \n",
"13 79.2 82.5 72.3 77.7 80.9 \n",
"14 73.6 75.6 73.4 73.6 75.6 \n",
"15 62.7 79.3 58.5 62.7 79.3 \n",
"16 76.6 87.8 74.0 76.6 87.8 \n",
"17 77.3 95.6 89.3 77.3 95.6 \n",
"\n",
" kn_recall tree_precision forest_precision kn_precision tree_f1 \\\n",
"0 98.4 89.4 95.1 94.1 88.3 \n",
"1 91.7 82.2 95.7 93.1 82.0 \n",
"2 88.2 74.1 87.3 83.8 74.5 \n",
"3 66.1 60.1 76.2 59.1 57.9 \n",
"4 73.0 73.2 86.8 68.6 69.5 \n",
"5 61.3 70.3 87.0 65.0 63.4 \n",
"6 81.6 66.0 82.3 74.8 66.7 \n",
"7 65.5 55.3 74.3 55.1 53.4 \n",
"8 52.8 51.9 69.4 46.1 50.3 \n",
"9 48.9 59.8 78.2 53.5 57.6 \n",
"10 54.0 48.3 61.4 50.4 50.3 \n",
"11 47.2 59.0 69.9 54.4 53.1 \n",
"12 86.0 79.4 85.6 82.3 71.2 \n",
"13 70.9 72.7 78.2 75.5 73.1 \n",
"14 73.4 72.3 76.2 69.1 71.5 \n",
"15 58.5 74.8 88.7 68.3 65.8 \n",
"16 74.0 78.7 89.4 78.1 75.5 \n",
"17 89.3 80.7 88.1 84.0 76.6 \n",
"\n",
" foresh_ft kn_f1 \n",
"0 96.2 95.6 \n",
"1 94.6 91.9 \n",
"2 85.3 85.0 \n",
"3 73.1 59.9 \n",
"4 84.7 68.0 \n",
"5 78.5 60.9 \n",
"6 81.6 75.7 \n",
"7 72.5 56.8 \n",
"8 68.7 47.0 \n",
"9 71.8 49.2 \n",
"10 62.7 49.5 \n",
"11 67.0 48.5 \n",
"12 85.1 81.2 \n",
"13 78.3 71.5 \n",
"14 74.4 69.7 \n",
"15 81.5 60.6 \n",
"16 86.9 73.7 \n",
"17 91.0 84.9 "
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(np.around(phone_accel_score_personal[0], 1), columns=cols)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_accuracy</th>\n",
" <th>forest_accuracy</th>\n",
" <th>kn_accuracy</th>\n",
" <th>tree_recall</th>\n",
" <th>forest_recall</th>\n",
" <th>kn_recall</th>\n",
" <th>tree_precision</th>\n",
" <th>forest_precision</th>\n",
" <th>kn_precision</th>\n",
" <th>tree_f1</th>\n",
" <th>foresh_ft</th>\n",
" <th>kn_f1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>87.3</td>\n",
" <td>95.1</td>\n",
" <td>95.4</td>\n",
" <td>87.3</td>\n",
" <td>95.1</td>\n",
" <td>95.4</td>\n",
" <td>89.4</td>\n",
" <td>98.0</td>\n",
" <td>90.4</td>\n",
" <td>86.7</td>\n",
" <td>95.7</td>\n",
" <td>91.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>85.0</td>\n",
" <td>97.3</td>\n",
" <td>94.2</td>\n",
" <td>81.7</td>\n",
" <td>93.5</td>\n",
" <td>90.5</td>\n",
" <td>78.6</td>\n",
" <td>89.2</td>\n",
" <td>88.9</td>\n",
" <td>78.8</td>\n",
" <td>90.6</td>\n",
" <td>89.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>69.0</td>\n",
" <td>77.0</td>\n",
" <td>84.0</td>\n",
" <td>67.6</td>\n",
" <td>75.5</td>\n",
" <td>82.4</td>\n",
" <td>58.0</td>\n",
" <td>70.8</td>\n",
" <td>68.6</td>\n",
" <td>59.5</td>\n",
" <td>70.4</td>\n",
" <td>71.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>45.1</td>\n",
" <td>43.6</td>\n",
" <td>31.4</td>\n",
" <td>45.1</td>\n",
" <td>43.6</td>\n",
" <td>31.4</td>\n",
" <td>41.7</td>\n",
" <td>43.8</td>\n",
" <td>27.8</td>\n",
" <td>41.3</td>\n",
" <td>42.0</td>\n",
" <td>27.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>51.6</td>\n",
" <td>52.0</td>\n",
" <td>47.4</td>\n",
" <td>51.6</td>\n",
" <td>52.0</td>\n",
" <td>47.4</td>\n",
" <td>40.7</td>\n",
" <td>43.8</td>\n",
" <td>29.1</td>\n",
" <td>42.7</td>\n",
" <td>44.0</td>\n",
" <td>32.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>56.0</td>\n",
" <td>61.9</td>\n",
" <td>53.6</td>\n",
" <td>53.8</td>\n",
" <td>59.5</td>\n",
" <td>51.5</td>\n",
" <td>56.0</td>\n",
" <td>59.6</td>\n",
" <td>43.5</td>\n",
" <td>51.8</td>\n",
" <td>57.3</td>\n",
" <td>44.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>45.1</td>\n",
" <td>52.0</td>\n",
" <td>38.9</td>\n",
" <td>45.1</td>\n",
" <td>52.0</td>\n",
" <td>38.9</td>\n",
" <td>39.2</td>\n",
" <td>46.1</td>\n",
" <td>29.9</td>\n",
" <td>39.9</td>\n",
" <td>46.4</td>\n",
" <td>31.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>31.5</td>\n",
" <td>39.9</td>\n",
" <td>36.3</td>\n",
" <td>31.5</td>\n",
" <td>39.9</td>\n",
" <td>36.3</td>\n",
" <td>34.3</td>\n",
" <td>44.0</td>\n",
" <td>35.9</td>\n",
" <td>31.1</td>\n",
" <td>39.7</td>\n",
" <td>33.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>36.0</td>\n",
" <td>33.0</td>\n",
" <td>32.7</td>\n",
" <td>35.3</td>\n",
" <td>32.4</td>\n",
" <td>32.0</td>\n",
" <td>31.3</td>\n",
" <td>25.0</td>\n",
" <td>30.0</td>\n",
" <td>30.9</td>\n",
" <td>27.0</td>\n",
" <td>27.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>26.3</td>\n",
" <td>36.3</td>\n",
" <td>32.3</td>\n",
" <td>25.8</td>\n",
" <td>35.6</td>\n",
" <td>31.7</td>\n",
" <td>24.0</td>\n",
" <td>38.8</td>\n",
" <td>32.8</td>\n",
" <td>23.6</td>\n",
" <td>35.4</td>\n",
" <td>30.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>37.3</td>\n",
" <td>46.1</td>\n",
" <td>23.5</td>\n",
" <td>37.3</td>\n",
" <td>46.1</td>\n",
" <td>23.5</td>\n",
" <td>30.1</td>\n",
" <td>36.6</td>\n",
" <td>20.1</td>\n",
" <td>31.0</td>\n",
" <td>37.9</td>\n",
" <td>20.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>24.5</td>\n",
" <td>38.5</td>\n",
" <td>21.5</td>\n",
" <td>24.0</td>\n",
" <td>37.7</td>\n",
" <td>21.1</td>\n",
" <td>26.3</td>\n",
" <td>39.7</td>\n",
" <td>19.5</td>\n",
" <td>23.3</td>\n",
" <td>36.2</td>\n",
" <td>19.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>67.3</td>\n",
" <td>84.3</td>\n",
" <td>75.5</td>\n",
" <td>67.3</td>\n",
" <td>84.3</td>\n",
" <td>75.5</td>\n",
" <td>71.6</td>\n",
" <td>81.6</td>\n",
" <td>75.3</td>\n",
" <td>66.6</td>\n",
" <td>80.8</td>\n",
" <td>72.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>66.0</td>\n",
" <td>75.7</td>\n",
" <td>71.0</td>\n",
" <td>64.7</td>\n",
" <td>74.2</td>\n",
" <td>69.6</td>\n",
" <td>62.9</td>\n",
" <td>75.8</td>\n",
" <td>66.3</td>\n",
" <td>62.8</td>\n",
" <td>73.5</td>\n",
" <td>65.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>58.8</td>\n",
" <td>78.8</td>\n",
" <td>61.1</td>\n",
" <td>58.8</td>\n",
" <td>78.8</td>\n",
" <td>61.1</td>\n",
" <td>53.8</td>\n",
" <td>75.9</td>\n",
" <td>58.3</td>\n",
" <td>53.8</td>\n",
" <td>75.8</td>\n",
" <td>57.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>34.8</td>\n",
" <td>46.8</td>\n",
" <td>43.5</td>\n",
" <td>34.2</td>\n",
" <td>45.9</td>\n",
" <td>42.6</td>\n",
" <td>38.4</td>\n",
" <td>52.3</td>\n",
" <td>45.5</td>\n",
" <td>34.7</td>\n",
" <td>46.5</td>\n",
" <td>41.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>61.4</td>\n",
" <td>65.0</td>\n",
" <td>50.0</td>\n",
" <td>61.4</td>\n",
" <td>65.0</td>\n",
" <td>50.0</td>\n",
" <td>64.9</td>\n",
" <td>77.1</td>\n",
" <td>59.3</td>\n",
" <td>60.5</td>\n",
" <td>68.7</td>\n",
" <td>52.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>76.5</td>\n",
" <td>88.2</td>\n",
" <td>78.4</td>\n",
" <td>76.5</td>\n",
" <td>88.2</td>\n",
" <td>78.4</td>\n",
" <td>73.7</td>\n",
" <td>78.6</td>\n",
" <td>73.3</td>\n",
" <td>72.3</td>\n",
" <td>80.9</td>\n",
" <td>72.7</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_accuracy forest_accuracy kn_accuracy tree_recall forest_recall \\\n",
"0 87.3 95.1 95.4 87.3 95.1 \n",
"1 85.0 97.3 94.2 81.7 93.5 \n",
"2 69.0 77.0 84.0 67.6 75.5 \n",
"3 45.1 43.6 31.4 45.1 43.6 \n",
"4 51.6 52.0 47.4 51.6 52.0 \n",
"5 56.0 61.9 53.6 53.8 59.5 \n",
"6 45.1 52.0 38.9 45.1 52.0 \n",
"7 31.5 39.9 36.3 31.5 39.9 \n",
"8 36.0 33.0 32.7 35.3 32.4 \n",
"9 26.3 36.3 32.3 25.8 35.6 \n",
"10 37.3 46.1 23.5 37.3 46.1 \n",
"11 24.5 38.5 21.5 24.0 37.7 \n",
"12 67.3 84.3 75.5 67.3 84.3 \n",
"13 66.0 75.7 71.0 64.7 74.2 \n",
"14 58.8 78.8 61.1 58.8 78.8 \n",
"15 34.8 46.8 43.5 34.2 45.9 \n",
"16 61.4 65.0 50.0 61.4 65.0 \n",
"17 76.5 88.2 78.4 76.5 88.2 \n",
"\n",
" kn_recall tree_precision forest_precision kn_precision tree_f1 \\\n",
"0 95.4 89.4 98.0 90.4 86.7 \n",
"1 90.5 78.6 89.2 88.9 78.8 \n",
"2 82.4 58.0 70.8 68.6 59.5 \n",
"3 31.4 41.7 43.8 27.8 41.3 \n",
"4 47.4 40.7 43.8 29.1 42.7 \n",
"5 51.5 56.0 59.6 43.5 51.8 \n",
"6 38.9 39.2 46.1 29.9 39.9 \n",
"7 36.3 34.3 44.0 35.9 31.1 \n",
"8 32.0 31.3 25.0 30.0 30.9 \n",
"9 31.7 24.0 38.8 32.8 23.6 \n",
"10 23.5 30.1 36.6 20.1 31.0 \n",
"11 21.1 26.3 39.7 19.5 23.3 \n",
"12 75.5 71.6 81.6 75.3 66.6 \n",
"13 69.6 62.9 75.8 66.3 62.8 \n",
"14 61.1 53.8 75.9 58.3 53.8 \n",
"15 42.6 38.4 52.3 45.5 34.7 \n",
"16 50.0 64.9 77.1 59.3 60.5 \n",
"17 78.4 73.7 78.6 73.3 72.3 \n",
"\n",
" foresh_ft kn_f1 \n",
"0 95.7 91.6 \n",
"1 90.6 89.2 \n",
"2 70.4 71.2 \n",
"3 42.0 27.5 \n",
"4 44.0 32.6 \n",
"5 57.3 44.9 \n",
"6 46.4 31.8 \n",
"7 39.7 33.4 \n",
"8 27.0 27.7 \n",
"9 35.4 30.9 \n",
"10 37.9 20.6 \n",
"11 36.2 19.2 \n",
"12 80.8 72.9 \n",
"13 73.5 65.9 \n",
"14 75.8 57.6 \n",
"15 46.5 41.5 \n",
"16 68.7 52.3 \n",
"17 80.9 72.7 "
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(np.around(phone_gyro_score_personal[0], 1), columns=cols)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_accuracy</th>\n",
" <th>forest_accuracy</th>\n",
" <th>kn_accuracy</th>\n",
" <th>tree_recall</th>\n",
" <th>forest_recall</th>\n",
" <th>kn_recall</th>\n",
" <th>tree_precision</th>\n",
" <th>forest_precision</th>\n",
" <th>kn_precision</th>\n",
" <th>tree_f1</th>\n",
" <th>foresh_ft</th>\n",
" <th>kn_f1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>89.2</td>\n",
" <td>93.1</td>\n",
" <td>93.1</td>\n",
" <td>89.2</td>\n",
" <td>93.1</td>\n",
" <td>93.1</td>\n",
" <td>83.3</td>\n",
" <td>88.2</td>\n",
" <td>86.4</td>\n",
" <td>84.8</td>\n",
" <td>89.0</td>\n",
" <td>87.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>83.0</td>\n",
" <td>96.0</td>\n",
" <td>95.0</td>\n",
" <td>81.4</td>\n",
" <td>94.1</td>\n",
" <td>93.1</td>\n",
" <td>82.4</td>\n",
" <td>93.1</td>\n",
" <td>94.1</td>\n",
" <td>81.7</td>\n",
" <td>93.5</td>\n",
" <td>93.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>78.7</td>\n",
" <td>87.7</td>\n",
" <td>85.0</td>\n",
" <td>77.1</td>\n",
" <td>85.9</td>\n",
" <td>83.3</td>\n",
" <td>81.4</td>\n",
" <td>89.7</td>\n",
" <td>87.3</td>\n",
" <td>75.9</td>\n",
" <td>86.2</td>\n",
" <td>83.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>59.8</td>\n",
" <td>68.4</td>\n",
" <td>69.0</td>\n",
" <td>59.8</td>\n",
" <td>68.4</td>\n",
" <td>69.0</td>\n",
" <td>63.0</td>\n",
" <td>79.4</td>\n",
" <td>73.7</td>\n",
" <td>58.8</td>\n",
" <td>70.7</td>\n",
" <td>67.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>63.7</td>\n",
" <td>75.0</td>\n",
" <td>68.8</td>\n",
" <td>63.7</td>\n",
" <td>75.0</td>\n",
" <td>68.8</td>\n",
" <td>66.6</td>\n",
" <td>79.3</td>\n",
" <td>73.9</td>\n",
" <td>62.0</td>\n",
" <td>74.3</td>\n",
" <td>69.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>75.8</td>\n",
" <td>83.8</td>\n",
" <td>83.8</td>\n",
" <td>74.3</td>\n",
" <td>82.2</td>\n",
" <td>82.2</td>\n",
" <td>83.1</td>\n",
" <td>92.1</td>\n",
" <td>87.1</td>\n",
" <td>75.9</td>\n",
" <td>85.3</td>\n",
" <td>82.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>81.9</td>\n",
" <td>96.6</td>\n",
" <td>90.7</td>\n",
" <td>81.9</td>\n",
" <td>96.6</td>\n",
" <td>90.7</td>\n",
" <td>78.8</td>\n",
" <td>94.8</td>\n",
" <td>92.0</td>\n",
" <td>78.4</td>\n",
" <td>93.9</td>\n",
" <td>90.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>71.5</td>\n",
" <td>82.5</td>\n",
" <td>85.4</td>\n",
" <td>71.5</td>\n",
" <td>82.5</td>\n",
" <td>85.4</td>\n",
" <td>64.9</td>\n",
" <td>80.7</td>\n",
" <td>72.4</td>\n",
" <td>65.0</td>\n",
" <td>78.9</td>\n",
" <td>76.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>70.9</td>\n",
" <td>83.3</td>\n",
" <td>78.4</td>\n",
" <td>70.9</td>\n",
" <td>83.3</td>\n",
" <td>78.4</td>\n",
" <td>47.4</td>\n",
" <td>59.8</td>\n",
" <td>52.6</td>\n",
" <td>52.9</td>\n",
" <td>65.8</td>\n",
" <td>60.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>59.2</td>\n",
" <td>78.8</td>\n",
" <td>76.8</td>\n",
" <td>58.0</td>\n",
" <td>77.3</td>\n",
" <td>75.3</td>\n",
" <td>62.3</td>\n",
" <td>83.7</td>\n",
" <td>78.9</td>\n",
" <td>57.4</td>\n",
" <td>77.9</td>\n",
" <td>74.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>57.8</td>\n",
" <td>72.7</td>\n",
" <td>67.0</td>\n",
" <td>57.8</td>\n",
" <td>72.7</td>\n",
" <td>67.0</td>\n",
" <td>57.7</td>\n",
" <td>67.5</td>\n",
" <td>63.1</td>\n",
" <td>54.8</td>\n",
" <td>67.9</td>\n",
" <td>62.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>35.2</td>\n",
" <td>55.7</td>\n",
" <td>47.6</td>\n",
" <td>34.5</td>\n",
" <td>54.6</td>\n",
" <td>46.7</td>\n",
" <td>38.5</td>\n",
" <td>70.3</td>\n",
" <td>64.1</td>\n",
" <td>34.5</td>\n",
" <td>59.0</td>\n",
" <td>51.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>71.6</td>\n",
" <td>77.3</td>\n",
" <td>78.6</td>\n",
" <td>71.6</td>\n",
" <td>77.3</td>\n",
" <td>78.6</td>\n",
" <td>79.1</td>\n",
" <td>86.3</td>\n",
" <td>87.5</td>\n",
" <td>72.2</td>\n",
" <td>78.7</td>\n",
" <td>80.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>78.2</td>\n",
" <td>94.8</td>\n",
" <td>90.0</td>\n",
" <td>76.7</td>\n",
" <td>92.9</td>\n",
" <td>88.2</td>\n",
" <td>84.0</td>\n",
" <td>94.8</td>\n",
" <td>87.7</td>\n",
" <td>77.2</td>\n",
" <td>92.5</td>\n",
" <td>86.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>91.5</td>\n",
" <td>94.4</td>\n",
" <td>90.5</td>\n",
" <td>91.5</td>\n",
" <td>94.4</td>\n",
" <td>90.5</td>\n",
" <td>83.9</td>\n",
" <td>94.4</td>\n",
" <td>91.9</td>\n",
" <td>86.2</td>\n",
" <td>93.9</td>\n",
" <td>90.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>81.9</td>\n",
" <td>93.7</td>\n",
" <td>85.3</td>\n",
" <td>81.9</td>\n",
" <td>93.7</td>\n",
" <td>85.3</td>\n",
" <td>77.3</td>\n",
" <td>87.0</td>\n",
" <td>86.9</td>\n",
" <td>78.3</td>\n",
" <td>89.4</td>\n",
" <td>84.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>91.5</td>\n",
" <td>99.6</td>\n",
" <td>97.3</td>\n",
" <td>91.5</td>\n",
" <td>99.6</td>\n",
" <td>97.3</td>\n",
" <td>88.7</td>\n",
" <td>98.2</td>\n",
" <td>97.3</td>\n",
" <td>89.2</td>\n",
" <td>98.8</td>\n",
" <td>97.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>82.1</td>\n",
" <td>98.4</td>\n",
" <td>96.5</td>\n",
" <td>82.1</td>\n",
" <td>98.4</td>\n",
" <td>96.5</td>\n",
" <td>82.4</td>\n",
" <td>93.4</td>\n",
" <td>91.7</td>\n",
" <td>79.6</td>\n",
" <td>95.2</td>\n",
" <td>93.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_accuracy forest_accuracy kn_accuracy tree_recall forest_recall \\\n",
"0 89.2 93.1 93.1 89.2 93.1 \n",
"1 83.0 96.0 95.0 81.4 94.1 \n",
"2 78.7 87.7 85.0 77.1 85.9 \n",
"3 59.8 68.4 69.0 59.8 68.4 \n",
"4 63.7 75.0 68.8 63.7 75.0 \n",
"5 75.8 83.8 83.8 74.3 82.2 \n",
"6 81.9 96.6 90.7 81.9 96.6 \n",
"7 71.5 82.5 85.4 71.5 82.5 \n",
"8 70.9 83.3 78.4 70.9 83.3 \n",
"9 59.2 78.8 76.8 58.0 77.3 \n",
"10 57.8 72.7 67.0 57.8 72.7 \n",
"11 35.2 55.7 47.6 34.5 54.6 \n",
"12 71.6 77.3 78.6 71.6 77.3 \n",
"13 78.2 94.8 90.0 76.7 92.9 \n",
"14 91.5 94.4 90.5 91.5 94.4 \n",
"15 81.9 93.7 85.3 81.9 93.7 \n",
"16 91.5 99.6 97.3 91.5 99.6 \n",
"17 82.1 98.4 96.5 82.1 98.4 \n",
"\n",
" kn_recall tree_precision forest_precision kn_precision tree_f1 \\\n",
"0 93.1 83.3 88.2 86.4 84.8 \n",
"1 93.1 82.4 93.1 94.1 81.7 \n",
"2 83.3 81.4 89.7 87.3 75.9 \n",
"3 69.0 63.0 79.4 73.7 58.8 \n",
"4 68.8 66.6 79.3 73.9 62.0 \n",
"5 82.2 83.1 92.1 87.1 75.9 \n",
"6 90.7 78.8 94.8 92.0 78.4 \n",
"7 85.4 64.9 80.7 72.4 65.0 \n",
"8 78.4 47.4 59.8 52.6 52.9 \n",
"9 75.3 62.3 83.7 78.9 57.4 \n",
"10 67.0 57.7 67.5 63.1 54.8 \n",
"11 46.7 38.5 70.3 64.1 34.5 \n",
"12 78.6 79.1 86.3 87.5 72.2 \n",
"13 88.2 84.0 94.8 87.7 77.2 \n",
"14 90.5 83.9 94.4 91.9 86.2 \n",
"15 85.3 77.3 87.0 86.9 78.3 \n",
"16 97.3 88.7 98.2 97.3 89.2 \n",
"17 96.5 82.4 93.4 91.7 79.6 \n",
"\n",
" foresh_ft kn_f1 \n",
"0 89.0 87.1 \n",
"1 93.5 93.5 \n",
"2 86.2 83.2 \n",
"3 70.7 67.4 \n",
"4 74.3 69.2 \n",
"5 85.3 82.5 \n",
"6 93.9 90.8 \n",
"7 78.9 76.1 \n",
"8 65.8 60.2 \n",
"9 77.9 74.3 \n",
"10 67.9 62.9 \n",
"11 59.0 51.4 \n",
"12 78.7 80.4 \n",
"13 92.5 86.6 \n",
"14 93.9 90.0 \n",
"15 89.4 84.0 \n",
"16 98.8 97.2 \n",
"17 95.2 93.2 "
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(np.around(watch_accel_score_personal[0], 1), columns=cols)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_accuracy</th>\n",
" <th>forest_accuracy</th>\n",
" <th>kn_accuracy</th>\n",
" <th>tree_recall</th>\n",
" <th>forest_recall</th>\n",
" <th>kn_recall</th>\n",
" <th>tree_precision</th>\n",
" <th>forest_precision</th>\n",
" <th>kn_precision</th>\n",
" <th>tree_f1</th>\n",
" <th>foresh_ft</th>\n",
" <th>kn_f1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>67.0</td>\n",
" <td>78.8</td>\n",
" <td>79.7</td>\n",
" <td>67.0</td>\n",
" <td>78.8</td>\n",
" <td>79.7</td>\n",
" <td>61.3</td>\n",
" <td>79.7</td>\n",
" <td>71.4</td>\n",
" <td>62.3</td>\n",
" <td>76.9</td>\n",
" <td>73.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>82.0</td>\n",
" <td>90.0</td>\n",
" <td>93.0</td>\n",
" <td>80.4</td>\n",
" <td>88.2</td>\n",
" <td>91.2</td>\n",
" <td>75.5</td>\n",
" <td>84.3</td>\n",
" <td>90.2</td>\n",
" <td>76.4</td>\n",
" <td>85.6</td>\n",
" <td>90.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>53.8</td>\n",
" <td>73.6</td>\n",
" <td>57.3</td>\n",
" <td>50.7</td>\n",
" <td>69.3</td>\n",
" <td>53.9</td>\n",
" <td>52.9</td>\n",
" <td>64.9</td>\n",
" <td>51.1</td>\n",
" <td>49.0</td>\n",
" <td>64.7</td>\n",
" <td>50.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>58.5</td>\n",
" <td>67.3</td>\n",
" <td>60.9</td>\n",
" <td>58.5</td>\n",
" <td>67.3</td>\n",
" <td>60.9</td>\n",
" <td>54.2</td>\n",
" <td>74.5</td>\n",
" <td>62.9</td>\n",
" <td>54.7</td>\n",
" <td>68.8</td>\n",
" <td>59.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>56.2</td>\n",
" <td>64.2</td>\n",
" <td>57.2</td>\n",
" <td>55.1</td>\n",
" <td>62.9</td>\n",
" <td>56.0</td>\n",
" <td>54.1</td>\n",
" <td>72.2</td>\n",
" <td>61.9</td>\n",
" <td>51.2</td>\n",
" <td>64.4</td>\n",
" <td>55.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>63.7</td>\n",
" <td>75.0</td>\n",
" <td>82.8</td>\n",
" <td>62.4</td>\n",
" <td>73.5</td>\n",
" <td>81.2</td>\n",
" <td>69.4</td>\n",
" <td>83.0</td>\n",
" <td>80.4</td>\n",
" <td>63.3</td>\n",
" <td>75.2</td>\n",
" <td>78.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>67.3</td>\n",
" <td>81.4</td>\n",
" <td>72.5</td>\n",
" <td>67.3</td>\n",
" <td>81.4</td>\n",
" <td>72.5</td>\n",
" <td>66.3</td>\n",
" <td>79.1</td>\n",
" <td>72.9</td>\n",
" <td>65.0</td>\n",
" <td>79.3</td>\n",
" <td>71.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>57.3</td>\n",
" <td>78.0</td>\n",
" <td>74.2</td>\n",
" <td>56.2</td>\n",
" <td>76.5</td>\n",
" <td>72.7</td>\n",
" <td>59.7</td>\n",
" <td>66.8</td>\n",
" <td>58.1</td>\n",
" <td>55.7</td>\n",
" <td>68.8</td>\n",
" <td>61.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>52.9</td>\n",
" <td>67.6</td>\n",
" <td>52.9</td>\n",
" <td>52.9</td>\n",
" <td>67.6</td>\n",
" <td>52.9</td>\n",
" <td>33.5</td>\n",
" <td>46.6</td>\n",
" <td>39.1</td>\n",
" <td>39.1</td>\n",
" <td>52.0</td>\n",
" <td>42.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>47.0</td>\n",
" <td>69.2</td>\n",
" <td>60.8</td>\n",
" <td>46.1</td>\n",
" <td>67.8</td>\n",
" <td>59.6</td>\n",
" <td>45.1</td>\n",
" <td>66.2</td>\n",
" <td>59.4</td>\n",
" <td>43.3</td>\n",
" <td>63.1</td>\n",
" <td>55.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>64.1</td>\n",
" <td>75.5</td>\n",
" <td>63.1</td>\n",
" <td>64.1</td>\n",
" <td>75.5</td>\n",
" <td>63.1</td>\n",
" <td>53.0</td>\n",
" <td>62.5</td>\n",
" <td>54.7</td>\n",
" <td>55.1</td>\n",
" <td>66.0</td>\n",
" <td>56.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>32.3</td>\n",
" <td>40.3</td>\n",
" <td>27.5</td>\n",
" <td>31.7</td>\n",
" <td>39.5</td>\n",
" <td>27.0</td>\n",
" <td>42.6</td>\n",
" <td>54.9</td>\n",
" <td>38.8</td>\n",
" <td>34.6</td>\n",
" <td>44.2</td>\n",
" <td>30.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>51.0</td>\n",
" <td>62.7</td>\n",
" <td>59.8</td>\n",
" <td>51.0</td>\n",
" <td>62.7</td>\n",
" <td>59.8</td>\n",
" <td>53.0</td>\n",
" <td>64.4</td>\n",
" <td>62.6</td>\n",
" <td>50.0</td>\n",
" <td>60.9</td>\n",
" <td>58.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>90.1</td>\n",
" <td>95.9</td>\n",
" <td>89.1</td>\n",
" <td>86.6</td>\n",
" <td>92.2</td>\n",
" <td>85.6</td>\n",
" <td>84.4</td>\n",
" <td>88.6</td>\n",
" <td>83.5</td>\n",
" <td>83.4</td>\n",
" <td>89.1</td>\n",
" <td>83.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>84.3</td>\n",
" <td>92.8</td>\n",
" <td>88.9</td>\n",
" <td>84.3</td>\n",
" <td>92.8</td>\n",
" <td>88.9</td>\n",
" <td>88.2</td>\n",
" <td>89.7</td>\n",
" <td>91.5</td>\n",
" <td>84.2</td>\n",
" <td>90.4</td>\n",
" <td>88.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>81.2</td>\n",
" <td>92.0</td>\n",
" <td>86.8</td>\n",
" <td>81.2</td>\n",
" <td>92.0</td>\n",
" <td>86.8</td>\n",
" <td>83.5</td>\n",
" <td>89.2</td>\n",
" <td>87.5</td>\n",
" <td>80.0</td>\n",
" <td>88.9</td>\n",
" <td>85.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>83.7</td>\n",
" <td>93.5</td>\n",
" <td>89.9</td>\n",
" <td>83.7</td>\n",
" <td>93.5</td>\n",
" <td>89.9</td>\n",
" <td>85.6</td>\n",
" <td>96.7</td>\n",
" <td>97.1</td>\n",
" <td>82.7</td>\n",
" <td>93.7</td>\n",
" <td>91.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>73.2</td>\n",
" <td>80.4</td>\n",
" <td>84.0</td>\n",
" <td>73.2</td>\n",
" <td>80.4</td>\n",
" <td>84.0</td>\n",
" <td>67.4</td>\n",
" <td>80.4</td>\n",
" <td>74.9</td>\n",
" <td>66.9</td>\n",
" <td>77.6</td>\n",
" <td>76.7</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_accuracy forest_accuracy kn_accuracy tree_recall forest_recall \\\n",
"0 67.0 78.8 79.7 67.0 78.8 \n",
"1 82.0 90.0 93.0 80.4 88.2 \n",
"2 53.8 73.6 57.3 50.7 69.3 \n",
"3 58.5 67.3 60.9 58.5 67.3 \n",
"4 56.2 64.2 57.2 55.1 62.9 \n",
"5 63.7 75.0 82.8 62.4 73.5 \n",
"6 67.3 81.4 72.5 67.3 81.4 \n",
"7 57.3 78.0 74.2 56.2 76.5 \n",
"8 52.9 67.6 52.9 52.9 67.6 \n",
"9 47.0 69.2 60.8 46.1 67.8 \n",
"10 64.1 75.5 63.1 64.1 75.5 \n",
"11 32.3 40.3 27.5 31.7 39.5 \n",
"12 51.0 62.7 59.8 51.0 62.7 \n",
"13 90.1 95.9 89.1 86.6 92.2 \n",
"14 84.3 92.8 88.9 84.3 92.8 \n",
"15 81.2 92.0 86.8 81.2 92.0 \n",
"16 83.7 93.5 89.9 83.7 93.5 \n",
"17 73.2 80.4 84.0 73.2 80.4 \n",
"\n",
" kn_recall tree_precision forest_precision kn_precision tree_f1 \\\n",
"0 79.7 61.3 79.7 71.4 62.3 \n",
"1 91.2 75.5 84.3 90.2 76.4 \n",
"2 53.9 52.9 64.9 51.1 49.0 \n",
"3 60.9 54.2 74.5 62.9 54.7 \n",
"4 56.0 54.1 72.2 61.9 51.2 \n",
"5 81.2 69.4 83.0 80.4 63.3 \n",
"6 72.5 66.3 79.1 72.9 65.0 \n",
"7 72.7 59.7 66.8 58.1 55.7 \n",
"8 52.9 33.5 46.6 39.1 39.1 \n",
"9 59.6 45.1 66.2 59.4 43.3 \n",
"10 63.1 53.0 62.5 54.7 55.1 \n",
"11 27.0 42.6 54.9 38.8 34.6 \n",
"12 59.8 53.0 64.4 62.6 50.0 \n",
"13 85.6 84.4 88.6 83.5 83.4 \n",
"14 88.9 88.2 89.7 91.5 84.2 \n",
"15 86.8 83.5 89.2 87.5 80.0 \n",
"16 89.9 85.6 96.7 97.1 82.7 \n",
"17 84.0 67.4 80.4 74.9 66.9 \n",
"\n",
" foresh_ft kn_f1 \n",
"0 76.9 73.5 \n",
"1 85.6 90.2 \n",
"2 64.7 50.2 \n",
"3 68.8 59.5 \n",
"4 64.4 55.5 \n",
"5 75.2 78.6 \n",
"6 79.3 71.8 \n",
"7 68.8 61.8 \n",
"8 52.0 42.5 \n",
"9 63.1 55.8 \n",
"10 66.0 56.6 \n",
"11 44.2 30.3 \n",
"12 60.9 58.4 \n",
"13 89.1 83.0 \n",
"14 90.4 88.6 \n",
"15 88.9 85.5 \n",
"16 93.7 91.6 \n",
"17 77.6 76.7 "
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(np.around(watch_gyro_score_personal[0], 1), columns=cols)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_accuracy</th>\n",
" <th>forest_accuracy</th>\n",
" <th>kn_accuracy</th>\n",
" <th>tree_recall</th>\n",
" <th>forest_recall</th>\n",
" <th>kn_recall</th>\n",
" <th>tree_precision</th>\n",
" <th>forest_precision</th>\n",
" <th>kn_precision</th>\n",
" <th>tree_f1</th>\n",
" <th>foresh_ft</th>\n",
" <th>kn_f1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>31.2</td>\n",
" <td>55.2</td>\n",
" <td>50.0</td>\n",
" <td>31.2</td>\n",
" <td>55.2</td>\n",
" <td>50.0</td>\n",
" <td>36.2</td>\n",
" <td>60.1</td>\n",
" <td>50.4</td>\n",
" <td>31.3</td>\n",
" <td>53.0</td>\n",
" <td>47.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>67.2</td>\n",
" <td>80.8</td>\n",
" <td>75.4</td>\n",
" <td>64.6</td>\n",
" <td>77.7</td>\n",
" <td>72.4</td>\n",
" <td>69.9</td>\n",
" <td>76.6</td>\n",
" <td>78.8</td>\n",
" <td>63.3</td>\n",
" <td>74.1</td>\n",
" <td>72.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>35.5</td>\n",
" <td>52.2</td>\n",
" <td>52.6</td>\n",
" <td>34.8</td>\n",
" <td>51.2</td>\n",
" <td>51.5</td>\n",
" <td>35.7</td>\n",
" <td>50.6</td>\n",
" <td>46.3</td>\n",
" <td>32.6</td>\n",
" <td>47.1</td>\n",
" <td>44.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>11.5</td>\n",
" <td>15.3</td>\n",
" <td>17.2</td>\n",
" <td>11.5</td>\n",
" <td>15.3</td>\n",
" <td>17.2</td>\n",
" <td>11.4</td>\n",
" <td>10.5</td>\n",
" <td>12.8</td>\n",
" <td>9.9</td>\n",
" <td>11.2</td>\n",
" <td>13.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>17.2</td>\n",
" <td>30.6</td>\n",
" <td>27.5</td>\n",
" <td>17.2</td>\n",
" <td>30.6</td>\n",
" <td>27.5</td>\n",
" <td>16.1</td>\n",
" <td>25.9</td>\n",
" <td>22.4</td>\n",
" <td>15.4</td>\n",
" <td>24.0</td>\n",
" <td>22.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>8.0</td>\n",
" <td>9.9</td>\n",
" <td>15.7</td>\n",
" <td>7.7</td>\n",
" <td>9.5</td>\n",
" <td>15.1</td>\n",
" <td>9.4</td>\n",
" <td>11.7</td>\n",
" <td>12.0</td>\n",
" <td>7.1</td>\n",
" <td>9.4</td>\n",
" <td>12.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>18.6</td>\n",
" <td>28.5</td>\n",
" <td>20.0</td>\n",
" <td>18.6</td>\n",
" <td>28.5</td>\n",
" <td>20.0</td>\n",
" <td>17.7</td>\n",
" <td>29.1</td>\n",
" <td>21.9</td>\n",
" <td>16.8</td>\n",
" <td>26.2</td>\n",
" <td>19.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>10.9</td>\n",
" <td>10.0</td>\n",
" <td>9.1</td>\n",
" <td>10.9</td>\n",
" <td>10.0</td>\n",
" <td>9.1</td>\n",
" <td>10.2</td>\n",
" <td>9.2</td>\n",
" <td>9.8</td>\n",
" <td>9.8</td>\n",
" <td>8.8</td>\n",
" <td>8.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>8.9</td>\n",
" <td>9.1</td>\n",
" <td>9.5</td>\n",
" <td>8.8</td>\n",
" <td>8.9</td>\n",
" <td>9.3</td>\n",
" <td>8.2</td>\n",
" <td>10.4</td>\n",
" <td>9.3</td>\n",
" <td>7.7</td>\n",
" <td>8.6</td>\n",
" <td>8.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>8.3</td>\n",
" <td>10.5</td>\n",
" <td>8.2</td>\n",
" <td>8.1</td>\n",
" <td>10.3</td>\n",
" <td>8.1</td>\n",
" <td>9.7</td>\n",
" <td>10.7</td>\n",
" <td>10.2</td>\n",
" <td>7.5</td>\n",
" <td>9.4</td>\n",
" <td>8.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>12.1</td>\n",
" <td>10.0</td>\n",
" <td>9.8</td>\n",
" <td>12.1</td>\n",
" <td>10.0</td>\n",
" <td>9.8</td>\n",
" <td>10.4</td>\n",
" <td>8.2</td>\n",
" <td>10.6</td>\n",
" <td>10.3</td>\n",
" <td>8.6</td>\n",
" <td>8.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>13.1</td>\n",
" <td>10.8</td>\n",
" <td>9.6</td>\n",
" <td>13.1</td>\n",
" <td>10.8</td>\n",
" <td>9.6</td>\n",
" <td>12.7</td>\n",
" <td>10.1</td>\n",
" <td>12.8</td>\n",
" <td>11.3</td>\n",
" <td>9.1</td>\n",
" <td>9.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>45.1</td>\n",
" <td>63.2</td>\n",
" <td>61.4</td>\n",
" <td>45.1</td>\n",
" <td>63.2</td>\n",
" <td>61.4</td>\n",
" <td>44.4</td>\n",
" <td>54.0</td>\n",
" <td>50.4</td>\n",
" <td>42.6</td>\n",
" <td>54.9</td>\n",
" <td>52.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>23.5</td>\n",
" <td>35.0</td>\n",
" <td>31.1</td>\n",
" <td>23.0</td>\n",
" <td>34.4</td>\n",
" <td>30.5</td>\n",
" <td>23.4</td>\n",
" <td>33.9</td>\n",
" <td>26.6</td>\n",
" <td>22.1</td>\n",
" <td>31.6</td>\n",
" <td>26.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>31.5</td>\n",
" <td>36.8</td>\n",
" <td>28.6</td>\n",
" <td>31.5</td>\n",
" <td>36.8</td>\n",
" <td>28.6</td>\n",
" <td>33.0</td>\n",
" <td>38.6</td>\n",
" <td>38.6</td>\n",
" <td>30.1</td>\n",
" <td>34.2</td>\n",
" <td>29.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>7.0</td>\n",
" <td>5.9</td>\n",
" <td>9.3</td>\n",
" <td>7.0</td>\n",
" <td>5.9</td>\n",
" <td>9.3</td>\n",
" <td>7.9</td>\n",
" <td>8.1</td>\n",
" <td>11.9</td>\n",
" <td>7.0</td>\n",
" <td>6.3</td>\n",
" <td>9.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>17.1</td>\n",
" <td>23.9</td>\n",
" <td>13.7</td>\n",
" <td>17.1</td>\n",
" <td>23.9</td>\n",
" <td>13.7</td>\n",
" <td>16.1</td>\n",
" <td>26.1</td>\n",
" <td>21.5</td>\n",
" <td>15.2</td>\n",
" <td>21.6</td>\n",
" <td>15.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>22.1</td>\n",
" <td>39.4</td>\n",
" <td>30.7</td>\n",
" <td>22.1</td>\n",
" <td>39.4</td>\n",
" <td>30.7</td>\n",
" <td>23.5</td>\n",
" <td>34.0</td>\n",
" <td>29.4</td>\n",
" <td>21.3</td>\n",
" <td>34.2</td>\n",
" <td>28.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_accuracy forest_accuracy kn_accuracy tree_recall forest_recall \\\n",
"0 31.2 55.2 50.0 31.2 55.2 \n",
"1 67.2 80.8 75.4 64.6 77.7 \n",
"2 35.5 52.2 52.6 34.8 51.2 \n",
"3 11.5 15.3 17.2 11.5 15.3 \n",
"4 17.2 30.6 27.5 17.2 30.6 \n",
"5 8.0 9.9 15.7 7.7 9.5 \n",
"6 18.6 28.5 20.0 18.6 28.5 \n",
"7 10.9 10.0 9.1 10.9 10.0 \n",
"8 8.9 9.1 9.5 8.8 8.9 \n",
"9 8.3 10.5 8.2 8.1 10.3 \n",
"10 12.1 10.0 9.8 12.1 10.0 \n",
"11 13.1 10.8 9.6 13.1 10.8 \n",
"12 45.1 63.2 61.4 45.1 63.2 \n",
"13 23.5 35.0 31.1 23.0 34.4 \n",
"14 31.5 36.8 28.6 31.5 36.8 \n",
"15 7.0 5.9 9.3 7.0 5.9 \n",
"16 17.1 23.9 13.7 17.1 23.9 \n",
"17 22.1 39.4 30.7 22.1 39.4 \n",
"\n",
" kn_recall tree_precision forest_precision kn_precision tree_f1 \\\n",
"0 50.0 36.2 60.1 50.4 31.3 \n",
"1 72.4 69.9 76.6 78.8 63.3 \n",
"2 51.5 35.7 50.6 46.3 32.6 \n",
"3 17.2 11.4 10.5 12.8 9.9 \n",
"4 27.5 16.1 25.9 22.4 15.4 \n",
"5 15.1 9.4 11.7 12.0 7.1 \n",
"6 20.0 17.7 29.1 21.9 16.8 \n",
"7 9.1 10.2 9.2 9.8 9.8 \n",
"8 9.3 8.2 10.4 9.3 7.7 \n",
"9 8.1 9.7 10.7 10.2 7.5 \n",
"10 9.8 10.4 8.2 10.6 10.3 \n",
"11 9.6 12.7 10.1 12.8 11.3 \n",
"12 61.4 44.4 54.0 50.4 42.6 \n",
"13 30.5 23.4 33.9 26.6 22.1 \n",
"14 28.6 33.0 38.6 38.6 30.1 \n",
"15 9.3 7.9 8.1 11.9 7.0 \n",
"16 13.7 16.1 26.1 21.5 15.2 \n",
"17 30.7 23.5 34.0 29.4 21.3 \n",
"\n",
" foresh_ft kn_f1 \n",
"0 53.0 47.5 \n",
"1 74.1 72.3 \n",
"2 47.1 44.8 \n",
"3 11.2 13.9 \n",
"4 24.0 22.9 \n",
"5 9.4 12.7 \n",
"6 26.2 19.2 \n",
"7 8.8 8.8 \n",
"8 8.6 8.9 \n",
"9 9.4 8.4 \n",
"10 8.6 8.9 \n",
"11 9.1 9.5 \n",
"12 54.9 52.4 \n",
"13 31.6 26.7 \n",
"14 34.2 29.1 \n",
"15 6.3 9.2 \n",
"16 21.6 15.3 \n",
"17 34.2 28.5 "
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(np.around(phone_accel_score_impersonal[0], 1), columns=cols)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_accuracy</th>\n",
" <th>forest_accuracy</th>\n",
" <th>kn_accuracy</th>\n",
" <th>tree_recall</th>\n",
" <th>forest_recall</th>\n",
" <th>kn_recall</th>\n",
" <th>tree_precision</th>\n",
" <th>forest_precision</th>\n",
" <th>kn_precision</th>\n",
" <th>tree_f1</th>\n",
" <th>foresh_ft</th>\n",
" <th>kn_f1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>30.0</td>\n",
" <td>45.5</td>\n",
" <td>40.6</td>\n",
" <td>30.0</td>\n",
" <td>45.5</td>\n",
" <td>40.6</td>\n",
" <td>36.5</td>\n",
" <td>49.0</td>\n",
" <td>40.6</td>\n",
" <td>30.7</td>\n",
" <td>43.6</td>\n",
" <td>38.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>64.4</td>\n",
" <td>73.7</td>\n",
" <td>59.4</td>\n",
" <td>61.9</td>\n",
" <td>70.8</td>\n",
" <td>57.1</td>\n",
" <td>62.4</td>\n",
" <td>74.4</td>\n",
" <td>63.4</td>\n",
" <td>57.4</td>\n",
" <td>66.7</td>\n",
" <td>55.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>26.7</td>\n",
" <td>38.7</td>\n",
" <td>33.3</td>\n",
" <td>26.2</td>\n",
" <td>37.9</td>\n",
" <td>32.6</td>\n",
" <td>29.5</td>\n",
" <td>33.9</td>\n",
" <td>30.3</td>\n",
" <td>26.0</td>\n",
" <td>32.9</td>\n",
" <td>28.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>12.2</td>\n",
" <td>15.6</td>\n",
" <td>18.6</td>\n",
" <td>12.2</td>\n",
" <td>15.6</td>\n",
" <td>18.6</td>\n",
" <td>11.3</td>\n",
" <td>14.4</td>\n",
" <td>10.8</td>\n",
" <td>10.7</td>\n",
" <td>13.8</td>\n",
" <td>13.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>13.4</td>\n",
" <td>18.5</td>\n",
" <td>22.3</td>\n",
" <td>13.4</td>\n",
" <td>18.5</td>\n",
" <td>22.3</td>\n",
" <td>12.8</td>\n",
" <td>17.1</td>\n",
" <td>13.3</td>\n",
" <td>12.4</td>\n",
" <td>15.7</td>\n",
" <td>16.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>11.5</td>\n",
" <td>12.1</td>\n",
" <td>9.2</td>\n",
" <td>11.0</td>\n",
" <td>11.6</td>\n",
" <td>8.8</td>\n",
" <td>11.1</td>\n",
" <td>11.1</td>\n",
" <td>6.7</td>\n",
" <td>10.7</td>\n",
" <td>10.3</td>\n",
" <td>7.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>13.8</td>\n",
" <td>16.0</td>\n",
" <td>13.6</td>\n",
" <td>13.8</td>\n",
" <td>16.0</td>\n",
" <td>13.6</td>\n",
" <td>14.8</td>\n",
" <td>24.2</td>\n",
" <td>16.1</td>\n",
" <td>13.5</td>\n",
" <td>17.5</td>\n",
" <td>13.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>7.9</td>\n",
" <td>8.9</td>\n",
" <td>11.9</td>\n",
" <td>7.9</td>\n",
" <td>8.9</td>\n",
" <td>11.9</td>\n",
" <td>8.4</td>\n",
" <td>11.5</td>\n",
" <td>12.5</td>\n",
" <td>7.7</td>\n",
" <td>8.9</td>\n",
" <td>11.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>9.6</td>\n",
" <td>8.1</td>\n",
" <td>6.8</td>\n",
" <td>9.4</td>\n",
" <td>7.9</td>\n",
" <td>6.7</td>\n",
" <td>10.2</td>\n",
" <td>11.8</td>\n",
" <td>7.8</td>\n",
" <td>9.6</td>\n",
" <td>8.5</td>\n",
" <td>6.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>11.9</td>\n",
" <td>16.2</td>\n",
" <td>9.2</td>\n",
" <td>11.7</td>\n",
" <td>15.9</td>\n",
" <td>9.0</td>\n",
" <td>10.7</td>\n",
" <td>14.2</td>\n",
" <td>11.7</td>\n",
" <td>10.9</td>\n",
" <td>14.1</td>\n",
" <td>9.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>12.5</td>\n",
" <td>13.0</td>\n",
" <td>8.3</td>\n",
" <td>12.5</td>\n",
" <td>13.0</td>\n",
" <td>8.3</td>\n",
" <td>12.6</td>\n",
" <td>13.4</td>\n",
" <td>11.7</td>\n",
" <td>11.8</td>\n",
" <td>11.4</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>7.7</td>\n",
" <td>5.7</td>\n",
" <td>3.2</td>\n",
" <td>7.6</td>\n",
" <td>5.6</td>\n",
" <td>3.1</td>\n",
" <td>7.7</td>\n",
" <td>6.7</td>\n",
" <td>5.0</td>\n",
" <td>7.3</td>\n",
" <td>5.8</td>\n",
" <td>3.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>37.5</td>\n",
" <td>50.4</td>\n",
" <td>54.1</td>\n",
" <td>37.5</td>\n",
" <td>50.4</td>\n",
" <td>54.1</td>\n",
" <td>38.2</td>\n",
" <td>44.9</td>\n",
" <td>40.5</td>\n",
" <td>35.9</td>\n",
" <td>43.2</td>\n",
" <td>43.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>26.3</td>\n",
" <td>31.7</td>\n",
" <td>27.6</td>\n",
" <td>25.8</td>\n",
" <td>31.1</td>\n",
" <td>27.0</td>\n",
" <td>27.4</td>\n",
" <td>34.6</td>\n",
" <td>32.2</td>\n",
" <td>24.9</td>\n",
" <td>28.5</td>\n",
" <td>26.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>24.8</td>\n",
" <td>27.2</td>\n",
" <td>18.5</td>\n",
" <td>24.8</td>\n",
" <td>27.2</td>\n",
" <td>18.5</td>\n",
" <td>26.8</td>\n",
" <td>33.3</td>\n",
" <td>26.1</td>\n",
" <td>23.9</td>\n",
" <td>27.4</td>\n",
" <td>19.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>12.4</td>\n",
" <td>20.3</td>\n",
" <td>10.4</td>\n",
" <td>12.2</td>\n",
" <td>19.9</td>\n",
" <td>10.2</td>\n",
" <td>14.7</td>\n",
" <td>18.1</td>\n",
" <td>13.1</td>\n",
" <td>12.4</td>\n",
" <td>17.8</td>\n",
" <td>10.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>18.1</td>\n",
" <td>23.9</td>\n",
" <td>10.7</td>\n",
" <td>18.1</td>\n",
" <td>23.9</td>\n",
" <td>10.7</td>\n",
" <td>21.2</td>\n",
" <td>26.6</td>\n",
" <td>20.7</td>\n",
" <td>17.8</td>\n",
" <td>22.5</td>\n",
" <td>12.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>26.7</td>\n",
" <td>45.0</td>\n",
" <td>35.5</td>\n",
" <td>26.7</td>\n",
" <td>45.0</td>\n",
" <td>35.5</td>\n",
" <td>30.2</td>\n",
" <td>40.5</td>\n",
" <td>38.5</td>\n",
" <td>26.2</td>\n",
" <td>39.9</td>\n",
" <td>33.4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_accuracy forest_accuracy kn_accuracy tree_recall forest_recall \\\n",
"0 30.0 45.5 40.6 30.0 45.5 \n",
"1 64.4 73.7 59.4 61.9 70.8 \n",
"2 26.7 38.7 33.3 26.2 37.9 \n",
"3 12.2 15.6 18.6 12.2 15.6 \n",
"4 13.4 18.5 22.3 13.4 18.5 \n",
"5 11.5 12.1 9.2 11.0 11.6 \n",
"6 13.8 16.0 13.6 13.8 16.0 \n",
"7 7.9 8.9 11.9 7.9 8.9 \n",
"8 9.6 8.1 6.8 9.4 7.9 \n",
"9 11.9 16.2 9.2 11.7 15.9 \n",
"10 12.5 13.0 8.3 12.5 13.0 \n",
"11 7.7 5.7 3.2 7.6 5.6 \n",
"12 37.5 50.4 54.1 37.5 50.4 \n",
"13 26.3 31.7 27.6 25.8 31.1 \n",
"14 24.8 27.2 18.5 24.8 27.2 \n",
"15 12.4 20.3 10.4 12.2 19.9 \n",
"16 18.1 23.9 10.7 18.1 23.9 \n",
"17 26.7 45.0 35.5 26.7 45.0 \n",
"\n",
" kn_recall tree_precision forest_precision kn_precision tree_f1 \\\n",
"0 40.6 36.5 49.0 40.6 30.7 \n",
"1 57.1 62.4 74.4 63.4 57.4 \n",
"2 32.6 29.5 33.9 30.3 26.0 \n",
"3 18.6 11.3 14.4 10.8 10.7 \n",
"4 22.3 12.8 17.1 13.3 12.4 \n",
"5 8.8 11.1 11.1 6.7 10.7 \n",
"6 13.6 14.8 24.2 16.1 13.5 \n",
"7 11.9 8.4 11.5 12.5 7.7 \n",
"8 6.7 10.2 11.8 7.8 9.6 \n",
"9 9.0 10.7 14.2 11.7 10.9 \n",
"10 8.3 12.6 13.4 11.7 11.8 \n",
"11 3.1 7.7 6.7 5.0 7.3 \n",
"12 54.1 38.2 44.9 40.5 35.9 \n",
"13 27.0 27.4 34.6 32.2 24.9 \n",
"14 18.5 26.8 33.3 26.1 23.9 \n",
"15 10.2 14.7 18.1 13.1 12.4 \n",
"16 10.7 21.2 26.6 20.7 17.8 \n",
"17 35.5 30.2 40.5 38.5 26.2 \n",
"\n",
" foresh_ft kn_f1 \n",
"0 43.6 38.1 \n",
"1 66.7 55.6 \n",
"2 32.9 28.3 \n",
"3 13.8 13.2 \n",
"4 15.7 16.1 \n",
"5 10.3 7.3 \n",
"6 17.5 13.8 \n",
"7 8.9 11.7 \n",
"8 8.5 6.9 \n",
"9 14.1 9.7 \n",
"10 11.4 9.0 \n",
"11 5.8 3.7 \n",
"12 43.2 43.7 \n",
"13 28.5 26.4 \n",
"14 27.4 19.6 \n",
"15 17.8 10.6 \n",
"16 22.5 12.2 \n",
"17 39.9 33.4 "
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(np.around(phone_gyro_score_impersonal[0], 1), columns=cols)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_accuracy</th>\n",
" <th>forest_accuracy</th>\n",
" <th>kn_accuracy</th>\n",
" <th>tree_recall</th>\n",
" <th>forest_recall</th>\n",
" <th>kn_recall</th>\n",
" <th>tree_precision</th>\n",
" <th>forest_precision</th>\n",
" <th>kn_precision</th>\n",
" <th>tree_f1</th>\n",
" <th>foresh_ft</th>\n",
" <th>kn_f1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>47.2</td>\n",
" <td>57.5</td>\n",
" <td>53.6</td>\n",
" <td>47.2</td>\n",
" <td>57.5</td>\n",
" <td>53.6</td>\n",
" <td>52.6</td>\n",
" <td>69.1</td>\n",
" <td>64.4</td>\n",
" <td>46.9</td>\n",
" <td>58.8</td>\n",
" <td>54.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>87.9</td>\n",
" <td>91.3</td>\n",
" <td>92.1</td>\n",
" <td>86.2</td>\n",
" <td>89.5</td>\n",
" <td>90.3</td>\n",
" <td>88.3</td>\n",
" <td>87.3</td>\n",
" <td>88.4</td>\n",
" <td>84.8</td>\n",
" <td>85.4</td>\n",
" <td>86.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>52.3</td>\n",
" <td>62.3</td>\n",
" <td>62.5</td>\n",
" <td>51.3</td>\n",
" <td>61.1</td>\n",
" <td>61.2</td>\n",
" <td>48.6</td>\n",
" <td>60.4</td>\n",
" <td>55.0</td>\n",
" <td>47.1</td>\n",
" <td>57.6</td>\n",
" <td>54.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>38.0</td>\n",
" <td>48.8</td>\n",
" <td>47.5</td>\n",
" <td>38.0</td>\n",
" <td>48.8</td>\n",
" <td>47.5</td>\n",
" <td>35.7</td>\n",
" <td>47.6</td>\n",
" <td>40.0</td>\n",
" <td>35.6</td>\n",
" <td>44.4</td>\n",
" <td>41.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>39.7</td>\n",
" <td>43.3</td>\n",
" <td>42.8</td>\n",
" <td>39.7</td>\n",
" <td>43.3</td>\n",
" <td>42.8</td>\n",
" <td>38.9</td>\n",
" <td>49.9</td>\n",
" <td>42.5</td>\n",
" <td>37.4</td>\n",
" <td>43.0</td>\n",
" <td>40.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>52.1</td>\n",
" <td>59.2</td>\n",
" <td>57.1</td>\n",
" <td>51.1</td>\n",
" <td>58.0</td>\n",
" <td>56.0</td>\n",
" <td>51.8</td>\n",
" <td>59.6</td>\n",
" <td>50.2</td>\n",
" <td>48.4</td>\n",
" <td>55.7</td>\n",
" <td>50.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>56.0</td>\n",
" <td>66.2</td>\n",
" <td>56.3</td>\n",
" <td>56.0</td>\n",
" <td>66.2</td>\n",
" <td>56.3</td>\n",
" <td>54.1</td>\n",
" <td>70.2</td>\n",
" <td>68.5</td>\n",
" <td>52.8</td>\n",
" <td>65.2</td>\n",
" <td>58.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>29.0</td>\n",
" <td>38.0</td>\n",
" <td>41.0</td>\n",
" <td>29.0</td>\n",
" <td>38.0</td>\n",
" <td>41.0</td>\n",
" <td>31.5</td>\n",
" <td>38.6</td>\n",
" <td>32.5</td>\n",
" <td>28.8</td>\n",
" <td>34.7</td>\n",
" <td>34.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>23.9</td>\n",
" <td>37.6</td>\n",
" <td>32.3</td>\n",
" <td>23.9</td>\n",
" <td>37.6</td>\n",
" <td>32.3</td>\n",
" <td>23.0</td>\n",
" <td>31.8</td>\n",
" <td>26.9</td>\n",
" <td>22.5</td>\n",
" <td>31.9</td>\n",
" <td>27.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>36.8</td>\n",
" <td>49.3</td>\n",
" <td>37.4</td>\n",
" <td>36.1</td>\n",
" <td>48.4</td>\n",
" <td>36.7</td>\n",
" <td>37.6</td>\n",
" <td>49.5</td>\n",
" <td>50.6</td>\n",
" <td>34.9</td>\n",
" <td>45.5</td>\n",
" <td>39.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>32.4</td>\n",
" <td>44.3</td>\n",
" <td>34.5</td>\n",
" <td>32.4</td>\n",
" <td>44.3</td>\n",
" <td>34.5</td>\n",
" <td>33.7</td>\n",
" <td>42.0</td>\n",
" <td>34.1</td>\n",
" <td>31.2</td>\n",
" <td>41.1</td>\n",
" <td>32.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>22.2</td>\n",
" <td>22.1</td>\n",
" <td>14.8</td>\n",
" <td>21.8</td>\n",
" <td>21.6</td>\n",
" <td>14.5</td>\n",
" <td>20.0</td>\n",
" <td>28.0</td>\n",
" <td>24.9</td>\n",
" <td>20.3</td>\n",
" <td>23.0</td>\n",
" <td>17.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>57.8</td>\n",
" <td>77.6</td>\n",
" <td>73.4</td>\n",
" <td>57.8</td>\n",
" <td>77.6</td>\n",
" <td>73.4</td>\n",
" <td>58.7</td>\n",
" <td>71.0</td>\n",
" <td>70.5</td>\n",
" <td>56.3</td>\n",
" <td>71.8</td>\n",
" <td>69.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>66.7</td>\n",
" <td>81.7</td>\n",
" <td>78.1</td>\n",
" <td>65.4</td>\n",
" <td>80.1</td>\n",
" <td>76.6</td>\n",
" <td>62.4</td>\n",
" <td>71.2</td>\n",
" <td>67.9</td>\n",
" <td>61.7</td>\n",
" <td>72.5</td>\n",
" <td>69.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>59.7</td>\n",
" <td>67.5</td>\n",
" <td>67.9</td>\n",
" <td>59.7</td>\n",
" <td>67.5</td>\n",
" <td>67.9</td>\n",
" <td>59.6</td>\n",
" <td>72.2</td>\n",
" <td>72.8</td>\n",
" <td>57.2</td>\n",
" <td>67.3</td>\n",
" <td>68.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>45.3</td>\n",
" <td>54.8</td>\n",
" <td>44.3</td>\n",
" <td>45.3</td>\n",
" <td>54.8</td>\n",
" <td>44.3</td>\n",
" <td>44.8</td>\n",
" <td>56.8</td>\n",
" <td>49.2</td>\n",
" <td>43.6</td>\n",
" <td>52.6</td>\n",
" <td>44.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>60.2</td>\n",
" <td>68.2</td>\n",
" <td>65.9</td>\n",
" <td>60.2</td>\n",
" <td>68.2</td>\n",
" <td>65.9</td>\n",
" <td>61.1</td>\n",
" <td>75.1</td>\n",
" <td>78.3</td>\n",
" <td>58.3</td>\n",
" <td>67.8</td>\n",
" <td>67.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>59.8</td>\n",
" <td>79.7</td>\n",
" <td>80.5</td>\n",
" <td>59.8</td>\n",
" <td>79.7</td>\n",
" <td>80.5</td>\n",
" <td>68.3</td>\n",
" <td>75.3</td>\n",
" <td>76.2</td>\n",
" <td>61.2</td>\n",
" <td>75.1</td>\n",
" <td>75.6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_accuracy forest_accuracy kn_accuracy tree_recall forest_recall \\\n",
"0 47.2 57.5 53.6 47.2 57.5 \n",
"1 87.9 91.3 92.1 86.2 89.5 \n",
"2 52.3 62.3 62.5 51.3 61.1 \n",
"3 38.0 48.8 47.5 38.0 48.8 \n",
"4 39.7 43.3 42.8 39.7 43.3 \n",
"5 52.1 59.2 57.1 51.1 58.0 \n",
"6 56.0 66.2 56.3 56.0 66.2 \n",
"7 29.0 38.0 41.0 29.0 38.0 \n",
"8 23.9 37.6 32.3 23.9 37.6 \n",
"9 36.8 49.3 37.4 36.1 48.4 \n",
"10 32.4 44.3 34.5 32.4 44.3 \n",
"11 22.2 22.1 14.8 21.8 21.6 \n",
"12 57.8 77.6 73.4 57.8 77.6 \n",
"13 66.7 81.7 78.1 65.4 80.1 \n",
"14 59.7 67.5 67.9 59.7 67.5 \n",
"15 45.3 54.8 44.3 45.3 54.8 \n",
"16 60.2 68.2 65.9 60.2 68.2 \n",
"17 59.8 79.7 80.5 59.8 79.7 \n",
"\n",
" kn_recall tree_precision forest_precision kn_precision tree_f1 \\\n",
"0 53.6 52.6 69.1 64.4 46.9 \n",
"1 90.3 88.3 87.3 88.4 84.8 \n",
"2 61.2 48.6 60.4 55.0 47.1 \n",
"3 47.5 35.7 47.6 40.0 35.6 \n",
"4 42.8 38.9 49.9 42.5 37.4 \n",
"5 56.0 51.8 59.6 50.2 48.4 \n",
"6 56.3 54.1 70.2 68.5 52.8 \n",
"7 41.0 31.5 38.6 32.5 28.8 \n",
"8 32.3 23.0 31.8 26.9 22.5 \n",
"9 36.7 37.6 49.5 50.6 34.9 \n",
"10 34.5 33.7 42.0 34.1 31.2 \n",
"11 14.5 20.0 28.0 24.9 20.3 \n",
"12 73.4 58.7 71.0 70.5 56.3 \n",
"13 76.6 62.4 71.2 67.9 61.7 \n",
"14 67.9 59.6 72.2 72.8 57.2 \n",
"15 44.3 44.8 56.8 49.2 43.6 \n",
"16 65.9 61.1 75.1 78.3 58.3 \n",
"17 80.5 68.3 75.3 76.2 61.2 \n",
"\n",
" foresh_ft kn_f1 \n",
"0 58.8 54.0 \n",
"1 85.4 86.8 \n",
"2 57.6 54.0 \n",
"3 44.4 41.9 \n",
"4 43.0 40.7 \n",
"5 55.7 50.9 \n",
"6 65.2 58.8 \n",
"7 34.7 34.6 \n",
"8 31.9 27.7 \n",
"9 45.5 39.4 \n",
"10 41.1 32.9 \n",
"11 23.0 17.3 \n",
"12 71.8 69.6 \n",
"13 72.5 69.2 \n",
"14 67.3 68.4 \n",
"15 52.6 44.0 \n",
"16 67.8 67.0 \n",
"17 75.1 75.6 "
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(np.around(watch_accel_score_impersonal[0], 1), columns=cols)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>tree_accuracy</th>\n",
" <th>forest_accuracy</th>\n",
" <th>kn_accuracy</th>\n",
" <th>tree_recall</th>\n",
" <th>forest_recall</th>\n",
" <th>kn_recall</th>\n",
" <th>tree_precision</th>\n",
" <th>forest_precision</th>\n",
" <th>kn_precision</th>\n",
" <th>tree_f1</th>\n",
" <th>foresh_ft</th>\n",
" <th>kn_f1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>25.8</td>\n",
" <td>36.7</td>\n",
" <td>30.9</td>\n",
" <td>25.8</td>\n",
" <td>36.7</td>\n",
" <td>30.9</td>\n",
" <td>26.2</td>\n",
" <td>39.4</td>\n",
" <td>32.1</td>\n",
" <td>24.5</td>\n",
" <td>35.1</td>\n",
" <td>28.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>65.6</td>\n",
" <td>85.3</td>\n",
" <td>73.3</td>\n",
" <td>64.3</td>\n",
" <td>83.6</td>\n",
" <td>71.9</td>\n",
" <td>72.3</td>\n",
" <td>78.8</td>\n",
" <td>76.2</td>\n",
" <td>64.9</td>\n",
" <td>77.1</td>\n",
" <td>70.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>22.3</td>\n",
" <td>27.2</td>\n",
" <td>27.8</td>\n",
" <td>21.0</td>\n",
" <td>25.6</td>\n",
" <td>26.2</td>\n",
" <td>20.9</td>\n",
" <td>33.5</td>\n",
" <td>24.2</td>\n",
" <td>20.0</td>\n",
" <td>26.7</td>\n",
" <td>23.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>38.6</td>\n",
" <td>45.9</td>\n",
" <td>47.0</td>\n",
" <td>38.6</td>\n",
" <td>45.9</td>\n",
" <td>47.0</td>\n",
" <td>38.1</td>\n",
" <td>50.2</td>\n",
" <td>40.2</td>\n",
" <td>36.9</td>\n",
" <td>44.3</td>\n",
" <td>40.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>25.7</td>\n",
" <td>39.2</td>\n",
" <td>35.3</td>\n",
" <td>25.2</td>\n",
" <td>38.5</td>\n",
" <td>34.6</td>\n",
" <td>25.9</td>\n",
" <td>43.5</td>\n",
" <td>30.8</td>\n",
" <td>24.6</td>\n",
" <td>37.2</td>\n",
" <td>31.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>46.6</td>\n",
" <td>57.1</td>\n",
" <td>54.9</td>\n",
" <td>45.7</td>\n",
" <td>56.0</td>\n",
" <td>53.9</td>\n",
" <td>46.4</td>\n",
" <td>55.8</td>\n",
" <td>47.4</td>\n",
" <td>44.3</td>\n",
" <td>52.7</td>\n",
" <td>47.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>47.9</td>\n",
" <td>66.3</td>\n",
" <td>58.5</td>\n",
" <td>47.9</td>\n",
" <td>66.3</td>\n",
" <td>58.5</td>\n",
" <td>48.9</td>\n",
" <td>64.9</td>\n",
" <td>59.9</td>\n",
" <td>46.2</td>\n",
" <td>62.5</td>\n",
" <td>56.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>24.6</td>\n",
" <td>35.6</td>\n",
" <td>28.9</td>\n",
" <td>24.1</td>\n",
" <td>34.9</td>\n",
" <td>28.3</td>\n",
" <td>23.7</td>\n",
" <td>34.1</td>\n",
" <td>28.2</td>\n",
" <td>23.1</td>\n",
" <td>32.6</td>\n",
" <td>25.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>24.5</td>\n",
" <td>36.0</td>\n",
" <td>30.0</td>\n",
" <td>24.5</td>\n",
" <td>36.0</td>\n",
" <td>30.0</td>\n",
" <td>25.2</td>\n",
" <td>30.9</td>\n",
" <td>32.1</td>\n",
" <td>23.8</td>\n",
" <td>31.4</td>\n",
" <td>28.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>26.7</td>\n",
" <td>38.6</td>\n",
" <td>32.2</td>\n",
" <td>26.2</td>\n",
" <td>37.8</td>\n",
" <td>31.6</td>\n",
" <td>25.8</td>\n",
" <td>41.9</td>\n",
" <td>32.4</td>\n",
" <td>24.7</td>\n",
" <td>35.7</td>\n",
" <td>30.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>28.0</td>\n",
" <td>44.2</td>\n",
" <td>31.8</td>\n",
" <td>28.0</td>\n",
" <td>44.2</td>\n",
" <td>31.8</td>\n",
" <td>31.4</td>\n",
" <td>43.7</td>\n",
" <td>34.5</td>\n",
" <td>27.9</td>\n",
" <td>40.2</td>\n",
" <td>31.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>15.2</td>\n",
" <td>18.8</td>\n",
" <td>11.7</td>\n",
" <td>14.9</td>\n",
" <td>18.5</td>\n",
" <td>11.5</td>\n",
" <td>15.9</td>\n",
" <td>22.1</td>\n",
" <td>20.5</td>\n",
" <td>14.5</td>\n",
" <td>18.5</td>\n",
" <td>14.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>28.0</td>\n",
" <td>37.5</td>\n",
" <td>29.7</td>\n",
" <td>28.0</td>\n",
" <td>37.5</td>\n",
" <td>29.7</td>\n",
" <td>27.7</td>\n",
" <td>33.5</td>\n",
" <td>25.9</td>\n",
" <td>26.3</td>\n",
" <td>32.9</td>\n",
" <td>26.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>56.9</td>\n",
" <td>69.9</td>\n",
" <td>66.5</td>\n",
" <td>54.6</td>\n",
" <td>67.2</td>\n",
" <td>63.9</td>\n",
" <td>54.1</td>\n",
" <td>63.7</td>\n",
" <td>59.4</td>\n",
" <td>52.4</td>\n",
" <td>63.9</td>\n",
" <td>59.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>57.0</td>\n",
" <td>62.7</td>\n",
" <td>55.1</td>\n",
" <td>57.0</td>\n",
" <td>62.7</td>\n",
" <td>55.1</td>\n",
" <td>50.3</td>\n",
" <td>65.7</td>\n",
" <td>66.4</td>\n",
" <td>52.1</td>\n",
" <td>62.5</td>\n",
" <td>56.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>46.9</td>\n",
" <td>57.0</td>\n",
" <td>46.3</td>\n",
" <td>46.9</td>\n",
" <td>57.0</td>\n",
" <td>46.3</td>\n",
" <td>48.0</td>\n",
" <td>60.6</td>\n",
" <td>55.0</td>\n",
" <td>44.2</td>\n",
" <td>54.4</td>\n",
" <td>46.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>50.7</td>\n",
" <td>59.4</td>\n",
" <td>47.6</td>\n",
" <td>50.7</td>\n",
" <td>59.4</td>\n",
" <td>47.6</td>\n",
" <td>50.6</td>\n",
" <td>68.3</td>\n",
" <td>60.4</td>\n",
" <td>48.3</td>\n",
" <td>60.1</td>\n",
" <td>50.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>39.4</td>\n",
" <td>55.0</td>\n",
" <td>44.2</td>\n",
" <td>39.4</td>\n",
" <td>55.0</td>\n",
" <td>44.2</td>\n",
" <td>41.0</td>\n",
" <td>50.4</td>\n",
" <td>42.3</td>\n",
" <td>38.7</td>\n",
" <td>48.7</td>\n",
" <td>40.8</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" tree_accuracy forest_accuracy kn_accuracy tree_recall forest_recall \\\n",
"0 25.8 36.7 30.9 25.8 36.7 \n",
"1 65.6 85.3 73.3 64.3 83.6 \n",
"2 22.3 27.2 27.8 21.0 25.6 \n",
"3 38.6 45.9 47.0 38.6 45.9 \n",
"4 25.7 39.2 35.3 25.2 38.5 \n",
"5 46.6 57.1 54.9 45.7 56.0 \n",
"6 47.9 66.3 58.5 47.9 66.3 \n",
"7 24.6 35.6 28.9 24.1 34.9 \n",
"8 24.5 36.0 30.0 24.5 36.0 \n",
"9 26.7 38.6 32.2 26.2 37.8 \n",
"10 28.0 44.2 31.8 28.0 44.2 \n",
"11 15.2 18.8 11.7 14.9 18.5 \n",
"12 28.0 37.5 29.7 28.0 37.5 \n",
"13 56.9 69.9 66.5 54.6 67.2 \n",
"14 57.0 62.7 55.1 57.0 62.7 \n",
"15 46.9 57.0 46.3 46.9 57.0 \n",
"16 50.7 59.4 47.6 50.7 59.4 \n",
"17 39.4 55.0 44.2 39.4 55.0 \n",
"\n",
" kn_recall tree_precision forest_precision kn_precision tree_f1 \\\n",
"0 30.9 26.2 39.4 32.1 24.5 \n",
"1 71.9 72.3 78.8 76.2 64.9 \n",
"2 26.2 20.9 33.5 24.2 20.0 \n",
"3 47.0 38.1 50.2 40.2 36.9 \n",
"4 34.6 25.9 43.5 30.8 24.6 \n",
"5 53.9 46.4 55.8 47.4 44.3 \n",
"6 58.5 48.9 64.9 59.9 46.2 \n",
"7 28.3 23.7 34.1 28.2 23.1 \n",
"8 30.0 25.2 30.9 32.1 23.8 \n",
"9 31.6 25.8 41.9 32.4 24.7 \n",
"10 31.8 31.4 43.7 34.5 27.9 \n",
"11 11.5 15.9 22.1 20.5 14.5 \n",
"12 29.7 27.7 33.5 25.9 26.3 \n",
"13 63.9 54.1 63.7 59.4 52.4 \n",
"14 55.1 50.3 65.7 66.4 52.1 \n",
"15 46.3 48.0 60.6 55.0 44.2 \n",
"16 47.6 50.6 68.3 60.4 48.3 \n",
"17 44.2 41.0 50.4 42.3 38.7 \n",
"\n",
" foresh_ft kn_f1 \n",
"0 35.1 28.9 \n",
"1 77.1 70.0 \n",
"2 26.7 23.9 \n",
"3 44.3 40.4 \n",
"4 37.2 31.4 \n",
"5 52.7 47.3 \n",
"6 62.5 56.4 \n",
"7 32.6 25.4 \n",
"8 31.4 28.9 \n",
"9 35.7 30.2 \n",
"10 40.2 31.0 \n",
"11 18.5 14.1 \n",
"12 32.9 26.1 \n",
"13 63.9 59.2 \n",
"14 62.5 56.1 \n",
"15 54.4 46.2 \n",
"16 60.1 50.9 \n",
"17 48.7 40.8 "
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(np.around(watch_gyro_score_impersonal[0], 1), columns=cols)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#write splitted time segments to file for later use\n",
"write_to_file({\"input\": phone_accel_input, \"subject\":phone_accel_subjectid, \"output\":phone_accel_output}, \"phone_accel_200\")\n",
"write_to_file({\"input\": phone_gyro_input, \"subject\":phone_gyro_subjectid, \"output\":phone_gyro_output}, \"phone_gyro_200\")\n",
"write_to_file({\"input\": watch_accel_input, \"subject\":watch_accel_subjectid, \"output\":watch_accel_output}, \"watch_accel_200\")\n",
"write_to_file({\"input\": watch_gyro_input, \"subject\":watch_gyro_subjectid, \"output\":watch_gyro_output}, \"watch_gyro_200\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#read data file from pickle dumps if required\n",
"data=read_from_file(\"phone_accel_400\")\n",
"phone_accel_input, phone_accel_subjectid, phone_accel_output = data[\"input\"], data[\"subject\"], data[\"output\"]\n",
"\n",
"data=read_from_file(\"phone_gyro_400\")\n",
"phone_gyro_input, phone_gyro_subjectid, phone_gyro_output = data[\"input\"], data[\"subject\"], data[\"output\"]\n",
"\n",
"data=read_from_file(\"watch_accel_400\")\n",
"watch_accel_input, watch_accel_subjectid, watch_accel_output = data[\"input\"], data[\"subject\"], data[\"output\"]\n",
"\n",
"data=read_from_file(\"watch_gyro_400\")\n",
"watch_gyro_input, watch_gyro_subjectid, watch_gyro_output = data[\"input\"], data[\"subject\"], data[\"output\"]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"#read features from pickle dumps if required\n",
"data=read_from_file(\"phone_accel_features\")\n",
"(phone_accel_features, phone_accel_class_label, phone_accel_subject) = data[0], data[1], data[2]\n",
"\n",
"data=read_from_file(\"phone_gyro_features\")\n",
"(phone_gyro_features, phone_gyro_class_label, phone_gyro_subject) = data[0], data[1], data[2]\n",
"\n",
"data=read_from_file(\"watch_accel_features\")\n",
"(watch_accel_features, watch_accel_class_label, watch_accel_subject) = data[0], data[1], data[2]\n",
"\n",
"data=read_from_file(\"watch_gyro_features\")\n",
"(watch_gyro_features, watch_gyro_class_label, watch_gyro_subject) = data[0], data[1], data[2]"
]
},
{
"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.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}