Commit 9e255863 authored by Jonathan Poalses's avatar Jonathan Poalses

Finished the code

parent c13764f4
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 263, "execution_count": 309,
"outputs": [], "outputs": [],
"source": [ "source": [
"# Importing pyplot so we can visualize things\n", "# Importing pyplot so we can visualize things\n",
...@@ -37,6 +37,9 @@ ...@@ -37,6 +37,9 @@
"# Importing sklearn metrics for the reports and confusion matrix\n", "# Importing sklearn metrics for the reports and confusion matrix\n",
"from sklearn import metrics\n", "from sklearn import metrics\n",
"\n", "\n",
"# Importing statistics for model evaluation\n",
"import statistics\n",
"\n",
"# Importing the three classifying algorithms\n", "# Importing the three classifying algorithms\n",
"from sklearn.naive_bayes import GaussianNB\n", "from sklearn.naive_bayes import GaussianNB\n",
"from sklearn.svm import SVC\n", "from sklearn.svm import SVC\n",
...@@ -58,8 +61,8 @@ ...@@ -58,8 +61,8 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.138574Z", "end_time": "2023-05-25T14:28:54.613430Z",
"start_time": "2023-05-24T19:57:31.051741Z" "start_time": "2023-05-25T14:28:54.538858Z"
} }
} }
}, },
...@@ -75,13 +78,13 @@ ...@@ -75,13 +78,13 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 264, "execution_count": 310,
"outputs": [ "outputs": [
{ {
"data": { "data": {
"text/plain": "array([0, 1, 2, ..., 8, 9, 8])" "text/plain": "array([0, 1, 2, ..., 8, 9, 8])"
}, },
"execution_count": 264, "execution_count": 310,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
...@@ -96,8 +99,8 @@ ...@@ -96,8 +99,8 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.167262Z", "end_time": "2023-05-25T14:28:54.638244Z",
"start_time": "2023-05-24T19:57:31.058062Z" "start_time": "2023-05-25T14:28:54.545300Z"
} }
} }
}, },
...@@ -112,13 +115,13 @@ ...@@ -112,13 +115,13 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 265, "execution_count": 311,
"outputs": [ "outputs": [
{ {
"data": { "data": {
"text/plain": "array([[[ 0., 0., 5., ..., 1., 0., 0.],\n [ 0., 0., 13., ..., 15., 5., 0.],\n [ 0., 3., 15., ..., 11., 8., 0.],\n ...,\n [ 0., 4., 11., ..., 12., 7., 0.],\n [ 0., 2., 14., ..., 12., 0., 0.],\n [ 0., 0., 6., ..., 0., 0., 0.]],\n\n [[ 0., 0., 0., ..., 5., 0., 0.],\n [ 0., 0., 0., ..., 9., 0., 0.],\n [ 0., 0., 3., ..., 6., 0., 0.],\n ...,\n [ 0., 0., 1., ..., 6., 0., 0.],\n [ 0., 0., 1., ..., 6., 0., 0.],\n [ 0., 0., 0., ..., 10., 0., 0.]],\n\n [[ 0., 0., 0., ..., 12., 0., 0.],\n [ 0., 0., 3., ..., 14., 0., 0.],\n [ 0., 0., 8., ..., 16., 0., 0.],\n ...,\n [ 0., 9., 16., ..., 0., 0., 0.],\n [ 0., 3., 13., ..., 11., 5., 0.],\n [ 0., 0., 0., ..., 16., 9., 0.]],\n\n ...,\n\n [[ 0., 0., 1., ..., 1., 0., 0.],\n [ 0., 0., 13., ..., 2., 1., 0.],\n [ 0., 0., 16., ..., 16., 5., 0.],\n ...,\n [ 0., 0., 16., ..., 15., 0., 0.],\n [ 0., 0., 15., ..., 16., 0., 0.],\n [ 0., 0., 2., ..., 6., 0., 0.]],\n\n [[ 0., 0., 2., ..., 0., 0., 0.],\n [ 0., 0., 14., ..., 15., 1., 0.],\n [ 0., 4., 16., ..., 16., 7., 0.],\n ...,\n [ 0., 0., 0., ..., 16., 2., 0.],\n [ 0., 0., 4., ..., 16., 2., 0.],\n [ 0., 0., 5., ..., 12., 0., 0.]],\n\n [[ 0., 0., 10., ..., 1., 0., 0.],\n [ 0., 2., 16., ..., 1., 0., 0.],\n [ 0., 0., 15., ..., 15., 0., 0.],\n ...,\n [ 0., 4., 16., ..., 16., 6., 0.],\n [ 0., 8., 16., ..., 16., 8., 0.],\n [ 0., 1., 8., ..., 12., 1., 0.]]])" "text/plain": "array([[[ 0., 0., 5., ..., 1., 0., 0.],\n [ 0., 0., 13., ..., 15., 5., 0.],\n [ 0., 3., 15., ..., 11., 8., 0.],\n ...,\n [ 0., 4., 11., ..., 12., 7., 0.],\n [ 0., 2., 14., ..., 12., 0., 0.],\n [ 0., 0., 6., ..., 0., 0., 0.]],\n\n [[ 0., 0., 0., ..., 5., 0., 0.],\n [ 0., 0., 0., ..., 9., 0., 0.],\n [ 0., 0., 3., ..., 6., 0., 0.],\n ...,\n [ 0., 0., 1., ..., 6., 0., 0.],\n [ 0., 0., 1., ..., 6., 0., 0.],\n [ 0., 0., 0., ..., 10., 0., 0.]],\n\n [[ 0., 0., 0., ..., 12., 0., 0.],\n [ 0., 0., 3., ..., 14., 0., 0.],\n [ 0., 0., 8., ..., 16., 0., 0.],\n ...,\n [ 0., 9., 16., ..., 0., 0., 0.],\n [ 0., 3., 13., ..., 11., 5., 0.],\n [ 0., 0., 0., ..., 16., 9., 0.]],\n\n ...,\n\n [[ 0., 0., 1., ..., 1., 0., 0.],\n [ 0., 0., 13., ..., 2., 1., 0.],\n [ 0., 0., 16., ..., 16., 5., 0.],\n ...,\n [ 0., 0., 16., ..., 15., 0., 0.],\n [ 0., 0., 15., ..., 16., 0., 0.],\n [ 0., 0., 2., ..., 6., 0., 0.]],\n\n [[ 0., 0., 2., ..., 0., 0., 0.],\n [ 0., 0., 14., ..., 15., 1., 0.],\n [ 0., 4., 16., ..., 16., 7., 0.],\n ...,\n [ 0., 0., 0., ..., 16., 2., 0.],\n [ 0., 0., 4., ..., 16., 2., 0.],\n [ 0., 0., 5., ..., 12., 0., 0.]],\n\n [[ 0., 0., 10., ..., 1., 0., 0.],\n [ 0., 2., 16., ..., 1., 0., 0.],\n [ 0., 0., 15., ..., 15., 0., 0.],\n ...,\n [ 0., 4., 16., ..., 16., 6., 0.],\n [ 0., 8., 16., ..., 16., 8., 0.],\n [ 0., 1., 8., ..., 12., 1., 0.]]])"
}, },
"execution_count": 265, "execution_count": 311,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
...@@ -130,8 +133,8 @@ ...@@ -130,8 +133,8 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.167448Z", "end_time": "2023-05-25T14:28:54.638690Z",
"start_time": "2023-05-24T19:57:31.072164Z" "start_time": "2023-05-25T14:28:54.563741Z"
} }
} }
}, },
...@@ -156,7 +159,7 @@ ...@@ -156,7 +159,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 266, "execution_count": 312,
"outputs": [ "outputs": [
{ {
"data": { "data": {
...@@ -183,8 +186,8 @@ ...@@ -183,8 +186,8 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.255710Z", "end_time": "2023-05-25T14:28:54.815532Z",
"start_time": "2023-05-24T19:57:31.085709Z" "start_time": "2023-05-25T14:28:54.702672Z"
} }
} }
}, },
...@@ -199,13 +202,13 @@ ...@@ -199,13 +202,13 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 267, "execution_count": 313,
"outputs": [ "outputs": [
{ {
"data": { "data": {
"text/plain": "array([[ 0., 0., 5., ..., 0., 0., 0.],\n [ 0., 0., 0., ..., 10., 0., 0.],\n [ 0., 0., 0., ..., 16., 9., 0.],\n ...,\n [ 0., 0., 1., ..., 6., 0., 0.],\n [ 0., 0., 2., ..., 12., 0., 0.],\n [ 0., 0., 10., ..., 12., 1., 0.]])" "text/plain": "array([[ 0., 0., 5., ..., 0., 0., 0.],\n [ 0., 0., 0., ..., 10., 0., 0.],\n [ 0., 0., 0., ..., 16., 9., 0.],\n ...,\n [ 0., 0., 1., ..., 6., 0., 0.],\n [ 0., 0., 2., ..., 12., 0., 0.],\n [ 0., 0., 10., ..., 12., 1., 0.]])"
}, },
"execution_count": 267, "execution_count": 313,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
...@@ -218,8 +221,8 @@ ...@@ -218,8 +221,8 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.260813Z", "end_time": "2023-05-25T14:28:54.821812Z",
"start_time": "2023-05-24T19:57:31.258154Z" "start_time": "2023-05-25T14:28:54.816152Z"
} }
} }
}, },
...@@ -254,7 +257,7 @@ ...@@ -254,7 +257,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 268, "execution_count": 314,
"outputs": [], "outputs": [],
"source": [ "source": [
"# We'll start by splitting the data into training and testing, going with a 75% train, 25% test split, a 50/50 split, and a 25% train 75% test split.\n", "# We'll start by splitting the data into training and testing, going with a 75% train, 25% test split, a 50/50 split, and a 25% train 75% test split.\n",
...@@ -265,8 +268,8 @@ ...@@ -265,8 +268,8 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.266344Z", "end_time": "2023-05-25T14:28:54.827791Z",
"start_time": "2023-05-24T19:57:31.262708Z" "start_time": "2023-05-25T14:28:54.824178Z"
} }
} }
}, },
...@@ -281,7 +284,7 @@ ...@@ -281,7 +284,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 269, "execution_count": 315,
"outputs": [], "outputs": [],
"source": [ "source": [
"# First the Gaussian Bayes\n", "# First the Gaussian Bayes\n",
...@@ -302,8 +305,8 @@ ...@@ -302,8 +305,8 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.331327Z", "end_time": "2023-05-25T14:28:54.895348Z",
"start_time": "2023-05-24T19:57:31.269108Z" "start_time": "2023-05-25T14:28:54.831677Z"
} }
} }
}, },
...@@ -318,7 +321,7 @@ ...@@ -318,7 +321,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 270, "execution_count": 316,
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
...@@ -347,14 +350,14 @@ ...@@ -347,14 +350,14 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.340955Z", "end_time": "2023-05-25T14:28:54.906409Z",
"start_time": "2023-05-24T19:57:31.332522Z" "start_time": "2023-05-25T14:28:54.897176Z"
} }
} }
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 271, "execution_count": 317,
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
...@@ -383,14 +386,14 @@ ...@@ -383,14 +386,14 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.410490Z", "end_time": "2023-05-25T14:28:54.991884Z",
"start_time": "2023-05-24T19:57:31.343315Z" "start_time": "2023-05-25T14:28:54.906637Z"
} }
} }
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 272, "execution_count": 318,
"outputs": [ "outputs": [
{ {
"name": "stdout", "name": "stdout",
...@@ -419,8 +422,8 @@ ...@@ -419,8 +422,8 @@
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.621919Z", "end_time": "2023-05-25T14:28:55.205099Z",
"start_time": "2023-05-24T19:57:31.412912Z" "start_time": "2023-05-25T14:28:54.990989Z"
} }
} }
}, },
...@@ -436,14 +439,87 @@ ...@@ -436,14 +439,87 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 272, "execution_count": 319,
"outputs": [], "outputs": [
"source": [], {
"name": "stdout",
"output_type": "stream",
"text": [
"Best single model : K Nearest Neighbour 1st Model\n",
"Best overall algorithm : K Nearest Neighbour Algorithm\n"
]
},
{
"data": {
"text/plain": "<Figure size 640x480 with 2 Axes>",
"image/png": "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\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Put all the scores into a dictionary (Not sure why python calls it a dictionary, it's called a map everywhere else\n",
"dictionary = {gnb_score : \"Gaussian Naive Bayes 1st Model\",\n",
" gnb2_score : \"Gaussian Naive Bayes 2nd Model\",\n",
" gnb3_score : \"Gaussian Naive Bayes 3rd Model\",\n",
" knc_score : \"K Nearest Neighbour 1st Model\",\n",
" knc2_score : \"K Nearest Neighbour 2nd Model\",\n",
" knc3_score : \"K Nearest Neighbour 3rd Model\",\n",
" svc_score : \"Support Vector Classification 1st Model\",\n",
" svc2_score : \"Support Vector Classification 2nd Model\",\n",
" svc3_score : \"Support Vector Classification 3rd Model\"\n",
" }\n",
"# Prepare a dictionary to get the predicted values\n",
"prediction_dictionary = {gnb_score : gnb_predicted,\n",
" gnb2_score : gnb2_predicted,\n",
" gnb3_score : gnb3_predicted,\n",
" knc_score : knc_predicted,\n",
" knc2_score : knc2_predicted,\n",
" knc3_score : knc3_predicted,\n",
" svc_score : svc_predicted,\n",
" svc2_score : svc2_predicted,\n",
" svc3_score : svc3_predicted\n",
" }\n",
"# And finally a dictionary for the test values\n",
"test_dictionary = {gnb_score : y_test,\n",
" gnb2_score : y_test2,\n",
" gnb3_score : y_test3,\n",
" knc_score : y_test,\n",
" knc2_score : y_test2,\n",
" knc3_score : y_test3,\n",
" svc_score : y_test,\n",
" svc2_score : y_test2,\n",
" svc3_score : y_test3\n",
" }\n",
"# Get the average scores and put those in a dictionary\n",
"gnb_average = statistics.fmean((gnb_score, gnb2_score, gnb3_score))\n",
"knc_average = statistics.fmean((knc_score, knc2_score, knc3_score))\n",
"svc_average = statistics.fmean((svc_score, svc2_score, svc3_score))\n",
"average_dictionary = {gnb_average : \"Gaussian Naive Bayes Algorithm\",\n",
" knc_average : \"K Nearest Neighbour Algorithm\",\n",
" svc_average : \"Support Vector Classification Algorithm\"}\n",
"# Get the highest of those values\n",
"highest_score = max(dictionary.keys())\n",
"highest = dictionary.get(highest_score)\n",
"highest_average = average_dictionary.get(max(average_dictionary.keys()))\n",
"\n",
"# Print the best\n",
"print(\"Best single model :\", highest)\n",
"print(\"Best overall algorithm :\", highest_average)\n",
"\n",
"# Now let's generate and look at the confusion matrix from the best model\n",
"display = metrics.ConfusionMatrixDisplay.from_predictions(test_dictionary.get(highest_score), prediction_dictionary.get(highest_score))\n",
"# Add a title\n",
"display.figure_.suptitle(f\"{highest} Confusion Matrix\")\n",
"# Again nonsense code to prevent weird unwanted output\n",
"nothing2 = 2"
],
"metadata": { "metadata": {
"collapsed": false, "collapsed": false,
"ExecuteTime": { "ExecuteTime": {
"end_time": "2023-05-24T19:57:31.624901Z", "end_time": "2023-05-25T14:28:55.437282Z",
"start_time": "2023-05-24T19:57:31.622175Z" "start_time": "2023-05-25T14:28:55.208964Z"
} }
} }
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment