From c02f08f74b9621b9462d216678a23c022f607a51 Mon Sep 17 00:00:00 2001 From: Carlotta Castelluccio <82521518+carlotta94c@users.noreply.github.com> Date: Wed, 8 Mar 2023 12:19:03 +0000 Subject: [PATCH] Logistic regression README refactoring --- 2-Regression/4-Logistic/README.md | 224 ++++++++++------ 2-Regression/4-Logistic/images/ROC_2.png | Bin 0 -> 24803 bytes .../4-Logistic/images/pumpkins_catplot_1.png | Bin 0 -> 21873 bytes .../4-Logistic/images/pumpkins_catplot_2.png | Bin 0 -> 67274 bytes 2-Regression/4-Logistic/images/swarm_2.png | Bin 0 -> 30805 bytes 2-Regression/4-Logistic/notebook.ipynb | 249 ++++++++++++++---- .../4-Logistic/solution/notebook.ipynb | 2 +- 7 files changed, 351 insertions(+), 124 deletions(-) create mode 100644 2-Regression/4-Logistic/images/ROC_2.png create mode 100644 2-Regression/4-Logistic/images/pumpkins_catplot_1.png create mode 100644 2-Regression/4-Logistic/images/pumpkins_catplot_2.png create mode 100644 2-Regression/4-Logistic/images/swarm_2.png diff --git a/2-Regression/4-Logistic/README.md b/2-Regression/4-Logistic/README.md index 1c39e9a6..5d019a9f 100644 --- a/2-Regression/4-Logistic/README.md +++ b/2-Regression/4-Logistic/README.md @@ -26,9 +26,9 @@ Let's build a logistic regression model to predict that, given some variables, _ ## Define the question -For our purposes, we will express this as a binary: 'Orange' or 'Not Orange'. There is also a 'striped' category in our dataset but there are few instances of it, so we will not use it. It disappears once we remove null values from the dataset, anyway. +For our purposes, we will express this as a binary: 'White' or 'Not White'. There is also a 'striped' category in our dataset but there are few instances of it, so we will not use it. It disappears once we remove null values from the dataset, anyway. -> 🎃 Fun fact, we sometimes call white pumpkins 'ghost' pumpkins. They aren't very easy to carve, so they aren't as popular as the orange ones but they are cool looking! +> 🎃 Fun fact, we sometimes call white pumpkins 'ghost' pumpkins. They aren't very easy to carve, so they aren't as popular as the orange ones but they are cool looking! So we could also reformulate our question as: 'Ghost' or 'Not Ghost'. 👻 ## About logistic regression @@ -50,10 +50,6 @@ There are other types of logistic regression, including multinomial and ordinal: ![Multinomial vs ordinal regression](./images/multinomial-ordinal.png) > Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded) -### It's still linear - -Even though this type of Regression is all about 'category predictions', it still works best when there is a clear linear relationship between the dependent variable (color) and the other independent variables (the rest of the dataset, like city name and size). It's good to get an idea of whether there is any linearity dividing these variables or not. - ### Variables DO NOT have to correlate Remember how linear regression worked better with more correlated variables? Logistic regression is the opposite - the variables don't have to align. That works for this data which has somewhat weak correlations. @@ -71,78 +67,143 @@ First, clean the data a bit, dropping null values and selecting only some of the 1. Add the following code: ```python - from sklearn.preprocessing import LabelEncoder - - new_columns = ['Color','Origin','Item Size','Variety','City Name','Package'] - - new_pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1) - - new_pumpkins.dropna(inplace=True) - - new_pumpkins = new_pumpkins.apply(LabelEncoder().fit_transform) + + columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color'] + pumpkins = full_pumpkins.loc[:, columns_to_select] + + pumpkins.dropna(inplace=True) ``` You can always take a peek at your new dataframe: ```python - new_pumpkins.info + pumpkins.info ``` -### Visualization - side-by-side grid +### Visualization - categorical plot By now you have loaded up the [starter notebook](./notebook.ipynb) with pumpkin data once again and cleaned it so as to preserve a dataset containing a few variables, including `Color`. Let's visualize the dataframe in the notebook using a different library: [Seaborn](https://seaborn.pydata.org/index.html), which is built on Matplotlib which we used earlier. -Seaborn offers some neat ways to visualize your data. For example, you can compare distributions of the data for each point in a side-by-side grid. +Seaborn offers some neat ways to visualize your data. For example, you can compare distributions of the data for each `Variety` and `Color` in a categorical plot. -1. Create such a grid by instantiating a `PairGrid`, using our pumpkin data `new_pumpkins`, followed by calling `map()`: +1. Create such a plot by using the `catplot` function, using our pumpkin data `pumpkins`, and specifying a color mapping for each pumpkin category (orange or white): ```python import seaborn as sns - g = sns.PairGrid(new_pumpkins) - g.map(sns.scatterplot) + palette = { + 'ORANGE': 'orange', + 'WHITE': 'wheat', + } + + sns.catplot( + data=pumpkins, y="Variety", hue="Color", kind="count", + palette=palette, + ) ``` - ![A grid of visualized data](images/grid.png) + ![A grid of visualized data](images/pumpkins_catplot_1.png) - By observing data side-by-side, you can see how the Color data relates to the other columns. + By observing the data, you can see how the Color data relates to Variety. - ✅ Given this scatterplot grid, what are some interesting explorations you can envision? + ✅ Given this categorical plot, what are some interesting explorations you can envision? -### Use a swarm plot +### Data pre-processing: feature and label encoding +Our pumpkins dataset contains string values for all its columns. Working with categorical data is intuitive for humans but not for machines. Machine learning algorithms work well with numbers. There's why encoding is a very important step in the data pre-processing phase, since it enables to turn categorical data into numerical data, without losing any information. A good encoding leads to build a good model. -Since Color is a binary category (Orange or Not), it's called 'categorical data' and needs 'a more [specialized approach](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) to visualization'. There are other ways to visualize the relationship of this category with other variables. +For feature encoding there are two main types of encoders: -You can visualize variables side-by-side with Seaborn plots. +1. Ordinal encoder: it suits well for ordinal variables, which are categorical variables where their data follows a logical ordering, like the `Item Size` column in our dataset. It creates a mapping such that each category is represented by a number, which is the order of the category in the column. -1. Try a 'swarm' plot to show the distribution of values: + ```python + from sklearn.preprocessing import OrdinalEncoder + + item_size_categories = [['sml', 'med', 'med-lge', 'lge', 'xlge', 'jbo', 'exjbo']] + ordinal_features = ['Item Size'] + ordinal_encoder = OrdinalEncoder(categories=item_size_categories) + ``` + +2. Categorical encoder: it suits well for nominal variables, which are categorical variables where their data does not follow a logical ordering, like all the features different from `Item Size` in our dataset. It is a one-hot encoding, which means that each category is represented by a binary column: the encoded variable is equal to 1 if the pumpkin belongs to that Variety and 0 otherwise. ```python - sns.swarmplot(x="Color", y="Item Size", data=new_pumpkins) + from sklearn.preprocessing import OneHotEncoder + + categorical_features = ['City Name', 'Package', 'Variety', 'Origin'] + categorical_encoder = OneHotEncoder(sparse_output=False) ``` +Then, `ColumnTransformer` is used to combine multiple encoders into a single step and apply them to the appropriate columns. + + ```python + from sklearn.compose import ColumnTransformer + ct = ColumnTransformer(transformers=[ + ('ord', ordinal_encoder, ordinal_features), + ('cat', categorical_encoder, categorical_features) + ]) + + ct.set_output(transform='pandas') + encoded_features = ct.fit_transform(pumpkins) + ``` +On the other hand, to encode the label, we use the scikit-learn `LabelEncoder` class, which is a utility class to help normalize labels such that they contain only values between 0 and n_classes-1 (here, 0 and 1). + + ```python + from sklearn.preprocessing import LabelEncoder - ![A swarm of visualized data](images/swarm.png) + label_encoder = LabelEncoder() + encoded_label = label_encoder.fit_transform(pumpkins['Color']) + ``` +Once we have encoded the features and the label, we can merge them into a new dataframe `encoded_pumpkins`. -### Violin plot + ```python + encoded_pumpkins = encoded_features.assign(Color=encoded_label) + ``` +✅ What are the advantages of using an ordinal encoder for the `Item Size` column? -A 'violin' type plot is useful as you can easily visualize the way that data in the two categories is distributed. Violin plots don't work so well with smaller datasets as the distribution is displayed more 'smoothly'. +### Analyse relationships between variables -1. As parameters `x=Color`, `kind="violin"` and call `catplot()`: +Now that we have pre-processed our data, we can analyse the relationships between the features and the label to grasp an idea of how well the model will be able to predict the label given the features. +The best way to perform this kind of analysis is plotting the data. We'll be using again the Seaborn `catplot` function, to visualize the relationships between `Item Size`, `Variety` and `Color` in a categorical plot. To better plot the data we'll be using the encoded `Item Size` column and the unencoded `Variety` column. ```python - sns.catplot(x="Color", y="Item Size", - kind="violin", data=new_pumpkins) + palette = { + 'ORANGE': 'orange', + 'WHITE': 'wheat', + } + pumpkins['Item Size'] = encoded_pumpkins['ord__Item Size'] + + g = sns.catplot( + data=pumpkins, + x="Item Size", y="Color", row='Variety', + kind="box", orient="h", + sharex=False, margin_titles=True, + height=1.5, aspect=4, palette=palette, + ) + g.set(xlabel="Item Size", ylabel="").set(xlim=(0,6)) + g.set_titles(row_template="{row_name}") ``` + ![A catplot of visualized data](images/pumpkins_catplot_2.png) + +### Use a swarm plot + +Since Color is a binary category (White or Not), it needs 'a [specialized approach](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) to visualization'. There are other ways to visualize the relationship of this category with other variables. + +You can visualize variables side-by-side with Seaborn plots. + +1. Try a 'swarm' plot to show the distribution of values: - ![a violin type chart](images/violin.png) + ```python + palette = { + '0': 'orange', + '1': 'wheat' + } + sns.swarmplot(x="Color", y="ord__Item Size", data=encoded_pumpkins, palette=palette) + ``` - ✅ Try creating this plot, and other Seaborn plots, using other variables. + ![A swarm of visualized data](images/swarm_2.png) -Now that we have an idea of the relationship between the binary categories of color and the larger group of sizes, let's explore logistic regression to determine a given pumpkin's likely color. > **🧮 Show Me The Math** > -> Remember how linear regression often used ordinary least squares to arrive at a value? Logistic regression relies on the concept of 'maximum likelihood' using [sigmoid functions](https://wikipedia.org/wiki/Sigmoid_function). A 'Sigmoid Function' on a plot looks like an 'S' shape. It takes a value and maps it to somewhere between 0 and 1. Its curve is also called a 'logistic curve'. Its formula looks like this: +> Logistic regression relies on the concept of 'maximum likelihood' using [sigmoid functions](https://wikipedia.org/wiki/Sigmoid_function). A 'Sigmoid Function' on a plot looks like an 'S' shape. It takes a value and maps it to somewhere between 0 and 1. Its curve is also called a 'logistic curve'. Its formula looks like this: > > ![logistic function](images/sigmoid.png) > @@ -157,49 +218,48 @@ Building a model to find these binary classification is surprisingly straightfor ```python from sklearn.model_selection import train_test_split - Selected_features = ['Origin','Item Size','Variety','City Name','Package'] - - X = new_pumpkins[Selected_features] - y = new_pumpkins['Color'] - + X = encoded_pumpkins[encoded_pumpkins.columns.difference(['Color'])] + y = encoded_pumpkins['Color'] + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) ``` -1. Now you can train your model, by calling `fit()` with your training data, and print out its result: +2. Now you can train your model, by calling `fit()` with your training data, and print out its result: ```python from sklearn.model_selection import train_test_split - from sklearn.metrics import accuracy_score, classification_report + from sklearn.metrics import f1_score, classification_report from sklearn.linear_model import LogisticRegression - + model = LogisticRegression() model.fit(X_train, y_train) predictions = model.predict(X_test) - + print(classification_report(y_test, predictions)) print('Predicted labels: ', predictions) - print('Accuracy: ', accuracy_score(y_test, predictions)) + print('F1-score: ', f1_score(y_test, predictions)) ``` - Take a look at your model's scoreboard. It's not too bad, considering you have only about 1000 rows of data: + Take a look at your model's scoreboard. It's not bad, considering you have only about 1000 rows of data: ```output precision recall f1-score support - 0 0.85 0.95 0.90 166 - 1 0.38 0.15 0.22 33 + 0 0.94 0.98 0.96 166 + 1 0.85 0.67 0.75 33 - accuracy 0.82 199 - macro avg 0.62 0.55 0.56 199 - weighted avg 0.77 0.82 0.78 199 + accuracy 0.92 199 + macro avg 0.89 0.82 0.85 199 + weighted avg 0.92 0.92 0.92 199 - Predicted labels: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 - 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 1 0 1 0 0 1 0 0 0 1 0] + Predicted labels: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 + 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 + 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 + 0 0 0 1 0 0 0 0 0 0 0 0 1 1] + F1-score: 0.7457627118644068 ``` ## Better comprehension via a confusion matrix @@ -219,7 +279,7 @@ While you can get a scoreboard report [terms](https://scikit-learn.org/stable/mo ```output array([[162, 4], - [ 33, 0]]) + [ 11, 22]]) ``` In Scikit-learn, confusion matrices Rows (axis 0) are actual labels and columns (axis 1) are predicted labels. @@ -229,22 +289,22 @@ In Scikit-learn, confusion matrices Rows (axis 0) are actual labels and columns | 0 | TN | FP | | 1 | FN | TP | -What's going on here? Let's say our model is asked to classify pumpkins between two binary categories, category 'orange' and category 'not-orange'. +What's going on here? Let's say our model is asked to classify pumpkins between two binary categories, category 'white' and category 'not-white'. -- If your model predicts a pumpkin as not orange and it belongs to category 'not-orange' in reality we call it a true negative, shown by the top left number. -- If your model predicts a pumpkin as orange and it belongs to category 'not-orange' in reality we call it a false negative, shown by the bottom left number. -- If your model predicts a pumpkin as not orange and it belongs to category 'orange' in reality we call it a false positive, shown by the top right number. -- If your model predicts a pumpkin as orange and it belongs to category 'orange' in reality we call it a true positive, shown by the bottom right number. +- If your model predicts a pumpkin as not white and it belongs to category 'not-white' in reality we call it a true negative, shown by the top left number. +- If your model predicts a pumpkin as white and it belongs to category 'not-white' in reality we call it a false negative, shown by the bottom left number. +- If your model predicts a pumpkin as not white and it belongs to category 'white' in reality we call it a false positive, shown by the top right number. +- If your model predicts a pumpkin as white and it belongs to category 'white' in reality we call it a true positive, shown by the bottom right number. As you might have guessed it's preferable to have a larger number of true positives and true negatives and a lower number of false positives and false negatives, which implies that the model performs better. -How does the confusion matrix relate to precision and recall? Remember, the classification report printed above showed precision (0.83) and recall (0.98). +How does the confusion matrix relate to precision and recall? Remember, the classification report printed above showed precision (0.85) and recall (0.67). -Precision = tp / (tp + fp) = 162 / (162 + 33) = 0.8307692307692308 +Precision = tp / (tp + fp) = 22 / (22 + 4) = 0.8461538461538461 -Recall = tp / (tp + fn) = 162 / (162 + 4) = 0.9759036144578314 +Recall = tp / (tp + fn) = 22 / (22 + 11) = 0.6666666666666666 -✅ Q: According to the confusion matrix, how did the model do? A: Not too bad; there are a good number of true negatives but also several false negatives. +✅ Q: According to the confusion matrix, how did the model do? A: Not bad; there are a good number of true negatives but also a few false negatives. Let's revisit the terms we saw earlier with the help of the confusion matrix's mapping of TP/TN and FP/FN: @@ -266,20 +326,26 @@ Let's revisit the terms we saw earlier with the help of the confusion matrix's m ## Visualize the ROC curve of this model -This is not a bad model; its accuracy is in the 80% range so ideally you could use it to predict the color of a pumpkin given a set of variables. - -Let's do one more visualization to see the so-called 'ROC' score: +Let's do one more visualization to see the so-called 'ROC' curve: ```python from sklearn.metrics import roc_curve, roc_auc_score +import matplotlib +import matplotlib.pyplot as plt +%matplotlib inline y_scores = model.predict_proba(X_test) -# calculate ROC curve fpr, tpr, thresholds = roc_curve(y_test, y_scores[:,1]) -sns.lineplot([0, 1], [0, 1]) -sns.lineplot(fpr, tpr) + +fig = plt.figure(figsize=(6, 6)) +plt.plot([0, 1], [0, 1], 'k--') +plt.plot(fpr, tpr) +plt.xlabel('False Positive Rate') +plt.ylabel('True Positive Rate') +plt.title('ROC Curve') +plt.show() ``` -Using Seaborn again, plot the model's [Receiving Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) or ROC. ROC curves are often used to get a view of the output of a classifier in terms of its true vs. false positives. "ROC curves typically feature true positive rate on the Y axis, and false positive rate on the X axis." Thus, the steepness of the curve and the space between the midpoint line and the curve matter: you want a curve that quickly heads up and over the line. In our case, there are false positives to start with, and then the line heads up and over properly: +Using Matplotlib, plot the model's [Receiving Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) or ROC. ROC curves are often used to get a view of the output of a classifier in terms of its true vs. false positives. "ROC curves typically feature true positive rate on the Y axis, and false positive rate on the X axis." Thus, the steepness of the curve and the space between the midpoint line and the curve matter: you want a curve that quickly heads up and over the line. In our case, there are false positives to start with, and then the line heads up and over properly: ![ROC](./images/ROC.png) @@ -289,7 +355,7 @@ Finally, use Scikit-learn's [`roc_auc_score` API](https://scikit-learn.org/stabl auc = roc_auc_score(y_test,y_scores[:,1]) print(auc) ``` -The result is `0.6976998904709748`. Given that the AUC ranges from 0 to 1, you want a big score, since a model that is 100% correct in its predictions will have an AUC of 1; in this case, the model is _pretty good_. +The result is `0.9749908725812341`. Given that the AUC ranges from 0 to 1, you want a big score, since a model that is 100% correct in its predictions will have an AUC of 1; in this case, the model is _pretty good_. In future lessons on classifications, you will learn how to iterate to improve your model's scores. But for now, congratulations! You've completed these regression lessons! diff --git a/2-Regression/4-Logistic/images/ROC_2.png b/2-Regression/4-Logistic/images/ROC_2.png new file mode 100644 index 0000000000000000000000000000000000000000..aa629fb15a80bc412a63a672d969e5e9e5f7b14e GIT binary patch literal 24803 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 Jw6>I-%0Ct4qBH;i literal 0 HcmV?d00001 diff --git a/2-Regression/4-Logistic/images/pumpkins_catplot_1.png b/2-Regression/4-Logistic/images/pumpkins_catplot_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6467323999b0297400b6453ad2e409636138b4 GIT binary patch literal 21873 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 literal 0 HcmV?d00001 diff --git a/2-Regression/4-Logistic/images/swarm_2.png b/2-Regression/4-Logistic/images/swarm_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b44e7c713840c5f9f419d64bfdafffb3c1182904 GIT binary patch literal 30805 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 Vh4BfLLB#Jit#f+n*=H?o{RgJlc7y-` literal 0 HcmV?d00001 diff --git a/2-Regression/4-Logistic/notebook.ipynb b/2-Regression/4-Logistic/notebook.ipynb index c151ea78..7c212763 100644 --- a/2-Regression/4-Logistic/notebook.ipynb +++ b/2-Regression/4-Logistic/notebook.ipynb @@ -1,41 +1,15 @@ { - "metadata": { - "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.7.0" - }, - "orig_nbformat": 2, - "kernelspec": { - "name": "python37364bit8d3b438fb5fc4430a93ac2cb74d693a7", - "display_name": "Python 3.7.0 64-bit ('3.7')" - }, - "metadata": { - "interpreter": { - "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2, "cells": [ { + "cell_type": "markdown", + "metadata": {}, "source": [ "## Pumpkin Varieties and Color\n", "\n", "Load up required libraries and dataset. Convert the data to a dataframe containing a subset of the data: \n", "\n", "Let's look at the relationship between color and variety" - ], - "cell_type": "markdown", - "metadata": {} + ] }, { "cell_type": "code", @@ -43,8 +17,175 @@ "metadata": {}, "outputs": [ { - "output_type": "execute_result", "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
City NameTypePackageVarietySub VarietyGradeDateLow PriceHigh PriceMostly Low...Unit of SaleQualityConditionAppearanceStorageCropRepackTrans ModeUnnamed: 24Unnamed: 25
0BALTIMORENaN24 inch binsNaNNaNNaN4/29/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
1BALTIMORENaN24 inch binsNaNNaNNaN5/6/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
2BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
3BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
4BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN11/5/1690.0100.090.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
\n", + "

