Latest commit

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Final Project

Agnes Donat || Chiaki Mizuta || George Drayson || Raefe Newton-Jones

"For the things we have to learn before we can do them, we learn by doing them" - Aristotle

Introduction

We are four software developers doing a project in Machine Learning. Our final project, delivered in just 7 days, is a series of bots trained with supervised learning that can predict if someone has diabetes or if a tumour is benign or malignant. We are all passionate about Test Driven Development and well-crafted code, as well as following best practices of the SOLID principles taught at Makers Academy.

Tech Stack

Written in

  • Python

Displayed with

  • TensorBoard

Testing

  • unittest with TensorFlow's testing library

Libraries

  • TensorFlow
  • Matplotlib

Getting started

  1. Fork and clone this repository
  2. Go into the iris folder
cd iris
  1. Start the virtual environment:
source ./bin/activate
  1. Download TensorFlow:
pip3 install --upgrade tensorflow

Unit tests

Go to the folder of your choice then run the test file, e.g.:

python test_iris.py

Test coverage

First you will need to install the coverage library:

pip install coverage

Then, run this command with the test you want to get coverage on. Eg:

coverage run test_iris.py

To see the coverage for that test, run:

coverage report

Training the bot

Go to the folder of your choice then run the training file, e.g.:

python iris_training_controller.py

To run Tensorboard

Go to the folder of the dataset you want to observe, e.g.: 'iris_flower_categoriser', 'diabetes_predictor', or 'cancer_predictor'

and run

tensorboard --logdir='.'

and go to localhost:6006 on your browser!

Also, it's possible to run Tensorboard while you train the bot. That way you can see the graph progress real time!

Process

Week 1

Monday: Started individual research on Machine Learning. We set up two Trello boards: one for sharing useful links to articles and videos and one for task delegation. Raefe also summarised ML concepts in a handy diagram:

Raefe's diagram for ML

Tuesday: In the morning, we reviewed each others' FizzBuzz code written in Python, tested with Pytest, and continued with more research. Later, we made a decision that instead of training a deep learning car with Reinforcement Learning, we would focus on Supervised learning.

Wednesday: Working in pairs, we read through TensorFlow's Eager Execution tutorial and used their example of the Iris flower dataset to categorising flower species. This gave us a better understanding of Tensorflow syntax and about the intricacies of supervised learning model

Thursday: Swapping pairs, we looked into testing the code we studied the previous day and finding a solution for serialising our Python object so we can save our trained bot. In order to tame the unstructured TensorFlow code, it had to be encapsulated into classess and fully tested. Using unittest with TensorFlow's testing library the production code became neatly organised with an Iris class and several methods each following the SRP. We were also experimenting with Python's pickle module, but eventually, we dropped this idea and used TensorFlow's Saver class.

Friday: George and Chiaki integrated persistent data into the project, while Raefe and Agnes added the ability to print graphs for the Loss and Accuracy.

By the end of the week, we had a basic understanding of Machine Learning concepts, and a fully tested and trained Model for categorising Iris flowers that also returned its Loss and Accuracy results in graphs.

Alt text

Week 2

Tuesday: Raefe worked on coverage and file structure, Chiaki researched possible frontend options such as React and eventually decided on Tensorboard. Meanwhile, George and Agnes added bots for diabetes, breast cancer and card fraud

Wednesday: Working in pairs, Chiaki and Agnes connected our models to Tensorboard, which allowed us to display data about our training and testing. At the same time, Raefe and George worked on increasing the accuracy of the bots, updating the README and improving the coverage.

About

Makers Academy final project: Agnes, Chiaki, George and Raefe, a team of four worked on this Machine Learning project from almost zero knowledge in less than two weeks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Final Project

Agnes Donat || Chiaki Mizuta || George Drayson || Raefe Newton-Jones

"For the things we have to learn before we can do them, we learn by doing them" - Aristotle

Introduction

We are four software developers doing a project in Machine Learning. Our final project, delivered in just 7 days, is a series of bots trained with supervised learning that can predict if someone has diabetes or if a tumour is benign or malignant. We are all passionate about Test Driven Development and well-crafted code, as well as following best practices of the SOLID principles taught at Makers Academy.

Tech Stack

