Course Code: pythonaimldlann
Duration: 84 hours
Prerequisites:
  • No previous programming experience is necessary.

Audience

  • Anyone interested in learning Python to understand and apply Artificial Intelligence (AI) within their organization.
Overview:

Artificial Intelligence (AI) refers to software that is capable of carrying out tasks that would normally require human intelligence. Such tasks include: predicting an outcome based on past events, recognizing images, recognizing speech, making decisions autonomously, and translating between languages.

AI employs software constructs and techniques such as Artificial Neural Networks, Machine Learning, and Deep Learning to make all this possible. The language of choice for AI development is Python. The most popular AI libraries are written in Python and are available as open-source software.

This instructor-led, live training is aimed at anyone who wishes to learn Python and apply this knowledge to understand AI and implement AI capabilities such as machine learning and deep learning into an organization's applications.

The course is comprised of three modules:

  1. Python Programming
  2. Introduction to Data Science and AI (using Python)
  3. Artificial Neural Networks, Machine Learning and Deep Learning

By the end of this training, participants will be able to:

  • Develop a real-world software application using Python.
  • Know which machine learning and deep learning libraries to download and install.
  • Integrate machine learning and deep learning libraries into a software application to enable AI within an organization.
  • Identify the underlying algorithms used to carry out different types of computation and analysis.
  • Understand how artificial neural networks work and what their role is in enabling machine learning.
  • Understand the difference between machine learning and deep learning.
  • Design software applications that can take existing data, then use this data to predict people's behavior.
  • Design software applications that can recognize images, text and speech, then carry out actions based on this knowledge.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.
Course Outline:

Module 1: Python Programming

Overview

This is an introduction to Python programming. The emphasis is on the Python language, the core libraries, as well as on the selection of the best and most useful libraries developed by the Python community. Python drives businesses and is used by scientists all over the world – it is one of the most popular programming languages.

Introduction to Python Programming

  • Running Python code
  • Using Python Development Tools (IDEs and command line tools)
  • Working with Python and iPython shells as well as iPython Notebook

Data Types and Operations

  • Integers and floats
  • Strings and bytes
  • Tuples and lists
  • Dictionaries and ordered dictionaries
  • Sets and frozen sets

Organizing and Distributing Code

  • Creating modules and packages
  • Distributing code to repositories

Object Oriented and Functional Programming

  • Creating and using functions and classes
  • Modifying functions and classes with decorators
  • Introducing meta-classes

Error Handling and Testing

  • Handling and raising exceptions
  • Writing and executing tests (doc tests and unit tests)
  • Checking code coverage by tests

Working with Files and Directories

  • Accessing different types of files and file handling principles
  • Creating, reading, updating and deleting files (including regular text files, csv, as well as Microsoft Word and Microsoft Excel files)
  • Extracting data from text files using Regular Expressions
  • Creating and deleting directories, listing and searching for files

Accessing Databases

  • Selecting, inserting, updating and deleting data
  • Generic database API based on SQLite 3, PostgreSQL and MySQL
  • Using the Object Relational Mapper (SQLAlchemy)
  • Working with NoSQL databases

Conquering The Web

  • Retrieving web pages
  • Parsing HTML and XML
  • Filling web forms automatically
  • Creating web applications in Python

Module 2: Introduction to Data Science and AI (using Python)

Overview

This is an introduction to Data Science and Artificial Intelligence (AI). Examples and exercises are carried out using Python.

Introduction to Data Science/AI

  • Knowledge acquisition through data
  • Knowledge representation
  • Value creation
  • Data Science overview
  • AI ecosystem and new approach to analytics
  • Key technologies

Data Science workflow

  • Crisp-dm
  • Data preparation
  • Model planning
  • Model building
  • Communication
  • Deployment

Data Science technologies

  • Languages used for prototyping
  • Big Data technologies
  • End to end solutions to common problems
  • Introduction to Python language
  • Integrating Python with Spark

AI in Business

  • AI ecosystem
  • Ethics of AI
  • How to drive AI in business

Data sources

  • Types of data
  • SQL vs NoSQL
  • Data Storage
  • Data preparation

Data Analysis – Statistical approach

  • Probability
  • Statistics
  • Statistical modeling
  • Applications in business using Python

Machine learning in business

  • Supervised vs unsupervised
  • Forecasting problems
  • Classfication problems
  • Clustering problems
  • Anomaly detection
  • Recommendation engines
  • Association pattern mining
  • Solving ML problems with Python language

Deep learning

  • Problems where traditional ML algorithms fails
  • Solving complicated problems with Deep Learning
  • Introduction to Tensorflow

Natural Language processing

Data visualization

  • Visual reporting outcomes from modeling
  • Common pitfalls in visualization
  • Data visualization with Python

From Data to Decision – communication

  • Making impact: data driven story telling
  • Influence effectivnes
  • Managing Data Science projects

Module 3: Artificial Neural Networks, Machine Learning and Deep Learning

Overview

This is an introduction to Artificial Neural Networks, Machine Learning and Deep Thinking.

Artificial Neural Network is a computational data model used in the development of Artificial Intelligence (AI) systems capable of performing "intelligent" tasks. Neural Networks are commonly used in Machine Learning (ML) applications, which are themselves one implementation of AI. Deep Learning is a subset of ML.

1. Understanding classification using nearest neighbors 

  • The kNN algorithm 
  • Calculating distance 
  • Choosing an appropriate k 
  • Preparing data for use with kNN 
  • Why is the kNN algorithm lazy?

2. Understanding naive Bayes 

  • Basic concepts of Bayesian methods 
  • Probability 
  • Joint probability
  • Conditional probability with Bayes' theorem 
  • The naive Bayes algorithm 
  • The naive Bayes classification 
  • The Laplace estimator
  • Using numeric features with naive Bayes

3. Understanding decision trees 

  • Divide and conquer 
  • The C5.0 decision tree algorithm 
  • Choosing the best split 
  • Pruning the decision tree

4. Understanding classification rules 

  • Separate and conquer 
  • The One Rule algorithm 
  • The RIPPER algorithm 
  • Rules from decision trees

5. Understanding regression 

  • Simple linear regression 
  • Ordinary least squares estimation 
  • Correlations 
  • Multiple linear regression

6. Understanding regression trees and model trees 

  • Adding regression to trees

7. Understanding neural networks 

  • From biological to artificial neurons 
  • Activation functions 
  • Network topology 
  • The number of layers 
  • The direction of information travel 
  • The number of nodes in each layer 
  • Training neural networks with backpropagation

8. Understanding Support Vector Machines 

  • Classification with hyperplanes 
  • Finding the maximum margin 
  • The case of linearly separable data 
  • The case of non-linearly separable data 
  • Using kernels for non-linear spaces

9. Understanding association rules 

  • The Apriori algorithm for association rule learning 
  • Measuring rule interest – support and confidence 
  • Building a set of rules with the Apriori principle

10. Understanding clustering

  • Clustering as a machine learning task
  • The k-means algorithm for clustering 
  • Using distance to assign and update clusters 
  • Choosing the appropriate number of clusters

11. Measuring performance for classification 

  • Working with classification prediction data 
  • A closer look at confusion matrices 
  • Using confusion matrices to measure performance 
  • Beyond accuracy – other measures of performance 
  • The kappa statistic 
  • Sensitivity and specificity 
  • Precision and recall 
  • The F-measure 
  • Visualizing performance tradeoffs 
  • ROC curves 
  • Estimating future performance 
  • The holdout method 
  • Cross-validation 
  • Bootstrap sampling

12. Tuning stock models for better performance 

  • Using caret for automated parameter tuning 
  • Creating a simple tuned model 
  • Customizing the tuning process 
  • Improving model performance with meta-learning 
  • Understanding ensembles 
  • Bagging 
  • Boosting 
  • Random forests 
  • Training random forests
  • Evaluating random forest performance

13. Deep Learning

  • Three Classes of Deep Learning
  • Deep Autoencoders
  • Pre-trained Deep Neural Networks
  • Deep Stacking Networks

14. Discussion of Specific Application Areas