# ARTIFICIAL INTELLIGENCE

Artificial intelligence is Intelligence displayed by machines, in contrast with the natural intelligence displayed by humans and other animals.

# What you learn?

The only Artificial Intelligence training program where you get in-depth knowledge of all the 17 modules of Artificial Intelligence with practical hands-on exposure.

# Introduction to Artificial intelligence

AI is an interdisciplinary field that requires knowledge in computer science, linguistics, psychology, biology, philosophy and so on for serious research.

- Why do we need to study AI?
- Applications of AI
- Branches of AI
- Defining intelligence using Turing Test
- Making machines think like humans
- Building rational agents
- General Problem Solver
- Building an intelligent agent

# Introduction to Numpy

NumPy is the fundamental package for scientific computing with Python. It contains among other things: a powerful N-dimensional array object. sophisticated (broadcasting) functions.

- NumPy Standard Data Types
- The Basics of NumPy Arrays
- NumPy Array Attributes
- Array Indexing: Accessing Single Elements
- Array Slicing: Accessing Subarrays
- Reshaping of Arrays
- Array Concatenation and Splitting
- Computation on NumPy Arrays: Universal Functions
- The Slowness of Loops
- Introducing UFuncs
- Exploring NumPy’s UFuncs
- Advanced Ufunc Features
- Ufuncs: Learning More
- Aggregations: Min, Max, and Everything in Between
- Summing the Values in an Array
- Minimum and Maximum
- Computation on Arrays: Broadcasting
- Introducing Broadcasting
- Rules of Broadcasting
- Broadcasting in Practice
- Comparisons, Masks, and Boolean Logic
- Comparison Operators as ufuncs
- Working with Boolean Arrays
- Boolean Arrays as Masks
- Fancy Indexing
- Exploring Fancy Indexing
- Combined Indexing
- Modifying Values with Fancy Indexing

# Data Manipulation with Pandas

Pandas a widely used tool for data manipulation in python. It allows us to impute missing values, binning, pivot tables, sorting, visualise etc.

- Installing and Using Pandas
- Introducing Pandas Objects
- The Pandas Series Object
- The Pandas DataFrame Object
- The Pandas Index Object
- Data Indexing and Selection
- Data Selection in Series
- Data Selection in DataFrame
- Operating on Data in Pandas
- Ufuncs: Index Preservation
- UFuncs: Index Alignment
- Ufuncs: Operations Between DataFrame and Series
- Handling Missing Data
- Trade-Offs in Missing Data Conventions
- Missing Data in Pandas
- Operating on Null Values
- Hierarchical Indexing
- A Multiply Indexed Series
- Methods of MultiIndex Creation
- Indexing and Slicing a MultiIndex
- Rearranging Multi-Indices
- Data Aggregations on Multi-Indices
- Combining Datasets: Concat and Append
- Recall: Concatenation of NumPy Arrays
- Simple Concatenation with pd.concat
- Combining Datasets: Merge and Join
- Relational Algebra
- Categories of Joins
- Specification of the Merge Key
- Specifying Set Arithmetic for Joins
- Overlapping Column Names: The suffixes Keyword
- Aggregation and Grouping
- Simple Aggregation in Pandas
- GroupBy: Split, Apply, Combine
- Pivot Tables
- Motivating Pivot Tables
- Pivot Tables by Hand
- Pivot Table Syntax
- Example: Birthrate Data
- Vectorized String Operations
- Introducing Pandas String Operations
- Tables of Pandas String Methods
- Working with Time Series
- Dates and Times in Python
- Pandas Time Series: Indexing by Time
- Pandas Time Series Data Structures
- Frequencies and Offsets
- Exercise : Analyzing titanic accident data

# Visualisation with matplotlib

Matplotlib is a multi-platform data visualisation library built on NumPy arrays, and designed to work with the broader SciPy stack.

- General Matplotlib Tips
- Importing matplotlib
- Setting Styles
- show() or No show()? How to Display Your Plots
- Saving Figures to File
- Two Interfaces for the Price of One
- Simple Line Plots
- Adjusting the Plot: Line Colours and Styles
- Adjusting the Plot: Axes Limits
- Labeling Plots
- Simple Scatter Plots
- Scatter Plots with plt.plot
- Scatter Plots with plt.scatter
- plot Versus scatter: A Note on Efficiency
- Visualising Errors
- Basic Error bars
- Continuous Errors
- Density and Contour Plots
- Visualising a Three-Dimensional Function
- Histograms, Binnings, and Density
- Two-Dimensional Histograms and Binnings
- Customising Plot Legends
- Choosing Elements for the Legend
- Legend for Size of Points
- Multiple Legends
- Customising Colour bars
- Customising Colour bars
- Example: Handwritten Digits
- Multiple Subplots
- plt.axes: Subplots by Hand
- plt.subplot: Simple Grids of Subplots
- plt.subplots: The Whole Grid in One Go
- plt.GridSpec: More Complicated Arrangements
- Text and Annotation
- Example: Effect of Holidays on US Births
- Transforms and Text Position
- Arrows and Annotation
- Customising Ticks
- Major and Minor Ticks
- Hiding Ticks or Labels
- Reducing or Increasing the Number of Ticks

