From ed460b5227232e87de03bfa4f92cf1fbaf81182b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 2 Jul 2026 10:01:16 +0000 Subject: [PATCH 2/3] Add Seaborn data visualization examples to 2-Regression/2-Data lesson --- 2-Regression/2-Data/README.md | 77 +++++++++++++++++++- 2-Regression/2-Data/images/catplot.png | Bin 0 -> 8113 bytes 2-Regression/2-Data/images/heatmap.png | Bin 0 -> 21055 bytes 2-Regression/2-Data/images/lineplot.png | Bin 0 -> 38442 bytes 2-Regression/2-Data/images/relplot.png | Bin 0 -> 16360 bytes 2-Regression/2-Data/solution/notebook.ipynb | 65 ++++++++++++++++- 6 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 2-Regression/2-Data/images/catplot.png create mode 100644 2-Regression/2-Data/images/heatmap.png create mode 100644 2-Regression/2-Data/images/lineplot.png create mode 100644 2-Regression/2-Data/images/relplot.png diff --git a/2-Regression/2-Data/README.md b/2-Regression/2-Data/README.md index 6debb4b4e..48ee8addd 100644 --- a/2-Regression/2-Data/README.md +++ b/2-Regression/2-Data/README.md @@ -16,6 +16,7 @@ In this lesson, you will learn: - How to prepare your data for model-building. - How to use Matplotlib for data visualization. +- How to use Seaborn for more expressive data visualization. ## Asking the right question of your data @@ -194,11 +195,85 @@ To get charts to display useful data, you usually need to group the data somehow This is a more useful data visualization! It seems to indicate that the highest price for pumpkins occurs in September and October. Does that meet your expectation? Why or why not? +## Exercise - experiment with Seaborn + +Matplotlib is powerful, but it can take a lot of code to produce a polished chart. [Seaborn](https://seaborn.pydata.org/) is a library built _on top of_ Matplotlib that is designed for statistical data visualization. It works directly with Pandas dataframes, applies attractive default styles, and lets you create informative plots with far less code. Because Seaborn returns Matplotlib objects, you can still use everything you already know about Matplotlib to fine-tune the result. + +> Seaborn is already included if you installed the packages in the previous lesson. If not, install it with `pip install seaborn`. + +1. Import Seaborn at the top of the notebook, under the other imports. It is conventionally imported as `sns`: + + ```python + import seaborn as sns + ``` + +### Scatter plots to show relationships + +A big part of exploring data before building a model is looking for _relationships_ between variables. A [scatter plot](https://en.wikipedia.org/wiki/Scatter_plot) is one of the best tools for this: if the points seem to follow a line, the two variables may be correlated, which is a good sign that a linear regression model could work. + +1. Recreate the price-to-month scatter plot from before, this time using Seaborn's [`relplot()`](https://seaborn.pydata.org/generated/seaborn.relplot.html) (relational plot), which works directly with your dataframe columns: + + ```python + sns.relplot(x="Price", y="Month", data=new_pumpkins) + ``` + + ![A Seaborn scatterplot showing price to month relationship](./images/relplot.png) + + Notice how you pass the _column names_ and the dataframe, and Seaborn takes care of the axis labels for you. + +2. You can switch to a line plot by passing `kind="line"`. Seaborn even draws a shaded band showing the confidence interval around the line: + + ```python + sns.relplot(x="Price", y="Month", kind="line", data=new_pumpkins) + ``` + + ![A Seaborn line plot showing price to month relationship](./images/lineplot.png) + + This particular data is quite noisy, so a line plot isn't the clearest choice here โ€” but it shows how easily you can change chart types in Seaborn. + +### Bar charts to show distributions + +Earlier you grouped the data by hand to create a bar chart with Matplotlib. Seaborn's [`catplot()`](https://seaborn.pydata.org/generated/seaborn.catplot.html) (categorical plot) can do the grouping and aggregation for you. By default `kind="bar"` shows the mean of each category along with a black line indicating the confidence interval. + +1. Create a bar chart of average price per month: + + ```python + sns.catplot(x="Month", y="Price", data=new_pumpkins, kind="bar") + ``` + + ![A Seaborn bar chart showing the price distribution per month](./images/catplot.png) + + This confirms what you saw with Matplotlib โ€” prices peak around September and October โ€” but Seaborn also visualizes how much the price _varies_ within each month. + +### Heatmaps to show correlations + +Scatter plots compare two variables at a time. When you have several numeric columns, a [heatmap](https://en.wikipedia.org/wiki/Heat_map) lets you view the strength of the relationship between _every_ pair of columns at once. This is a common way to spot which features are most correlated before choosing what to feed into a model (and the same kind of chart is later used to display confusion matrices in classification). + +1. Build a correlation matrix with Pandas, then draw it with Seaborn's [`heatmap()`](https://seaborn.pydata.org/generated/seaborn.heatmap.html). The `annot=True` option prints the correlation values on each cell: + + ```python + correlations = new_pumpkins[['Month', 'Low Price', 'High Price', 'Price']].corr() + sns.heatmap(correlations, annot=True, cmap="coolwarm") + ``` + + ![A Seaborn heatmap showing correlations between the numeric columns](./images/heatmap.png) + + Values close to `1` (or `-1`) mean the columns are strongly correlated. Notice how `Low Price` and `High Price` are almost perfectly correlated, while `Month` has very little correlation with price. โœ… What does that tell you about which columns are useful for predicting price? + +### Matplotlib or Seaborn? + +Both libraries are worth knowing: + +- **Matplotlib** gives you fine-grained control over every element of a chart and is the foundation almost every other Python plotting library builds on. +- **Seaborn** provides higher-level functions and attractive defaults for statistical charts, works directly with dataframes, and is often quicker for exploratory data analysis. + +A common workflow is to reach for Seaborn to explore your data quickly, then drop down to Matplotlib when you need to customize the details. + --- ## ๐Ÿš€Challenge -Explore the different types of visualization that Matplotlib offers. Which types are most appropriate for regression problems? +Explore the different types of visualization that Matplotlib and Seaborn offer. Which types are most appropriate for regression problems? ## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) diff --git a/2-Regression/2-Data/images/catplot.png b/2-Regression/2-Data/images/catplot.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc4876be6789b55fc4510402f893de2294986c4 GIT binary patch literal 8113 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

