Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Project_1_Sports_Transport_ML/.DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions Project_1_Sports_Transport_ML/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# DSC-Tasks-Submission
361 changes: 361 additions & 0 deletions Project_1_Sports_Transport_ML/Task 1/Task I.ipynb

Large diffs are not rendered by default.

34 changes: 34 additions & 0 deletions Project_1_Sports_Transport_ML/Task 1/nba_scoring_leaders.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Season,Player,Team,Year,Games Played,Total Points,Points per Game
1992–93,Michael Jordan* (7),Chicago Bulls,1992,78,2541,32.6
1993–94,David Robinson*,San Antonio Spurs,1993,80,2383,29.8
1994–95,Shaquille O'Neal*,Orlando Magic,1994,79,2315,29.3
1995–96 ‡,Michael Jordan* (8),Chicago Bulls,1995,82,2491,30.4
1996–97,Michael Jordan* (9),Chicago Bulls,1996,82,2431,29.6
1997–98 ‡,Michael Jordan* (10),Chicago Bulls,1997,82,2357,28.7
1998–99[o],Allen Iverson*,Philadelphia 76ers,1998,48,1284,26.8
1999–00 ‡,Shaquille O'Neal* (2),Los Angeles Lakers,1999,79,2344,29.7
2000–01 ‡,Allen Iverson* (2),Philadelphia 76ers,2000,71,2207,31.1
2001–02,Allen Iverson* (3),Philadelphia 76ers,2001,60,1883,31.4
2002–03,Tracy McGrady*,Orlando Magic,2002,75,2407,32.1
2003–04,Tracy McGrady* (2),Orlando Magic,2003,67,1878,28.0
2004–05,Allen Iverson* (4),Philadelphia 76ers,2004,75,2302,30.7
2005–06,Kobe Bryant*,Los Angeles Lakers,2005,80,2832,35.4
2006–07,Kobe Bryant* (2),Los Angeles Lakers,2006,77,2430,31.6
2007–08,LeBron James,Cleveland Cavaliers,2007,75,2250,30.0
2008–09,Dwyane Wade*,Miami Heat,2008,79,2386,30.2
2009–10,Kevin Durant,Oklahoma City Thunder,2009,82,2472,30.1
2010–11,Kevin Durant (2),Oklahoma City Thunder,2010,78,2161,27.7
2011–12[w],Kevin Durant (3),Oklahoma City Thunder,2011,66,1850,28.0
2012–13,Carmelo Anthony*,New York Knicks,2012,67,1920,28.7
2013–14 ‡,Kevin Durant (4),Oklahoma City Thunder,2013,81,2593,32.0
2014–15,Russell Westbrook,Oklahoma City Thunder,2014,67,1886,28.1
2015–16 ‡,Stephen Curry,Golden State Warriors,2015,79,2375,30.1
2016–17 ‡,Russell Westbrook (2),Oklahoma City Thunder,2016,81,2558,31.6
2017–18 ‡,James Harden,Houston Rockets,2017,72,2191,30.4
2018–19,James Harden (2),Houston Rockets,2018,78,2818,36.1
2019–20,James Harden (3),Houston Rockets,2019,68,2335,34.3
2020–21,Stephen Curry (2),Golden State Warriors,2020,63,2015,32.0
2021–22,Joel Embiid,Philadelphia 76ers,2021,68,2079,30.6
2022–23 ‡,Joel Embiid (2),Philadelphia 76ers,2022,66,2183,33.1
2023–24,Luka Dončić,Dallas Mavericks,2023,70,2370,33.9
2024–25 ‡,Shai Gilgeous-Alexander,Oklahoma City Thunder,2024,76,2484,32.7
158 changes: 158 additions & 0 deletions Project_1_Sports_Transport_ML/Task 2/Task II.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "efbe15f9-8cd2-4a2f-b034-8f8649d5703f",
"metadata": {},
"source": [
"# 1. Define the Real-World Problem &\n",
"# 2. Build a Scikit-Learn Pipeline"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "cc8d44ac-52be-4c1b-8785-7b9b74d98358",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pipeline built successfully.\n"
]
}
],
"source": [
"import pandas as pd\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.compose import ColumnTransformer\n",
"from sklearn.preprocessing import StandardScaler, OneHotEncoder, FunctionTransformer\n",
"from sklearn.ensemble import RandomForestRegressor\n",
"from sklearn.impute import SimpleImputer\n",
"\n",
"# Load the dataset \n",
"df = pd.read_csv('hour.csv')\n",
"\n",
"# Drop unnecessary columns\n",
"df = df.drop(columns=['instant', 'dteday', 'casual', 'registered'])\n",
"\n",
"# Target: 'cnt' (bike rental count)\n",
"X = df.drop(columns=['cnt'])\n",
"y = df['cnt']\n",
"\n",
"# Numerical and categorical columns\n",
"numerical_features = ['temp', 'atemp', 'hum', 'windspeed']\n",
"categorical_features = ['season', 'yr', 'mnth', 'hr', 'holiday', 'weekday', 'workingday', 'weathersit']\n",
"\n",
"# Feature engineering function (create new feature: temp * hum interaction)\n",
"def feature_engineering(X):\n",
" X = X.copy()\n",
" X['temp_hum_interaction'] = X['temp'] * X['hum']\n",
" return X\n",
"\n",
"# Preprocessing for numerical features\n",
"numerical_transformer = Pipeline(steps=[\n",
" ('imputer', SimpleImputer(strategy='mean')), \n",
" ('scaler', StandardScaler())\n",
"])\n",
"\n",
"# Preprocessing for categorical features\n",
"categorical_transformer = Pipeline(steps=[\n",
" ('imputer', SimpleImputer(strategy='most_frequent')),\n",
" ('onehot', OneHotEncoder(handle_unknown='ignore'))\n",
"])\n",
"\n",
"# Combined preprocessor\n",
"preprocessor = ColumnTransformer(\n",
" transformers=[\n",
" ('num', numerical_transformer, numerical_features),\n",
" ('cat', categorical_transformer, categorical_features)\n",
" ]\n",
")\n",
"\n",
"# Full pipeline: Preprocessing + Feature Engineering + Model\n",
"pipeline = Pipeline(steps=[\n",
" ('feature_eng', FunctionTransformer(feature_engineering)), # Add new feature before preprocessing\n",
" ('preprocessor', preprocessor),\n",
" ('model', RandomForestRegressor(n_estimators=100, random_state=42))\n",
"])\n",
"\n",
"print(\"Pipeline built successfully.\")"
]
},
{
"cell_type": "markdown",
"id": "e71a24b0-ddbd-4306-b3fd-78dedf4d4965",
"metadata": {},
"source": [
"# 3. Train, Test, and Evaluate the Pipeline"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "bc265be7-eb70-4711-be2b-636f63e4189f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean Squared Error (MSE): 2275.59\n",
"R² Score: 0.93\n"
]
}
],
"source": [
"from sklearn.metrics import mean_squared_error, r2_score\n",
"\n",
"# Split data into train/test sets\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
"\n",
"# Train the pipeline\n",
"pipeline.fit(X_train, y_train)\n",
"\n",
"# Predict on test set\n",
"y_pred = pipeline.predict(X_test)\n",
"\n",
"# Evaluate\n",
"mse = mean_squared_error(y_test, y_pred)\n",
"r2 = r2_score(y_test, y_pred)\n",
"\n",
"print(f\"Mean Squared Error (MSE): {mse:.2f}\")\n",
"print(f\"R² Score: {r2:.2f}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "feea924f-21c9-4bff-854e-866d3cbccf84",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:base] *",
"language": "python",
"name": "conda-base-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading