SlideShare a Scribd company logo
2018/19 - 1
Carlos J. Costa (ISEG)
MACHINE LEARNING
(2019/2020)
Carlos J. Costa
2019/20 - 2
Carlos J. Costa (ISEG)
Machine Learning
• It is as a subset of artificial intelligence.
• It is the scientific study of algorithms that
computer systems use to perform a
specific task without using explicit
instructions
• Study and construction of algorithms that
can learn from and make predictions on
data
2019/20 - 3
Carlos J. Costa (ISEG)
Machine Learning
2019/20 - 4
Carlos J. Costa (ISEG)
Analogizers
 Analogizers are interested in mapping to
new situations.
 They are influenced by psychology.
 Analogizers use
 k-nearest neighbor, and
 support vector machines
2019/20 - 5
Carlos J. Costa (ISEG)
Bayesians
 Bayesians use probabilistic inference.
 They are influenced by statistics.
 Bayesians use
 Hidden Markov Models,
 graphical models, and
 causal inference.
2019/20 - 6
Carlos J. Costa (ISEG)
Connectionists
 Connectionists use neural networks.
 They are influenced by neuroscience.
 Connectionists rely on
 deep learning technologies, including CNN
(Convolutional Neural Networks),
RNN(Recurrent Neural Networks), and
 deep reinforcement learning
2019/20 - 7
Carlos J. Costa (ISEG)
Evolutionaries
 Evolutionaries are interested in evolving
structure.
 They are influenced by biology.
 Evolutionaries use
 genetic algorithms,
 evolutionary programming, and
 evolutionary game theory.
2019/20 - 8
Carlos J. Costa (ISEG)
Symbolists
 Symbolists use formal systems.
 They are influenced by computer science,
linguistics, and analytic philosophy.
 Symbolists use
 decision trees,
 production rule systems, and
 inductive logic programming
2019/20 - 9
Carlos J. Costa (ISEG)
Machine Learning
2019/20 - 10
Carlos J. Costa (ISEG)
Machine Learning
2019/20 - 11
Carlos J. Costa (ISEG)
Machine Learning
 Supervised learning
 It is the machine learning task of learning a
function that maps an input to an output based
on example input-output pairs (Hinton & Sejnowski,1999)
 Classification
 Regression
2019/20 - 12
Carlos J. Costa (ISEG)
Machine Learning
 Unsupervised learning
 The goal of unsupervised learning is to extract an
efficient internal representation of the statistical
structure implicit in the inputs. (Hinton &
Sejnowski,1999)
 Clustering
 Dimensional Reduction
2019/20 - 13
Carlos J. Costa (ISEG)
Machine Learning
 Reinforcement Learning (RL)
 There are 3 main components:
 Agent,
 Environment
 Actions (performed by the agent)
 The purpose of RL is to train an intelligent agent that is capable of
navigating its environment and performing actions that arrives at the end
goal.
 Actions changes the state of the environment and the agent receives
rewards or punishments
 The challenge of the agent is to maximize the amount of rewards at the
end of a specific period
2019/20 - 14
Carlos J. Costa (ISEG)
Machine Learning
 Train- Validate-Test
 Step 1: Making the model examine data.
 Step 2: Making the model learn from its
mistakes.
 Step 3: Making a conclusion on how well
the model performs
2019/20 - 15
Carlos J. Costa (ISEG)
Machine Learning
 Data Processing and Machine Learning
 Libraries: Numpy, Pandas, statsmodels,
sklearn, networkx
 Tools: IDE – Jupiter
IDE: Integrated
Development
Environment
2018/19 - 16
Carlos J. Costa (ISEG)
REGRESSIONS
Carlos J. Costa
2019/20 - 17
Carlos J. Costa (ISEG)
Regression
 Is a set of statistical processes for
estimating the relationships among
variables.
 Dependent variable,outcome variable,
target
 Independent variables, predictor,
covariates, or features
2019/20 - 18
Carlos J. Costa (ISEG)
Regression
 simple regression/multivariate regression
2019/20 - 19
Carlos J. Costa (ISEG)
Regression
 .Linear/non linear
