Spaces:
Running
Running
File size: 5,621 Bytes
854c114 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | {
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ML Practice Series: Module 18 - Time Series Analysis\n",
"\n",
"Welcome to Module 18! **Time Series Analysis** is the study of data points collected or recorded at specific time intervals. This is crucial for finance, weather forecasting, and inventory management.\n",
"\n",
"### Objectives:\n",
"1. **Datetime Handling**: Converting strings to date objects.\n",
"2. **Resampling & Rolling Windows**: Smoothing data trends.\n",
"3. **Stationarity**: Understanding the Mean and Variance over time.\n",
"4. **Forecasting**: A simple look at the Moving Average model.\n",
"\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Setup\n",
"We will use the **Air Passengers** dataset, which shows monthly totals of international airline passengers from 1949 to 1960."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"# Load dataset\n",
"url = \"https://raw.githubusercontent.com/jbrownlee/Datasets/master/airline-passengers.csv\"\n",
"df = pd.read_csv(url, parse_dates=['Month'], index_index=True)\n",
"\n",
"print(\"Dataset head:\")\n",
"print(df.head())\n",
"\n",
"plt.figure(figsize=(12, 6))\n",
"plt.plot(df)\n",
"plt.title('Monthly International Airline Passengers')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Feature Extraction from Time\n",
"\n",
"### Task 1: Component Extraction\n",
"Extract the `Year`, `Month`, and `Day of Week` from the index into new columns.\n",
"\n",
"*Web Reference: [Feature Engineering Guide](https://aashishgarg13.github.io/DataScience/feature-engineering/) (Time features section).*"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# YOUR CODE HERE\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details>\n",
"<summary><b>Click to see Solution</b></summary>\n",
"\n",
"```python\n",
"df['year'] = df.index.year\n",
"df['month'] = df.index.month\n",
"df['day_of_week'] = df.index.dayofweek\n",
"df.head()\n",
"```\n",
"</details>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Smoothing Trends\n",
"\n",
"### Task 2: Rolling Mean\n",
"Calculate and plot a 12-month rolling mean to see the yearly trend more clearly."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# YOUR CODE HERE\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details>\n",
"<summary><b>Click to see Solution</b></summary>\n",
"\n",
"```python\n",
"rolling_mean = df['Passengers'].rolling(window=12).mean()\n",
"\n",
"plt.figure(figsize=(12, 6))\n",
"plt.plot(df['Passengers'], label='Original')\n",
"plt.plot(rolling_mean, color='red', label='12-Month Rolling Mean')\n",
"plt.legend()\n",
"plt.show()\n",
"```\n",
"</details>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"--- \n",
"### Excellent Forecast! \n",
"Time Series is a deep field. You've now mastered the basics of handling temporal data.\n",
"Next: **Natural Language Processing (NLP)**."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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": 4
} |