# Machine Learning

Machine learning is a field of computer science that gives computers the ability to learn without being explicitly programme.

- What Is Machine Learning?
- Categories of Machine Learning
- Supervised Machine Learning
- Unsupervised Machine Learning
- Examples of products using machine learning

# Introduction scikit-learn

The scikit-learn library is one of the most popular platforms for everyday machine learning and data science.

- Data Representation in Scikit-Learn
- Understanding well known inbuilt datasets
- Feature data, Target data, Dependent variable

# Hyperparameters and Model validation

In order to make an informed choice, we need a way to validate that our model and our hyperparameters are a good fit to the data.

- Thinking About Model Validation
- Cross Validation
- Selecting the Best Model
- Learning Curves
- Grid Search

# Feature Engineering

Feature engineering is the process of using domain knowledge of the data to create features that make machine learning algorithms work.

- Categorical Features
- Text Features
- Image Features
- Derived Features
- Imputation of Missing Data
- Feature Pipelines – Transformer & Estimator

# Linear Regression

Linear regression is a linear system and the coefficients can be calculated analytically using linear algebra.

- Using House Price Prediction
- Simple Linear Regression
- Polynomial Linear Regression
- Cost Function of Linear Regression
- Understanding linear regression using matrix

# Logistic Regression

Logistic regression is another technique borrowed by machine learning from the field of statistics. It is the go-to method for binary classification problems.

- Using Iris datset to understand logistic regression
- Concept of linearly separable data
- Cost Function & Mathematical Foundation

# Naive Bayes classification

In machine learning, naive Bayes classifiers are a family of simple probabilistic classifiers based on applying Bayes’ theorem with strong (naive) independence assumptions between the features.

- Bayesian classification
- Gaussian Naive Bayes
- Multinomial Naive Bayes
- When to Use Naive Bayes
- Application : Identify category from text

# k-Means Clustering

K-means clustering is a type of unsupervised learning, which is used when you have un labeled data. The goal of this algorithm is to find groups in the data, with the number of groups represented by the variable K.

- Introducing k-Means
- Understanding cost function for unsupervised algorithms
- Elbow rule to decide number of clusters
- Application : Image compression
- Application : Detection of number of characters in arabic

# Decision trees and Random forests/span>

Decision Trees and Random Forests. Decision trees are a type of model used for both classification and regression.

- Understanding Decision trees
- Printing tree
- Motivating Random Forests: Decision Trees
- Ensembles of Estimators: Random Forests
- Random Forest Regression
- Application: Random Forest for Classifying Digits
- Other Boosting techniques – AdaBoost, Gradient Tree Boosting

# Web Scraping

Web scraping is data scraping used for extracting data from websites. Web scraping software may access the World Wide Web directly using the Hypertext Transfer Protocol, or through a web browser.

- Understanding BeautifulSoup
- Scraping for text, images

# Building Recommender systems

Recommender systems are commonly used in an artificial intelligence context. Their ability to provide insight, predict events, and highlight correlations are typically responsible for their use in AI.

- Extracting the nearest neighbours
- Building a K-Nearest neighbours classifier
- Computing similarity scores
- Finding similar users using collaborative filtering
- Building a movie recommendation system

# Genetic Algorithms

Genetic Algorithms (GAs) are adaptive heuristic search algorithm based on the evolutionary ideas of natural selection and genetics.

- Fundamental concepts in genetic algorithms
- Generating a bit pattern with predefined parameters
- Visualising the evolution
- Solving the symbol regression problem
- Building an intelligent robot controller

# Natural Language Processing

NLP helps computers read and respond by simulating the human ability to understand the everyday

language that people use to communicate.

- Tokenising text data
- Converting words to their base forms using stemming
- Converting words to their base forms using lemmatizations
- Dividing text data into chunks
- Extracting the frequency of terms using a Bag of Words model
- Building a category predictor
- Constructing a gender identifier
- Building a sentiment analyser
- Topic modelling using Latent Dirichlet Allocation