2019/20 - 20
Carlos J. Costa (ISEG)
Regression
2018/19 - 21
Carlos J. Costa (ISEG)
CLASSIFICATION
Carlos J. Costa
2019/20 - 22
Carlos J. Costa (ISEG)
Classification
 Supervised learning approach
 Categorizing some unknown items into discrete
set of categories or “classes”
 The target attribute is a categorical variable
 To solve a classification problem
 identify the target or class, which is the variable to predict.
 the target balancing is mandatory
 choose the best training strategy to train classification models.
2019/20 - 23
Carlos J. Costa (ISEG)
Classification
 Churn (not churn rate) depends from several
characteristics of the client, product and
communication.
2019/20 - 24
Carlos J. Costa (ISEG)
Classification
 What is the best drug according to specific
characteristics of the patient
2019/20 - 25
Carlos J. Costa (ISEG)
Classification
Classification algorithms in machine learning:
 Decision Trees
 Naive Bayes
 Linear Discriminate Analysis
 K -Near Neighbor (KNN)
 Logistic Regression
 Neural Networks
 Support Vector Machines (SVM)
2019/20 - 26
Carlos J. Costa (ISEG)
Logistics Regression
• A regression that having binary dependent
variable
• in its basic form, uses a logistic function to
model a binary dependent variable
2019/20 - 27
Carlos J. Costa (ISEG)
Random Forest
• are an ensemble learning method for
classification, regression and other tasks
• operates by constructing a multitude of decision
trees at training time
• outputting the class that is the mode of the
classes (classification) or mean prediction
(regression) of the individual trees.
2018/19 - 28
Carlos J. Costa (ISEG)
CLUSTERS ANALYSIS
Carlos J. Costa
2019/20 - 29
Carlos J. Costa (ISEG)
Cluster Analysis
• is a multivariate method
• aims to classify a sample of subjects (or
objects) into several different groups such that
similar subjects are placed in the same group
• based on a set of measured variables
2019/20 - 30
Carlos J. Costa (ISEG)
K-means Clustering
 1.Select K (i.e. 2) random points as cluster centres
called centroids
 3. Determine the new cluster centre by computing the
average of the assigned points
 2. Assign each data point to the closest
cluster by calculating its distance with
respect to each centroid
 4. Repeat steps 2 and 3 until none of the
cluster assignments change
2019/20 - 31
Carlos J. Costa (ISEG)
WCSS
 Within-Cluster-Sum-of-Squares (WCSS)- Implicit objective function in k-
Means measures sum of distances of observations from their cluster
centroids.
Yi is centroid for observation Xi.
 Given that k-Means has no in-built preference for right number of clusters,
following are some of the common ways k can be selected:
 Domain Knowledge
 Rule of Thumb
 Elbow-Method using WCSS
 Cluster Quality using Silhouette Coefficient
2019/20 - 32
Carlos J. Costa (ISEG)
References
 Albon, Ch. (2018) Machine Learning with Python Cookbook. O’Reilly
 Domingos, P. (2015) The Master Algorithm, Penguin Books
 Hinton, J.; Sejnowski, T.(1999). Unsupervised Learning: Foundations of
Neural Computation. MIT Press
 Morgan; P. (2019) Data Science from Scratch with Python, AI Science
 Murphy, K. P. (2012). Machine Learning: A Probabilistic Perspective (1
edition). Cambridge, MA: The MIT Press.
 Otte, E.; Rousseau, R. (2002). "Social network analysis: a powerful strategy,
also for the information sciences". Journal of Information Science. 28 (6):
441–453. doi:10.1177/016555150202800601.
 Stuart J. R., Norvig, P. (2010) Artificial Intelligence: A Modern Approach,
Third Edition, Prentice Hall ISBN 9780136042594.

More Related Content