Written in

  • Python

Displayed with

  • TensorBoard

Testing

  • unittest with TensorFlow's testing library

Libraries

  • TensorFlow
  • Matplotlib

Getting started

  1. Fork and clone this repository
  2. Go into the iris folder
cd iris
  1. Start the virtual environment:
source ./bin/activate
  1. Download TensorFlow:
pip3 install --upgrade tensorflow

Unit tests

Go to the folder of your choice then run the test file, e.g.:

python test_iris.py

Test coverage

First you will need to install the coverage library:

pip install coverage

Then, run this command with the test you want to get coverage on. Eg:

coverage run test_iris.py

To see the coverage for that test, run:

coverage report

Training the bot

Go to the folder of your choice then run the training file, e.g.:

python iris_training_controller.py

To run Tensorboard

Go to the folder of the dataset you want to observe, e.g.: 'iris_flower_categoriser', 'diabetes_predictor', or 'cancer_predictor'

and run

tensorboard --logdir='.'

and go to localhost:6006 on your browser!

Also, it's possible to run Tensorboard while you train the bot. That way you can see the graph progress real time!

Process

Week 1

Monday: Started individual research on Machine Learning. We set up two Trello boards: one for sharing useful links to articles and videos and one for task delegation. Raefe also summarised ML concepts in a handy diagram:

Raefe's diagram for ML

Tuesday: In the morning, we reviewed each others' FizzBuzz code written in Python, tested with Pytest, and continued with more research. Later, we made a decision that instead of training a deep learning car with Reinforcement Learning, we would focus on Supervised learning.

Wednesday: Working in pairs, we read through TensorFlow's Eager Execution tutorial and used their example of the Iris flower dataset to categorising flower species. This gave us a better understanding of Tensorflow syntax and about the intricacies of supervised learning model

Thursday: Swapping pairs, we looked into testing the code we studied the previous day and finding a solution for serialising our Python object so we can save our trained bot. In order to tame the unstructured TensorFlow code, it had to be encapsulated into classess and fully tested. Using unittest with TensorFlow's testing library the production code became neatly organised with an Iris class and several methods each following the SRP. We were also experimenting with Python's pickle module, but eventually, we dropped this idea and used TensorFlow's Saver class.

Friday: George and Chiaki integrated persistent data into the project, while Raefe and Agnes added the ability to print graphs for the Loss and Accuracy.

By the end of the week, we had a basic understanding of Machine Learning concepts, and a fully tested and trained Model for categorising Iris flowers that also returned its Loss and Accuracy results in graphs.

Alt text

Week 2

Tuesday: Raefe worked on coverage and file structure, Chiaki researched possible frontend options such as React and eventually decided on Tensorboard. Meanwhile, George and Agnes added bots for diabetes, breast cancer and card fraud

Wednesday: Working in pairs, Chiaki and Agnes connected our models to Tensorboard, which allowed us to display data about our training and testing. At the same time, Raefe and George worked on increasing the accuracy of the bots, updating the README and improving the coverage.

About

Makers Academy final project: Agnes, Chiaki, George and Raefe, a team of four worked on this Machine Learning project from almost zero knowledge in less than two weeks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Final Project

Agnes Donat || Chiaki Mizuta || George Drayson || Raefe Newton-Jones

"For the things we have to learn before we can do them, we learn by doing them" - Aristotle

Introduction

We are four software developers doing a project in Machine Learning. Our final project, delivered in just 7 days, is a series of bots trained with supervised learning that can predict if someone has diabetes or if a tumour is benign or malignant. We are all passionate about Test Driven Development and well-crafted code, as well as following best practices of the SOLID principles taught at Makers Academy.

Tech Stack

Written in

  • Python

Displayed with

  • TensorBoard

Testing

  • unittest with TensorFlow's testing library

Libraries

  • TensorFlow
  • Matplotlib

Getting started

  1. Fork and clone this repository
  2. Go into the iris folder
cd iris
  1. Start the virtual environment:
source ./bin/activate
  1. Download TensorFlow:
pip3 install --upgrade tensorflow

Unit tests

Go to the folder of your choice then run the test file, e.g.:

python test_iris.py

Test coverage

First you will need to install the coverage library:

