This repository contains various projects that I have undertaken as part of my postgraduate degree.
- irisdata.py - In this task I used a perceptron (code for perceptron taken from Python Machine Learning (3rd Edition)) alongside the Iris Dataset (taken from the UCI Machine Learning Repository) to discern which of the 4 features should be discarded. In order to do this I computed the error for each feature set (I left out one feature each time) and then selected the relevant feature which was contributing most towards the error count.
- shapecalcs.py - In this task I designed a program that would perform calculations relating to triangles. The program prompts the user for input and then implements functions which carry out specific calculations. After performing the calculations the user is then returned to the main menu, or can choose to exit the program entirely. This task allowed me to become familiar with designing a program that takes user input, uses while loops, and implements functions. It als solidified my knowledge of how to appropriately use "if", "else", and "elif" statements.
- bankaccount.py - In this task I designed a bank account program which contained two classes, a superclass (Basic account) and a subclass (Premium account) which contained extra functionalities. Each bank account type stored customer information and allowed for actions such as the withdrawl of money etc. In undertaking this task I became familiar with the software engineering "UML" (Unified Modelling Language) diagrams and how to follow them when using Object Oriented Programing.
- tradcards.py - This task required me to program an Application for an imaginary company "Tray Ding Trading Co." that would allow players to maintain and update their deck of cards, as well as show relevant statistics about the deck. This prototype allowed me to build on skills I had previously neglected, such as how to use the openpyxl module to manage data contained in an Excel file. Within this program I also manually raised exceptions which is incredibly useful for catching and spotting generic errors.
- compintel.py - This project comprised an exploration into neural network learning (I had to implement a Perceptron, and a Multi-layer Perceptron from scratch) and also required me to create a genetic algorithm (GA) and a particle swarm optimiser (PSO). In doing so I became familiar with the architecture of neural networks and how I could use them to solve classification problem. In terms of neural netwroks I focused on function sets which include logical operators, i.e. the OR problem and the AND problem, as well as the XOR problem. I then used these neural networks in order to create my GA and PSO, for which I also used the libraries "geneticalgorithm" and "pyswarms". The results generated from my experiements with the code were then compiled into a report which analysed the graphs that were produced using Matplotlib.