PPTX
Machine Learning Contents.pptx
PDF
Machine Learning ebook.pdf
PDF
Machine Learning for Everyone
PPTX
Machine Learning basics
PPTX
Supervised and Unsupervised Learning In Machine Learning | Machine Learning T...
PPTX
Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...
PPTX
Machine Learning Tutorial Part - 2 | Machine Learning Tutorial For Beginners ...
PPTX
Hierarchical Clustering | Hierarchical Clustering in R |Hierarchical Clusteri...
Machine Learning Contents.pptx
Machine Learning ebook.pdf
Machine Learning for Everyone
Machine Learning basics
Supervised and Unsupervised Learning In Machine Learning | Machine Learning T...
Machine Learning Tutorial | Machine Learning Basics | Machine Learning Algori...
Machine Learning Tutorial Part - 2 | Machine Learning Tutorial For Beginners ...
Hierarchical Clustering | Hierarchical Clustering in R |Hierarchical Clusteri...

What's hot (20)

PPT
Machine Learning presentation.
PDF
Supervised Machine Learning With Types And Techniques
PPTX
Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...
PDF
What is Machine Learning | Introduction to Machine Learning | Machine Learnin...
PDF
Lecture 1: What is Machine Learning?
PPTX
Machine learning applications nurturing growth of various business domains
PPTX
Getting Started with Azure AutoML
PDF
Intro to machine learning
PDF
Real World End to End machine Learning Pipeline
PDF
Understanding LLMOps-Large Language Model Operations
PDF
The Evolution of AutoML
PDF
Machine-Learning-A-Z-Course-Downloadable-Slides-V1.5.pdf
PPTX
Introduction to Auto ML
PPTX
Wrapper feature selection method
PPT
Machine learning
PDF
Machine Learning Deep Learning AI and Data Science
PDF
Machine Learning Pipelines
PDF
Security in the age of Artificial Intelligence
PPTX
Machine Learning Algorithms | Machine Learning Tutorial | Data Science Algori...
PPTX
Machine Can Think
Machine Learning presentation.
Supervised Machine Learning With Types And Techniques
Machine Learning Tutorial Part - 1 | Machine Learning Tutorial For Beginners ...
What is Machine Learning | Introduction to Machine Learning | Machine Learnin...
Lecture 1: What is Machine Learning?
Machine learning applications nurturing growth of various business domains
Getting Started with Azure AutoML
Intro to machine learning
Real World End to End machine Learning Pipeline
Understanding LLMOps-Large Language Model Operations
The Evolution of AutoML
Machine-Learning-A-Z-Course-Downloadable-Slides-V1.5.pdf
Introduction to Auto ML
Wrapper feature selection method
Machine learning
Machine Learning Deep Learning AI and Data Science
Machine Learning Pipelines
Security in the age of Artificial Intelligence
Machine Learning Algorithms | Machine Learning Tutorial | Data Science Algori...
Machine Can Think
Ad

Similar to Machine Learning (20)

PDF
Deployment of ID3 decision tree algorithm for placement prediction
PDF
Deep Learning Applications in Finance.pdf
PDF
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...
PDF
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...
PDF
A Hybrid Data Clustering Approach using K-Means and Simplex Method-based Bact...
PPTX
AlgorithmsModelsNov13.pptx
PDF
Machine learning and_neural_network_lecture_slide_ece_dku
PDF
IRJET- Customer Segmentation from Massive Customer Transaction Data
PDF
Statistical performance assessment of supervised machine learning algorithms ...
PDF
Premeditated Initial Points for K-Means Clustering
PPTX
07_BayesianClassifier.pptx
PDF
Machine Learning Algorithms for Image Classification of Hand Digits and Face ...
PPT
concept desciption.ppt-Basket data.ppt data warehouse-Data Mining
PPT
CS583-unsupervised-learning.ppt
PPT
CS583-unsupervised-learning.ppt learning
PDF
Partial Object Detection in Inclined Weather Conditions
PPT
Avihu Efrat's Viola and Jones face detection slides
PDF
A Novel Learning Formulation in a unified Min-Max Framework for Computer Aide...
PDF
Application of K-Means Clustering Algorithm for Classification of NBA Guards
PPTX
Data Mining Primitives, Languages & Systems
Deployment of ID3 decision tree algorithm for placement prediction
Deep Learning Applications in Finance.pdf
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...
IMPROVING SUPERVISED CLASSIFICATION OF DAILY ACTIVITIES LIVING USING NEW COST...
A Hybrid Data Clustering Approach using K-Means and Simplex Method-based Bact...
AlgorithmsModelsNov13.pptx
Machine learning and_neural_network_lecture_slide_ece_dku
IRJET- Customer Segmentation from Massive Customer Transaction Data
Statistical performance assessment of supervised machine learning algorithms ...
Premeditated Initial Points for K-Means Clustering
07_BayesianClassifier.pptx
Machine Learning Algorithms for Image Classification of Hand Digits and Face ...
concept desciption.ppt-Basket data.ppt data warehouse-Data Mining
CS583-unsupervised-learning.ppt
CS583-unsupervised-learning.ppt learning
Partial Object Detection in Inclined Weather Conditions
Avihu Efrat's Viola and Jones face detection slides
A Novel Learning Formulation in a unified Min-Max Framework for Computer Aide...
Application of K-Means Clustering Algorithm for Classification of NBA Guards
Data Mining Primitives, Languages & Systems
Ad