pip install coverage

Then, run this command with the test you want to get coverage on. Eg:

coverage run test_iris.py

To see the coverage for that test, run:

coverage report

Training the bot

Go to the folder of your choice then run the training file, e.g.:

python iris_training_controller.py

To run Tensorboard

Go to the folder of the dataset you want to observe, e.g.: 'iris_flower_categoriser', 'diabetes_predictor', or 'cancer_predictor'

and run

tensorboard --logdir='.'

and go to localhost:6006 on your browser!

Also, it's possible to run Tensorboard while you train the bot. That way you can see the graph progress real time!

Process

Week 1

Monday: Started individual research on Machine Learning. We set up two Trello boards: one for sharing useful links to articles and videos and one for task delegation. Raefe also summarised ML concepts in a handy diagram:

Raefe's diagram for ML

Tuesday: In the morning, we reviewed each others' FizzBuzz code written in Python, tested with Pytest, and continued with more research. Later, we made a decision that instead of training a deep learning car with Reinforcement Learning, we would focus on Supervised learning.

Wednesday: Working in pairs, we read through TensorFlow's Eager Execution tutorial and used their example of the Iris flower dataset to categorising flower species. This gave us a better understanding of Tensorflow syntax and about the intricacies of supervised learning model

Thursday: Swapping pairs, we looked into testing the code we studied the previous day and finding a solution for serialising our Python object so we can save our trained bot. In order to tame the unstructured TensorFlow code, it had to be encapsulated into classess and fully tested. Using unittest with TensorFlow's testing library the production code became neatly organised with an Iris class and several methods each following the SRP. We were also experimenting with Python's pickle module, but eventually, we dropped this idea and used TensorFlow's Saver class.

Friday: George and Chiaki integrated persistent data into the project, while Raefe and Agnes added the ability to print graphs for the Loss and Accuracy.

By the end of the week, we had a basic understanding of Machine Learning concepts, and a fully tested and trained Model for categorising Iris flowers that also returned its Loss and Accuracy results in graphs.

Alt text

Week 2

Tuesday: Raefe worked on coverage and file structure, Chiaki researched possible frontend options such as React and eventually decided on Tensorboard. Meanwhile, George and Agnes added bots for diabetes, breast cancer and card fraud

Wednesday: Working in pairs, Chiaki and Agnes connected our models to Tensorboard, which allowed us to display data about our training and testing. At the same time, Raefe and George worked on increasing the accuracy of the bots, updating the README and improving the coverage.

About

Makers Academy final project: Agnes, Chiaki, George and Raefe, a team of four worked on this Machine Learning project from almost zero knowledge in less than two weeks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Final Project

Agnes Donat || Chiaki Mizuta || George Drayson || Raefe Newton-Jones

"For the things we have to learn before we can do them, we learn by doing them" - Aristotle

Introduction

We are four software developers doing a project in Machine Learning. Our final project, delivered in just 7 days, is a series of bots trained with supervised learning that can predict if someone has diabetes or if a tumour is benign or malignant. We are all passionate about Test Driven Development and well-crafted code, as well as following best practices of the SOLID principles taught at Makers Academy.

Tech Stack

Written in

  • Python

Displayed with

  • TensorBoard

Testing

  • unittest with TensorFlow's testing library

Libraries

  • TensorFlow
  • Matplotlib

Getting started

  1. Fork and clone this repository
  2. Go into the iris folder
cd iris
  1. Start the virtual environment:
source ./bin/activate
  1. Download TensorFlow:
pip3 install --upgrade tensorflow

Unit tests

Go to the folder of your choice then run the test file, e.g.:

python test_iris.py

Test coverage

First you will need to install the coverage library:

pip install coverage

Then, run this command with the test you want to get coverage on. Eg:

coverage run test_iris.py

To see the coverage for that test, run:

coverage report

Training the bot

Go to the folder of your choice then run the training file, e.g.:

python iris_training_controller.py

To run Tensorboard

Go to the folder of the dataset you want to observe, e.g.: 'iris_flower_categoriser', 'diabetes_predictor', or 'cancer_predictor'

and run

tensorboard --logdir='.'

and go to localhost:6006 on your browser!