B#)2j7(C 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\n", " \n", "\n", - "

5 rows ร— 26 columns

\n", + "

5 rows \u00d7 26 columns

\n", "" ], "text/plain": [ @@ -222,6 +222,7 @@ "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", "pumpkins = pd.read_csv('../../data/US-pumpkins.csv')\n", "\n", "pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]\n", @@ -385,12 +386,72 @@ "plt.ylabel(\"Pumpkin Price\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualizing with Seaborn\n", + "\n", + "[Seaborn](https://seaborn.pydata.org/) is built on top of Matplotlib and works directly with dataframes, making it quick to create attractive statistical plots with very little code." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Scatter plots to show relationships" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "sns.relplot(x=\"Price\", y=\"Month\", data=new_pumpkins)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sns.relplot(x=\"Price\", y=\"Month\", kind=\"line\", data=new_pumpkins)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Bar charts to show distributions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sns.catplot(x=\"Month\", y=\"Price\", data=new_pumpkins, kind=\"bar\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Heatmaps to show correlations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "correlations = new_pumpkins[['Month', 'Low Price', 'High Price', 'Price']].corr()\n", + "sns.heatmap(correlations, annot=True, cmap=\"coolwarm\")" + ] } ], "metadata": { From 83e22ba951041c2bb3656c9b5d0b53631dc7f328 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 2 Jul 2026 10:02:18 +0000 Subject: [PATCH 3/3] Clarify Seaborn install note and heatmap correlation explanation --- 2-Regression/2-Data/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2-Regression/2-Data/README.md b/2-Regression/2-Data/README.md index 48ee8addd..6a9ce3d71 100644 --- a/2-Regression/2-Data/README.md +++ b/2-Regression/2-Data/README.md @@ -199,7 +199,7 @@ To get charts to display useful data, you usually need to group the data somehow Matplotlib is powerful, but it can take a lot of code to produce a polished chart. [Seaborn](https://seaborn.pydata.org/) is a library built _on top of_ Matplotlib that is designed for statistical data visualization. It works directly with Pandas dataframes, applies attractive default styles, and lets you create informative plots with far less code. Because Seaborn returns Matplotlib objects, you can still use everything you already know about Matplotlib to fine-tune the result. -> Seaborn is already included if you installed the packages in the previous lesson. If not, install it with `pip install seaborn`. +> If you don't already have Seaborn installed, install it with `pip install seaborn`. 1. Import Seaborn at the top of the notebook, under the other imports. It is conventionally imported as `sns`: @@ -258,7 +258,7 @@ Scatter plots compare two variables at a time. When you have several numeric col ![A Seaborn heatmap showing correlations between the numeric columns](./images/heatmap.png) - Values close to `1` (or `-1`) mean the columns are strongly correlated. Notice how `Low Price` and `High Price` are almost perfectly correlated, while `Month` has very little correlation with price. โœ… What does that tell you about which columns are useful for predicting price? + Values close to `1` (or `-1`) mean the columns are strongly _linearly_ correlated. Notice how `Low Price` and `High Price` are almost perfectly correlated. `Month`, on the other hand, shows only a weak linear correlation with price โ€” even though the bar chart above revealed a clear seasonal peak in September and October. That's an important lesson: the correlation coefficient only measures _straight-line_ relationships, so it can miss seasonal or otherwise non-linear patterns. โœ… Why is it useful to look at both a heatmap *and* charts like the bar chart before deciding which columns to use? ### Matplotlib or Seaborn?