More from Carlos J. Costa (20)

PPTX
Generative AI
PDF
IA Generativa
PDF
Power BI Computing Languages
PDF
Python Scikit-Learn
PDF
Python Pandas
PDF
Python Numpy
PPTX
Open Source Robotics as Booster to Creativity
PPTX
Introdução à Gestão de Projetos - Conceitos
PPTX
Pós-Graduação em Gestão de Projetos
PPTX
Introdução à Gestão de Projeto
PDF
Usability
PDF
Wordpress
PPT
Client-Side Web Development - An Overview
PPTX
ODP
Web Page Development - An Overview
PDF
Modelo Relacional
PDF
Globalization
PDF
Information systems organization
Generative AI
IA Generativa
Power BI Computing Languages
Python Scikit-Learn
Python Pandas
Python Numpy
Open Source Robotics as Booster to Creativity
Introdução à Gestão de Projetos - Conceitos
Pós-Graduação em Gestão de Projetos
Introdução à Gestão de Projeto
Usability
Wordpress
Client-Side Web Development - An Overview
Web Page Development - An Overview
Modelo Relacional
Globalization
Information systems organization

Recently uploaded (20)

PPTX
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
PPTX
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
PDF
Lecture1 pattern recognition............
PPTX
Supervised vs unsupervised machine learning algorithms
PPTX
Data_Analytics_and_PowerBI_Presentation.pptx
PDF
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
PPTX
IBA_Chapter_11_Slides_Final_Accessible.pptx
PPTX
Computer network topology notes for revision
PPTX
oil_refinery_comprehensive_20250804084928 (1).pptx
PPTX
05. PRACTICAL GUIDE TO MICROSOFT EXCEL.pptx
PPTX
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
PPTX
Introduction-to-Cloud-ComputingFinal.pptx
PDF
Mega Projects Data Mega Projects Data
PPTX
Database Infoormation System (DBIS).pptx
PPTX
Moving the Public Sector (Government) to a Digital Adoption
PPTX
Major-Components-ofNKJNNKNKNKNKronment.pptx
PPTX
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
PPT
Quality review (1)_presentation of this 21
PPTX
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
PPTX
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
Lecture1 pattern recognition............
Supervised vs unsupervised machine learning algorithms
Data_Analytics_and_PowerBI_Presentation.pptx
TRAFFIC-MANAGEMENT-AND-ACCIDENT-INVESTIGATION-WITH-DRIVING-PDF-FILE.pdf
IBA_Chapter_11_Slides_Final_Accessible.pptx
Computer network topology notes for revision
oil_refinery_comprehensive_20250804084928 (1).pptx
05. PRACTICAL GUIDE TO MICROSOFT EXCEL.pptx
iec ppt-1 pptx icmr ppt on rehabilitation.pptx
Introduction-to-Cloud-ComputingFinal.pptx
Mega Projects Data Mega Projects Data
Database Infoormation System (DBIS).pptx
Moving the Public Sector (Government) to a Digital Adoption
Major-Components-ofNKJNNKNKNKNKronment.pptx
advance b rammar.pptxfdgdfgdfsgdfgsdgfdfgdfgsdfgdfgdfg
Quality review (1)_presentation of this 21
DISORDERS OF THE LIVER, GALLBLADDER AND PANCREASE (1).pptx
Introduction to Firewall Analytics - Interfirewall and Transfirewall.pptx