Also, it's possible to run Tensorboard while you train the bot. That way you can see the graph progress real time!

Process

Week 1

Monday: Started individual research on Machine Learning. We set up two Trello boards: one for sharing useful links to articles and videos and one for task delegation. Raefe also summarised ML concepts in a handy diagram:

Raefe's diagram for ML

Tuesday: In the morning, we reviewed each others' FizzBuzz code written in Python, tested with Pytest, and continued with more research. Later, we made a decision that instead of training a deep learning car with Reinforcement Learning, we would focus on Supervised learning.

Wednesday: Working in pairs, we read through TensorFlow's Eager Execution tutorial and used their example of the Iris flower dataset to categorising flower species. This gave us a better understanding of Tensorflow syntax and about the intricacies of supervised learning model

Thursday: Swapping pairs, we looked into testing the code we studied the previous day and finding a solution for serialising our Python object so we can save our trained bot. In order to tame the unstructured TensorFlow code, it had to be encapsulated into classess and fully tested. Using unittest with TensorFlow's testing library the production code became neatly organised with an Iris class and several methods each following the SRP. We were also experimenting with Python's pickle module, but eventually, we dropped this idea and used TensorFlow's Saver class.

Friday: George and Chiaki integrated persistent data into the project, while Raefe and Agnes added the ability to print graphs for the Loss and Accuracy.

By the end of the week, we had a basic understanding of Machine Learning concepts, and a fully tested and trained Model for categorising Iris flowers that also returned its Loss and Accuracy results in graphs.

Alt text

Week 2

Tuesday: Raefe worked on coverage and file structure, Chiaki researched possible frontend options such as React and eventually decided on Tensorboard. Meanwhile, George and Agnes added bots for diabetes, breast cancer and card fraud

Wednesday: Working in pairs, Chiaki and Agnes connected our models to Tensorboard, which allowed us to display data about our training and testing. At the same time, Raefe and George worked on increasing the accuracy of the bots, updating the README and improving the coverage.

About

Makers Academy final project: Agnes, Chiaki, George and Raefe, a team of four worked on this Machine Learning project from almost zero knowledge in less than two weeks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Final Project

Agnes Donat || Chiaki Mizuta || George Drayson || Raefe Newton-Jones

"For the things we have to learn before we can do them, we learn by doing them" - Aristotle

Introduction

We are four software developers doing a project in Machine Learning. Our final project, delivered in just 7 days, is a series of bots trained with supervised learning that can predict if someone has diabetes or if a tumour is benign or malignant. We are all passionate about Test Driven Development and well-crafted code, as well as following best practices of the SOLID principles taught at Makers Academy.

Tech Stack

Written in

  • Python

Displayed with

  • TensorBoard

Testing

  • unittest with TensorFlow's testing library

Libraries

  • TensorFlow
  • Matplotlib

Getting started

  1. Fork and clone this repository
  2. Go into the iris folder
cd iris
  1. Start the virtual environment:
source ./bin/activate
  1. Download TensorFlow:
pip3 install --upgrade tensorflow

Unit tests

Go to the folder of your choice then run the test file, e.g.:

python test_iris.py

Test coverage

First you will need to install the coverage library:

pip install coverage

Then, run this command with the test you want to get coverage on. Eg:

coverage run test_iris.py

To see the coverage for that test, run:

coverage report

Training the bot

Go to the folder of your choice then run the training file, e.g.:

python iris_training_controller.py

To run Tensorboard

Go to the folder of the dataset you want to observe, e.g.: 'iris_flower_categoriser', 'diabetes_predictor', or 'cancer_predictor'

and run

tensorboard --logdir='.'

and go to localhost:6006 on your browser!

Also, it's possible to run Tensorboard while you train the bot. That way you can see the graph progress real time!

Process

Week 1

Monday: Started individual research on Machine Learning. We set up two Trello boards: one for sharing useful links to articles and videos and one for task delegation. Raefe also summarised ML concepts in a handy diagram:

Raefe's diagram for ML

Tuesday: In the morning, we reviewed each others' FizzBuzz code written in Python, tested with Pytest, and continued with more research. Later, we made a decision that instead of training a deep learning car with Reinforcement Learning, we would focus on Supervised learning.

