Syllabus#

Course Title:#

CE 5319 Machine Learning for Civil Engineers

Catalog Description:#

CE 5319: Machine Learning for Civil Engineers (3:3:0). Application of machine learning concepts and algorithms in Civil Engineering.

Prerequisites:#

ENGR 1330 or equivalent
Graduate Standing (any discipline)
CE 5315 or instructor permission

Course Sections#

Lesson time, days, and location:

  1. Section 001; CRN 76930; 1230-1420 T,Th ; Mechanical Engineering North Room 146 (F2F On campus students)

  2. Section D01; CRN 76931; 1230-1420 T,Th ; ASYNC distance (Off campus Not in Lubbock)

Course Instructor:#

Instructor: Theodore G. Cleveland, Ph.D., P.E., M. ASCE, F. EWRI

Email: theodore.cleveland@ttu.edu (put CE 5319 into the subject line for email related to this class)

Office location: CECE 203F

Office hours: TBD M,T,W,Th,F ; CE 203F

Textbooks:#

  1. Andriy Burkov (2019), The Hundred-Page Machine Learning Book, Kindle Direct Publishing} The link is to Amazon to buy a copy. The book is available free on-line with some searching; but the author should be compensated - its not very expensive, so buy the book.

  2. Rashid, Tariq. (2016), Make Your Own Neural Network. Kindle Edition. . The book is available on Amazon, its not too expensive, so buy the book. Most of the Neural Network part of the course is derived from this book, its worth having.

Class Server:#

Nearly all the course content is stored on the course server; the landing page is http://54.243.252.9/ce-5319-webroot. Nearly all the scripts demonstrated are run on an identical server that has a non-persistent URL - changes if meaningful are transmitted to the class server as needed. This structure is to protect the static content and allow recovery if we break something.

Instructor’s Notes#

The lecture notes developed by the instructor are in a JupyterBook housed on the class server, the URL to the book is http://54.243.252.9/ce-5319-webroot/MLBE4CE/_build/html/intro.html

Course Schedule (Tentative):#

Date

Lesson

Readings

01_MMM

Introduction
- What is Machine Learing
- Computational environment
- AI assisted programming

- Burkov, A. (2019) The One Hundred Page Machine Learning Book pp. XX-XX
- Rashid, Tariq. (2016) Make Your Own Neural Network. Kindle Edition. pp XX-XX
- Machine Learning Theory and Algorithms pp 19-22
- Machine Learning Techniques for Civil Engineering Problems

01_MMM

Exploratory Data Analysis

- Tukey, J (1977). Exploratory Data Analysis. Addison-Wessley (Copy)

01_MMM

Data Preparation

- Chan, J. “Learn Python in One Day and Learn It Well. Python for Beginners with Hands-on Projects.”
- Read a file line by line
- Read a file line by line (PLR approach)
- Reading and writing files
- Python Files I/O
- Working with files in Python
- File handling in Python
- File operations in Python
- How to read a text file from a URL in Python
- Downloading files from web using Python
- An Efficient Way to Read Data from the Web Directly into Python without having to download it to your hard drive
- Web Requests with Python (using http and/or https)
- Troubleshooting certificate errors (really common with https requests)

01_MMM

Linear Regression
- Ordinary Least Squares

- Burkov, A. (2019) The One Hundred Page Machine Learning Book pp. 21-25
- Rashid, Tariq. (2016) Make Your Own Neural Network. Kindle Edition. pp XX-XX
- Chan, Jamie. Machine Learning With Python For Beginners: A Step-By-Step Guide with Hands-On Projects pp. 106-118.

01_MMM

Linear Regression
- topic
- topic

- StructuraL Response Prediction Engine to Support Advanced Seismic Risk Assessment
- Two-Stage Degradation Assessment and Prediction Method for Aircraft Engines…
- Machine Learning Theory and Algorithms pp 22-27
- Applying Regression Analysis to Predict and Classify Construction Cycle Time

01_MMM

Optimization Methods
- Search Methods
- Gradient Methods