Machine Learning

  • 1. 2018/19 - 1 Carlos J. Costa (ISEG) MACHINE LEARNING (2019/2020) Carlos J. Costa
  • 2. 2019/20 - 2 Carlos J. Costa (ISEG) Machine Learning • It is as a subset of artificial intelligence. • It is the scientific study of algorithms that computer systems use to perform a specific task without using explicit instructions • Study and construction of algorithms that can learn from and make predictions on data
  • 3. 2019/20 - 3 Carlos J. Costa (ISEG) Machine Learning
  • 4. 2019/20 - 4 Carlos J. Costa (ISEG) Analogizers  Analogizers are interested in mapping to new situations.  They are influenced by psychology.  Analogizers use  k-nearest neighbor, and  support vector machines
  • 5. 2019/20 - 5 Carlos J. Costa (ISEG) Bayesians  Bayesians use probabilistic inference.  They are influenced by statistics.  Bayesians use  Hidden Markov Models,  graphical models, and  causal inference.
  • 6. 2019/20 - 6 Carlos J. Costa (ISEG) Connectionists  Connectionists use neural networks.  They are influenced by neuroscience.  Connectionists rely on  deep learning technologies, including CNN (Convolutional Neural Networks), RNN(Recurrent Neural Networks), and  deep reinforcement learning
  • 7. 2019/20 - 7 Carlos J. Costa (ISEG) Evolutionaries  Evolutionaries are interested in evolving structure.  They are influenced by biology.  Evolutionaries use  genetic algorithms,  evolutionary programming, and  evolutionary game theory.
  • 8. 2019/20 - 8 Carlos J. Costa (ISEG) Symbolists  Symbolists use formal systems.  They are influenced by computer science, linguistics, and analytic philosophy.  Symbolists use  decision trees,  production rule systems, and  inductive logic programming
  • 9. 2019/20 - 9 Carlos J. Costa (ISEG) Machine Learning
  • 10. 2019/20 - 10 Carlos J. Costa (ISEG) Machine Learning
  • 11. 2019/20 - 11 Carlos J. Costa (ISEG) Machine Learning  Supervised learning  It is the machine learning task of learning a function that maps an input to an output based on example input-output pairs (Hinton & Sejnowski,1999)  Classification  Regression
  • 12. 2019/20 - 12 Carlos J. Costa (ISEG) Machine Learning  Unsupervised learning  The goal of unsupervised learning is to extract an efficient internal representation of the statistical structure implicit in the inputs. (Hinton & Sejnowski,1999)  Clustering  Dimensional Reduction
  • 13. 2019/20 - 13 Carlos J. Costa (ISEG) Machine Learning  Reinforcement Learning (RL)  There are 3 main components:  Agent,  Environment  Actions (performed by the agent)  The purpose of RL is to train an intelligent agent that is capable of navigating its environment and performing actions that arrives at the end goal.  Actions changes the state of the environment and the agent receives rewards or punishments  The challenge of the agent is to maximize the amount of rewards at the end of a specific period
  • 14. 2019/20 - 14 Carlos J. Costa (ISEG) Machine Learning  Train- Validate-Test  Step 1: Making the model examine data.  Step 2: Making the model learn from its mistakes.  Step 3: Making a conclusion on how well the model performs
  • 15. 2019/20 - 15 Carlos J. Costa (ISEG) Machine Learning  Data Processing and Machine Learning  Libraries: Numpy, Pandas, statsmodels, sklearn, networkx  Tools: IDE – Jupiter IDE: Integrated Development Environment
  • 16. 2018/19 - 16 Carlos J. Costa (ISEG) REGRESSIONS Carlos J. Costa
  • 17. 2019/20 - 17 Carlos J. Costa (ISEG) Regression  Is a set of statistical processes for estimating the relationships among variables.  Dependent variable,outcome variable, target  Independent variables, predictor, covariates, or features
  • 18. 2019/20 - 18 Carlos J. Costa (ISEG) Regression  simple regression/multivariate regression
  • 19. 2019/20 - 19 Carlos J. Costa (ISEG) Regression  .Linear/non linear
  • 20. 2019/20 - 20 Carlos J. Costa (ISEG) Regression
  • 21. 2018/19 - 21 Carlos J. Costa (ISEG) CLASSIFICATION Carlos J. Costa
  • 22. 2019/20 - 22 Carlos J. Costa (ISEG) Classification  Supervised learning approach  Categorizing some unknown items into discrete set of categories or “classes”  The target attribute is a categorical variable  To solve a classification problem  identify the target or class, which is the variable to predict.  the target balancing is mandatory  choose the best training strategy to train classification models.
  • 23. 2019/20 - 23 Carlos J. Costa (ISEG) Classification  Churn (not churn rate) depends from several characteristics of the client, product and communication.
  • 24. 2019/20 - 24 Carlos J. Costa (ISEG) Classification  What is the best drug according to specific characteristics of the patient
  • 25. 2019/20 - 25 Carlos J. Costa (ISEG) Classification Classification algorithms in machine learning:  Decision Trees  Naive Bayes  Linear Discriminate Analysis  K -Near Neighbor (KNN)  Logistic Regression  Neural Networks  Support Vector Machines (SVM)
  • 26. 2019/20 - 26 Carlos J. Costa (ISEG) Logistics Regression • A regression that having binary dependent variable • in its basic form, uses a logistic function to model a binary dependent variable
  • 27. 2019/20 - 27 Carlos J. Costa (ISEG) Random Forest • are an ensemble learning method for classification, regression and other tasks • operates by constructing a multitude of decision trees at training time • outputting the class that is the mode of the classes (classification) or mean prediction (regression) of the individual trees.
  • 28. 2018/19 - 28 Carlos J. Costa (ISEG) CLUSTERS ANALYSIS Carlos J. Costa
  • 29. 2019/20 - 29 Carlos J. Costa (ISEG) Cluster Analysis • is a multivariate method • aims to classify a sample of subjects (or objects) into several different groups such that similar subjects are placed in the same group • based on a set of measured variables
  • 30. 2019/20 - 30 Carlos J. Costa (ISEG) K-means Clustering  1.Select K (i.e. 2) random points as cluster centres called centroids  3. Determine the new cluster centre by computing the average of the assigned points  2. Assign each data point to the closest cluster by calculating its distance with respect to each centroid  4. Repeat steps 2 and 3 until none of the cluster assignments change
  • 31. 2019/20 - 31 Carlos J. Costa (ISEG) WCSS  Within-Cluster-Sum-of-Squares (WCSS)- Implicit objective function in k- Means measures sum of distances of observations from their cluster centroids. Yi is centroid for observation Xi.  Given that k-Means has no in-built preference for right number of clusters, following are some of the common ways k can be selected:  Domain Knowledge  Rule of Thumb  Elbow-Method using WCSS  Cluster Quality using Silhouette Coefficient
  • 32. 2019/20 - 32 Carlos J. Costa (ISEG) References  Albon, Ch. (2018) Machine Learning with Python Cookbook. O’Reilly  Domingos, P. (2015) The Master Algorithm, Penguin Books  Hinton, J.; Sejnowski, T.(1999). Unsupervised Learning: Foundations of Neural Computation. MIT Press  Morgan; P. (2019) Data Science from Scratch with Python, AI Science  Murphy, K. P. (2012). Machine Learning: A Probabilistic Perspective (1 edition). Cambridge, MA: The MIT Press.  Otte, E.; Rousseau, R. (2002). "Social network analysis: a powerful strategy, also for the information sciences". Journal of Information Science. 28 (6): 441–453. doi:10.1177/016555150202800601.  Stuart J. R., Norvig, P. (2010) Artificial Intelligence: A Modern Approach, Third Edition, Prentice Hall ISBN 9780136042594.