Wednesday: Working in pairs, we read through TensorFlow's Eager Execution tutorial and used their example of the Iris flower dataset to categorising flower species. This gave us a better understanding of Tensorflow syntax and about the intricacies of supervised learning model

Thursday: Swapping pairs, we looked into testing the code we studied the previous day and finding a solution for serialising our Python object so we can save our trained bot. In order to tame the unstructured TensorFlow code, it had to be encapsulated into classess and fully tested. Using unittest with TensorFlow's testing library the production code became neatly organised with an Iris class and several methods each following the SRP. We were also experimenting with Python's pickle module, but eventually, we dropped this idea and used TensorFlow's Saver class.

Friday: George and Chiaki integrated persistent data into the project, while Raefe and Agnes added the ability to print graphs for the Loss and Accuracy.

By the end of the week, we had a basic understanding of Machine Learning concepts, and a fully tested and trained Model for categorising Iris flowers that also returned its Loss and Accuracy results in graphs.

Alt text

Week 2

Tuesday: Raefe worked on coverage and file structure, Chiaki researched possible frontend options such as React and eventually decided on Tensorboard. Meanwhile, George and Agnes added bots for diabetes, breast cancer and card fraud

Wednesday: Working in pairs, Chiaki and Agnes connected our models to Tensorboard, which allowed us to display data about our training and testing. At the same time, Raefe and George worked on increasing the accuracy of the bots, updating the README and improving the coverage.

About

Makers Academy final project: Agnes, Chiaki, George and Raefe, a team of four worked on this Machine Learning project from almost zero knowledge in less than two weeks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Final Project

Agnes Donat || Chiaki Mizuta || George Drayson || Raefe Newton-Jones

"For the things we have to learn before we can do them, we learn by doing them" - Aristotle

Introduction

We are four software developers doing a project in Machine Learning. Our final project, delivered in just 7 days, is a series of bots trained with supervised learning that can predict if someone has diabetes or if a tumour is benign or malignant. We are all passionate about Test Driven Development and well-crafted code, as well as following best practices of the SOLID principles taught at Makers Academy.

Tech Stack

Written in

  • Python

Displayed with

  • TensorBoard

Testing

  • unittest with TensorFlow's testing library

Libraries

  • TensorFlow
  • Matplotlib

Getting started

  1. Fork and clone this repository
  2. Go into the iris folder
cd iris
  1. Start the virtual environment:
source ./bin/activate
  1. Download TensorFlow:
pip3 install --upgrade tensorflow

Unit tests

Go to the folder of your choice then run the test file, e.g.:

python test_iris.py

Test coverage

First you will need to install the coverage library:

pip install coverage

Then, run this command with the test you want to get coverage on. Eg:

coverage run test_iris.py

To see the coverage for that test, run:

coverage report

Training the bot

Go to the folder of your choice then run the training file, e.g.:

python iris_training_controller.py

To run Tensorboard

Go to the folder of the dataset you want to observe, e.g.: 'iris_flower_categoriser', 'diabetes_predictor', or 'cancer_predictor'

and run

tensorboard --logdir='.'

and go to localhost:6006 on your browser!

Also, it's possible to run Tensorboard while you train the bot. That way you can see the graph progress real time!

Process

Week 1

Monday: Started individual research on Machine Learning. We set up two Trello boards: one for sharing useful links to articles and videos and one for task delegation. Raefe also summarised ML concepts in a handy diagram:

Raefe's diagram for ML

Tuesday: In the morning, we reviewed each others' FizzBuzz code written in Python, tested with Pytest, and continued with more research. Later, we made a decision that instead of training a deep learning car with Reinforcement Learning, we would focus on Supervised learning.

Wednesday: Working in pairs, we read through TensorFlow's Eager Execution tutorial and used their example of the Iris flower dataset to categorising flower species. This gave us a better understanding of Tensorflow syntax and about the intricacies of supervised learning model

Thursday: Swapping pairs, we looked into testing the code we studied the previous day and finding a solution for serialising our Python object so we can save our trained bot. In order to tame the unstructured TensorFlow code, it had to be encapsulated into classess and fully tested. Using unittest with TensorFlow's testing library the production code became neatly organised with an Iris class and several methods each following the SRP. We were also experimenting with Python's pickle module, but eventually, we dropped this idea and used TensorFlow's Saver class.