- Applied Dynamic Programming Bellman and Dreyfus (1962) pp. 1-21
- Hooke, R., & Jeeves, T. A. (1961). “Direct Search” Solution of Numerical and Statistical Problems. Journal of the ACM, 8(2), 212–229.
- Numerical Optimization by Nocedal & Wright – Chapter 9
- Scipy Optimize Documentation
- Powell, M. J. D. (1964). An efficient method for finding the minimum of a function of several variables without calculating derivatives. The Computer Journal, 7(2), 155–162.
- Nelder, J.A., and Mead, R. (1965). A simplex method for function minimization. The Computer Journal, 7(4), 308–313.
- Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (1986). Numerical Recipes: The Art of Scientific Computing. 1ed. New York: Cambridge University Press. pp. 402-406 ISBN 0-521-30811-9.

01_MMM

Non-Linear Regression
- Low Dimensional Methods

01_MMM

Non-Linear Regression
- High Dimensional Methods

01_MMM

Logistic Regression
- Logit Regression (binary classes)
- Multiple logistic regression
- Poisson Regression

- Stojiljković, M.”Logistic Regression in Python”
- Navlani, A. “Understanding Logistic Regression in Python”
- Tripathi, M. “Understanding Logistic Regression with Python: Practical Guide 1”
- Long, A. “Understanding Data Science Classification Metrics in Scikit-Learn in Python”
- “Example of Logistic Regression in Python”
- Li, S. “Building A Logistic Regression in Python, Step by Step”
- Waseem, M. “How To Perform Logistic Regression In Python?”
- Dhiraj, K. “Logistic Regression in Python Using Scikit-learn”
- “ML : Logistic Regression using Python”

01_MMM

Decision Trees
- Classification And Regression Trees
- Random Forests (CART Bagging)

- Decision Trees and Random Forests
- Powerful Guide to learn Random Forest (with codes in R & Python)
- Simplified Introduction to Random Forests
- Using Random Forests in Python with Scikit-Learn
- Random Forest Regression in Python
- Random Forest Algorithm with Python and Scikit-Learn

01_MMM

Nearest Neighbor Methods
- Distance Measures
K-nearest neighbor

- Robinson, S. “K-Nearest Neighbors Algorithm in Python and Scikit-Learn”
- Brownlee, J. “Develop k-Nearest Neighbors in Python From Scratch”
- Brownlee, J. “Four Distance Measures for Machine Learning”
- Navlani, A. “KNN Classification using Scikit-learn”
- Zoltan, C. “KNN in Python”
- Maklin, C. “K Nearest Neighbor Algorithm In Python”
- “k-nearest neighbor algorithm in Python”

01_MMM

Support Vector Methods
- Maximum Margin Classification
- Kernel Trick and Common Kernels
- Support Vector Regression

01_MMM

Validation Methods
- Train/Test Split and Holdout Sets
- k-Fold Cross-Validation
- Information Metrics

01_MMM

Clustering Methods
- K-Means and Variants
- Hierarchical Clustering
- Density-Based Clustering

- IBM “Clustering” in Unsupervised Learning

01_MMM

Dimension Reduction Methods
- Principal Components
- Stochastic Embedding
- Discriminant Analysis

01_MMM

Classification Feature Engineering
- one-hot
- ordinal
- embeddings

01_MMM

Predictive Feature Engineering
- Scaling
- Normalization
- Interaction(s)

01_MMM

Neural Networks
- Deep Learners
- Image Analysis (Flat)

01_MMM

Neural Networks
- Convolutional Masking
- Image Classification

01_MMM

Neural Networks
- Stand-alone Packages

01_MMM

Ensemble Methods
- Solution stacking
- Solution Blending

01_MMM

Ensemble Methods
- Bagging
- Boosting

01_MMM

Time Series Tools
- Stationarity and Differencing
- Auto/Serial correlation
- ARIMA and SARIMA Models

01_MMM

Time Series Tools
- Seasonal Decomposition
- Exponential Smoothing
- TS Feature Engineering