5 rows × 26 columns

\n", + "
" + ], "text/plain": [ " City Name Type Package Variety Sub Variety Grade Date \\\n", "0 BALTIMORE NaN 24 inch bins NaN NaN NaN 4/29/17 \n", @@ -68,28 +209,48 @@ "4 NaN NaN NaN N NaN NaN NaN \n", "\n", "[5 rows x 26 columns]" - ], - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
City NameTypePackageVarietySub VarietyGradeDateLow PriceHigh PriceMostly Low...Unit of SaleQualityConditionAppearanceStorageCropRepackTrans ModeUnnamed: 24Unnamed: 25
0BALTIMORENaN24 inch binsNaNNaNNaN4/29/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
1BALTIMORENaN24 inch binsNaNNaNNaN5/6/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
2BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
3BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
4BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN11/5/1690.0100.090.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
\n

5 rows × 26 columns

\n
" + ] }, + "execution_count": 1, "metadata": {}, - "execution_count": 1 + "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "\n", - "pumpkins = pd.read_csv('../data/US-pumpkins.csv')\n", + "full_pumpkins = pd.read_csv('../data/US-pumpkins.csv')\n", "\n", - "pumpkins.head()\n" + "full_pumpkins.head()\n" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } - ] -} \ No newline at end of file + ], + "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.11.1" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/2-Regression/4-Logistic/solution/notebook.ipynb b/2-Regression/4-Logistic/solution/notebook.ipynb index 13972c42..08684587 100644 --- a/2-Regression/4-Logistic/solution/notebook.ipynb +++ b/2-Regression/4-Logistic/solution/notebook.ipynb @@ -218,7 +218,7 @@ "import pandas as pd\n", "import numpy as np\n", "\n", - "full_pumpkins = pd.read_csv('../data/US-pumpkins.csv')\n", + "full_pumpkins = pd.read_csv('../../data/US-pumpkins.csv')\n", "\n", "full_pumpkins.head()\n" ]