Friday: George and Chiaki integrated persistent data into the project, while Raefe and Agnes added the ability to print graphs for the Loss and Accuracy.

By the end of the week, we had a basic understanding of Machine Learning concepts, and a fully tested and trained Model for categorising Iris flowers that also returned its Loss and Accuracy results in graphs.

Alt text

Week 2

Tuesday: Raefe worked on coverage and file structure, Chiaki researched possible frontend options such as React and eventually decided on Tensorboard. Meanwhile, George and Agnes added bots for diabetes, breast cancer and card fraud

Wednesday: Working in pairs, Chiaki and Agnes connected our models to Tensorboard, which allowed us to display data about our training and testing. At the same time, Raefe and George worked on increasing the accuracy of the bots, updating the README and improving the coverage.

About

Makers Academy final project: Agnes, Chiaki, George and Raefe, a team of four worked on this Machine Learning project from almost zero knowledge in less than two weeks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Final Project

Agnes Donat || Chiaki Mizuta || George Drayson || Raefe Newton-Jones

"For the things we have to learn before we can do them, we learn by doing them" - Aristotle

Introduction

We are four software developers doing a project in Machine Learning. Our final project, delivered in just 7 days, is a series of bots trained with supervised learning that can predict if someone has diabetes or if a tumour is benign or malignant. We are all passionate about Test Driven Development and well-crafted code, as well as following best practices of the SOLID principles taught at Makers Academy.

Tech Stack

Written in

  • Python

Displayed with

  • TensorBoard

Testing

  • unittest with TensorFlow's testing library

Libraries

  • TensorFlow
  • Matplotlib

Getting started

  1. Fork and clone this repository
  2. Go into the iris folder
cd iris
  1. Start the virtual environment:
source ./bin/activate
  1. Download TensorFlow:
pip3 install --upgrade tensorflow

Unit tests

Go to the folder of your choice then run the test file, e.g.:

python test_iris.py

Test coverage

First you will need to install the coverage library:

pip install coverage

Then, run this command with the test you want to get coverage on. Eg:

coverage run test_iris.py

To see the coverage for that test, run:

coverage report

Training the bot

Go to the folder of your choice then run the training file, e.g.:

python iris_training_controller.py

To run Tensorboard

Go to the folder of the dataset you want to observe, e.g.: 'iris_flower_categoriser', 'diabetes_predictor', or 'cancer_predictor'

and run

tensorboard --logdir='.'

and go to localhost:6006 on your browser!

Also, it's possible to run Tensorboard while you train the bot. That way you can see the graph progress real time!

Process

Week 1

Monday: Started individual research on Machine Learning. We set up two Trello boards: one for sharing useful links to articles and videos and one for task delegation. Raefe also summarised ML concepts in a handy diagram:

Raefe's diagram for ML

Tuesday: In the morning, we reviewed each others' FizzBuzz code written in Python, tested with Pytest, and continued with more research. Later, we made a decision that instead of training a deep learning car with Reinforcement Learning, we would focus on Supervised learning.

Wednesday: Working in pairs, we read through TensorFlow's Eager Execution tutorial and used their example of the Iris flower dataset to categorising flower species. This gave us a better understanding of Tensorflow syntax and about the intricacies of supervised learning model

Thursday: Swapping pairs, we looked into testing the code we studied the previous day and finding a solution for serialising our Python object so we can save our trained bot. In order to tame the unstructured TensorFlow code, it had to be encapsulated into classess and fully tested. Using unittest with TensorFlow's testing library the production code became neatly organised with an Iris class and several methods each following the SRP. We were also experimenting with Python's pickle module, but eventually, we dropped this idea and used TensorFlow's Saver class.

Friday: George and Chiaki integrated persistent data into the project, while Raefe and Agnes added the ability to print graphs for the Loss and Accuracy.

By the end of the week, we had a basic understanding of Machine Learning concepts, and a fully tested and trained Model for categorising Iris flowers that also returned its Loss and Accuracy results in graphs.

Alt text

Week 2

