This repository is created by Amir Mardan to maintain and preview the contents for a Python and machine learning course prepared for Amirkabir University of Technology, Tehran, Iran. Please contact me via my email (mardan.amir.h@gmail.com) for your lovely feedback and suggestions.
NOTE
I will push new contents weekly
1. Introduction to Python
1.1 General programming
- An introduction
- Required tools
- Variables and data types
- Numbers in Python
- Strings in Python
- Booleans in Python
- List in Python
- Dictionary in Python
- Operators
- Comparison operators
- Logical operators
- Membership operators
- Bitwise operators
- Control flow
ifstatementsmatchstatementsforstatementswhilestatements
1.2 Modular programming
- Functions
Lambdafunctions- Built-in functions
mapfunctionfilterfunctionenumeratefunctionzipfunction
- Classes / objects
2. Introduction to NumPy
- Creating a NumPy array
- Creating arrays from lists
- Special arrays
- Attributes of arrays
- Data Selection
- Array indexing
- Array slicing
- Array view vs copy
- Conditional selection
- Array manipulation
- Shape of an array
- Joining arrays
- Splitting of arrays
- Computation on NumPy arrays
- Aggregations
- Summation
- Minimum and maximum
- Variance and standard deviation
- Mean and median
- Find index
3. Data Manipulation with Pandas
3.1 Introduction to pandas
- Introducing Pandas objects
- The pandas
Seriesobject - The pandas
DataFrameobject
- The pandas
- Data indexing and selection
- Data selection in Series
- Data selection in DataFrame
- Handling missing data
- Detecting the missing values
- Dealing with missing values
- IO in pandas
3.2 Data manipulation in using pandas
- Basic operations in pandas
- Combining datasets
- Concat
- Merge
- Join
- Aggregation
Groupby- Vectorized string
4 Visualization
4.1 Matplotlib
- Basic matplotlib
- Simple matplotlib
- Subplots
- Object-oriented method
- Different types of plot
- Scatter plot
- Bar plot
- Histogram
- Pie chart
- Box Plot
- Violin plot
- Images with matplotlib
- Animation using matplotlib
- Live graph with matplotlib
4.2 Seaborn
- Relational plots
- Distribution plots
displotjointplotpairplot
- Categorical plots
- Categorical scatter plots
- Categorical distribution plots
- Categorical estimate plots
- Regression plots
- FacetGrid
- Customization
- Style and theme
- Colors
5 Data Analysis and Processing
5.1 Exploratory data analysis (EDA)
- Initial general assessment
- Basic analysis
- Missing data
- Outliers
- Correlation
5.2 Data preparation
5.3 Data Cleaning
- Initial general assessment
- Rows with duplicated data
- Columns with a single value
- Outliers
- Standard deviation method
- Interquartile range method
- Missing data
- Remove rows with missing values
- Filling missing values
5.4 Data Transforms
- Scaling numerical data
- Data normalization
- Data standardization
- Robust scaling
- Encode categorical data
- Ordinal Encoding
- One Hot Encoding
- Dummy Encoding
- How to make distribution more Gaussian
- Box-Cox transform
- Yeo-Johnson transform
- Quantile transform
6 Classical Machine Learning
6.1 Introduction to Machine Learning
6.2 Introduction to Scikit-Learn
- Data presentation
- Models in Scikit-learn
- Simple linear regression example
- Simple classification example
- Simple dimensionality reduction example
- Simple clustering example
- Hyperparameters and model validation
- Cross validation
- Finding the best model
- Grid Search
6.3 Regression 1
- Ordinary Linear Regression
- Linear Regression With Regularization
- Ridge Regularization
- Lasso Regularization
- Combined Regularization
- A Linear Regression Project
- Exploratory Data Analysis
- Data Cleaning
- Data Processing Pipeline
- Training and Evaluation
- Training Curve
6.4 Classification 1
- Logistic Regression
- Support Vector Machine
- Random Forest Classifier
6.5 Clustering 1
- k-Means Clustering
- Gaussian Mixture Models
- Evaluation Clustering Models
7. Fully Connected Neural Networks (FCNNs)
7.1 Introduction to TensorFlow
- Graph and Session
- Build and Perform a Graph
- Gradient in TensorFlow
- Tensor types in TensorFlow
- Constant
- Variable
- Tensor Manipulation
- Creating A Tensors
- Creating Special Tensors
- Shape Manipulation
- Slicing
- Operators
- Basic Arithmetic Operators
- Comparison Operators
- Logical And Bitwise Operators
7.2 Introduction To Fully Connected Neural Networks
- Neural Network From Scratch
- Neural Network With TensorFlow