Who: Rushit Tholiya · 2nd year B.Tech (CS) at Nirma University, Ahmedabad
Why: I want to build end-to-end ML projects — from raw data to a working model — and move into a data or ML engineering role after graduation. This repo is my daily proof-of-work.
How: Working through the CampusX 100-Days of ML course. For each lecture, I write my own notes before watching the solution, then compare.
- I write notes in my own words before watching the solution video
- Every task has a comment block at the top: what I tried, where I got stuck, what I learned
- I track actual mistakes — not just the polished final answer
- Notebooks include my own additional experiments beyond the assigned tasks
| Module | Lectures | Tasks Solved | Status |
|---|---|---|---|
| Python Basics | 12 / 12 | 12 / 12 | ✅ Complete |
| NumPy | 3 / 3 | 3 / 3 | ✅ Complete |
| Pandas | 3 / 7 | 3 / 7 | ✅ Complete |
| matplotlib | 2 / 2 | 2 / 2 | ✅ Complete |
| seaborn | 2 / 2 | 2 / 2 | ✅ Complete |
| Data Analysis Process | 0 / 3 | 0 / 3 | ⏳ Upcoming |
| SQL | 9 / 9 | 9 / 9 | ✅ Complete |
| Statistics | 1 / 14 | 1 / 14 | ⏳ In progress |
| Machine Learning | 70 / 100+ | — | ⏳ In progress |
Last updated: July 2026
/
├── 01-python-basics/
│ ├── notes/
│ └── tasks/
├── 02-numpy/
├── 03-pandas/
├── 04-matplotlib/
├── 05-seaborn/
├── 06-data-analysis-process/
├── 07-SQL/
├── 08-statistics/
├── 09-machine-learning/
└── datasets/
- Python's
*argsand**kwargs— I wrote 6 small functions to test every edge case. Most useful when you genuinely don't know how many arguments a function will receive at call time. - NumPy broadcasting confused me for 3 days. I finally understood it by drawing out the shape transformations by hand — see
02-numpy/notes/S14_Advanced_Numpy.ipynb
There's a pattern in all three libraries — I know they exist, I use them constantly, and I still blank on the exact syntax under pressure. So instead of googling the same thing for the 50th time, I built a searchable quick-reference site for each:
| # | Library | What's inside | Live Preview | Source |
|---|---|---|---|---|
| 1 | 🐍 Python | All 69 built-ins, core methods, runnable examples | 🔗 Open | .html |
| 2 | 🔢 NumPy | Array creation, indexing, broadcasting, most-used functions | 🔗 Open | .html |
| 3 | 🐼 Pandas | DataFrame/Series methods, groupby, merging, string & datetime accessors, file I/O | 🔗 Open | .html |
| 4 | 📊 Matplotlib & Seaborn | Most-used plot types, one-liners for quick recall | 🔗 Open | .html |
Alongside notes and notebooks, I'm building small interactive apps to actually feel how ML concepts behave under different settings, instead of just reading about them:
-
Linear Regression — Hyperparameter Tuning — a Streamlit app to tune hyperparameters (learning rate, iterations, etc.) and watch their effect on the model live → 🔗 Open the demo
-
Decision Tree Classifier — Hyperparameter Tuning — a Streamlit app to tune hyperparameters (criterion, max depth, min samples split, etc.) and visualize the decision boundary live → 🔗 Open the demo
-
Decision Tree Regressor — Hyperparameter Tuning — a Streamlit app to tune hyperparameters (criterion, max depth, min samples split, etc.) and watch the regression fit change live → 🔗 Open the demo
-
Bagging Classifier — Base Estimator Comparison — a Streamlit app to tune bagging hyperparameters (n_estimators, max samples, bootstrap, etc.) and compare the decision boundary against a single base estimator → 🔗 Open the demo
-
Bagging Regressor — Base Estimator Comparison — a Streamlit app to tune bagging hyperparameters (n_estimators, max samples, bootstrap, etc.) and compare the regression fit against a single base estimator → 🔗 Open the demo
-
Random Forest Classifier — Hyperparameter Tuning — a Streamlit app to tune random forest hyperparameters (n_estimators, max features, bootstrap, max samples, etc.) and visualize the decision boundary live → 🔗 Open the demo
Python 3.11 · Jupyter Notebook / JupyterLab / Google Colab
NumPy · Pandas · Matplotlib · Seaborn · Scikit-learn
- Create a new folder on your system and open it in the terminal.
- Clone the repository:
git clone https://github.com/Rushit004/data-science-journey-campusx.git
- Move into the project folder:
cd data-science-journey-campusx
- Install the required libraries:
pip install numpy pandas matplotlib seaborn scikit-learn jupyterlab
- Launch Jupyter Lab:
jupyter lab
After running the above commands, Jupyter Lab will open in your browser, where you can explore all the notebooks and work.
Rushit Tholiya 🔗 LinkedIn 🔗 GitHub profile
Live repo — updated as I progress. Feedback and suggestions welcome via Issues.