Tuesday: Raefe worked on coverage and file structure, Chiaki researched possible frontend options such as React and eventually decided on Tensorboard. Meanwhile, George and Agnes added bots for diabetes, breast cancer and card fraud

Wednesday: Working in pairs, Chiaki and Agnes connected our models to Tensorboard, which allowed us to display data about our training and testing. At the same time, Raefe and George worked on increasing the accuracy of the bots, updating the README and improving the coverage.

About

Makers Academy final project: Agnes, Chiaki, George and Raefe, a team of four worked on this Machine Learning project from almost zero knowledge in less than two weeks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

81 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Final Project

Agnes Donat || Chiaki Mizuta || George Drayson || Raefe Newton-Jones

"For the things we have to learn before we can do them, we learn by doing them" - Aristotle

Introduction

We are four software developers doing a project in Machine Learning. Our final project, delivered in just 7 days, is a series of bots trained with supervised learning that can predict if someone has diabetes or if a tumour is benign or malignant. We are all passionate about Test Driven Development and well-crafted code, as well as following best practices of the SOLID principles taught at Makers Academy.

Tech Stack

Written in

  • Python

Displayed with

  • TensorBoard

Testing

  • unittest with TensorFlow's testing library

Libraries

  • TensorFlow
  • Matplotlib

Getting started

  1. Fork and clone this repository
  2. Go into the iris folder
cd iris
  1. Start the virtual environment:
source ./bin/activate
  1. Download TensorFlow:
pip3 install --upgrade tensorflow

Unit tests

Go to the folder of your choice then run the test file, e.g.:

python test_iris.py

Test coverage

First you will need to install the coverage library:

pip install coverage

Then, run this command with the test you want to get coverage on. Eg:

coverage run test_iris.py

To see the coverage for that test, run:

coverage report

Training the bot

Go to the folder of your choice then run the training file, e.g.:

python iris_training_controller.py

To run Tensorboard

Go to the folder of the dataset you want to observe, e.g.: 'iris_flower_categoriser', 'diabetes_predictor', or 'cancer_predictor'

and run

tensorboard --logdir='.'

and go to localhost:6006 on your browser!

Also, it's possible to run Tensorboard while you train the bot. That way you can see the graph progress real time!

Process

Week 1

Monday: Started individual research on Machine Learning. We set up two Trello boards: one for sharing useful links to articles and videos and one for task delegation. Raefe also summarised ML concepts in a handy diagram:

Raefe's diagram for ML

Tuesday: In the morning, we reviewed each others' FizzBuzz code written in Python, tested with Pytest, and continued with more research. Later, we made a decision that instead of training a deep learning car with Reinforcement Learning, we would focus on Supervised learning.

Wednesday: Working in pairs, we read through TensorFlow's Eager Execution tutorial and used their example of the Iris flower dataset to categorising flower species. This gave us a better understanding of Tensorflow syntax and about the intricacies of supervised learning model

Thursday: Swapping pairs, we looked into testing the code we studied the previous day and finding a solution for serialising our Python object so we can save our trained bot. In order to tame the unstructured TensorFlow code, it had to be encapsulated into classess and fully tested. Using unittest with TensorFlow's testing library the production code became neatly organised with an Iris class and several methods each following the SRP. We were also experimenting with Python's pickle module, but eventually, we dropped this idea and used TensorFlow's Saver class.

Friday: George and Chiaki integrated persistent data into the project, while Raefe and Agnes added the ability to print graphs for the Loss and Accuracy.

By the end of the week, we had a basic understanding of Machine Learning concepts, and a fully tested and trained Model for categorising Iris flowers that also returned its Loss and Accuracy results in graphs.

Alt text

Week 2

Tuesday: Raefe worked on coverage and file structure, Chiaki researched possible frontend options such as React and eventually decided on Tensorboard. Meanwhile, George and Agnes added bots for diabetes, breast cancer and card fraud

Wednesday: Working in pairs, Chiaki and Agnes connected our models to Tensorboard, which allowed us to display data about our training and testing. At the same time, Raefe and George worked on increasing the accuracy of the bots, updating the README and improving the coverage.

About

Makers Academy final project: Agnes, Chiaki, George and Raefe, a team of four worked on this Machine Learning project from almost zero knowledge in less than two weeks.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages