From 6ea3f84c7a5c14c5de8db1729f600d8cc2e7e9a5 Mon Sep 17 00:00:00 2001 From: Alex Truong Date: Sat, 12 Dec 2020 14:45:22 +0700 Subject: [PATCH] Update usage section in README.md, minor change in figure label in report.Rmd, regenerate Makefile.png --- Makefile.dot | 2 +- Makefile.png | Bin 122684 -> 122737 bytes README.md | 16 +++ reports/reports.Rmd | 8 +- reports/reports.html | 225 ------------------------------------------- reports/reports.md | 137 ++++++++++++++------------ 6 files changed, 97 insertions(+), 291 deletions(-) delete mode 100644 reports/reports.html diff --git a/Makefile.dot b/Makefile.dot index 67347d4..3d27523 100644 --- a/Makefile.dot +++ b/Makefile.dot @@ -11,7 +11,7 @@ n16[label="reports/reports.md", color="green"]; n18[label="reports/wine_refs.bib", color="green"]; n14[label="results/best_Model.pkl", color="red"]; n10[label="results/final_model_quality.png", color="red"]; -n3[label="results/wine_quality_rank_per_feature.png", color="red"]; +n3[label="results/wine_quality_rank_per_feature.svg", color="red"]; n8[label="src/download_data.py", color="green"]; n15[label="src/fit_wine_quality_predict_model.py", color="green"]; n6[label="src/pre_processing_wine.py", color="green"]; diff --git a/Makefile.png b/Makefile.png index fc13d0f0d9d6967cb0d21c3cc78b9b408914bd03..4a9139e3335ec88284c43c511f6c41e30964377d 100644 GIT binary patch delta 70627 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 z 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

k?xd*>$N{>d-0?^8PW0P@U`c)pU1w! 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 diff --git a/README.md b/README.md index 72b48d8..f9c8c73 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,22 @@ The final report can be found [here](https://github.com/UBC-MDS/Wine_Quality_Pre ## Usage +There are two suggested ways to run this analysis: + + +#### 1\. Using Docker +To run this analysis using Docker, clone/download this repository, use the command line to navigate to the root of this project on your computer, and then type the following (filling in PATH_ON_YOUR_COMPUTER with the absolute path to the root of this project on your computer). + + +```bash +docker run --rm -v PATH_ON_YOUR_COMPUTER:/home/data_analysis_eg ttimbers/data_analysis_pipeline_eg make -C '/home/data_analysis_eg' all +``` +To clean up the analysis type: + +```bash +docker run --rm -v PATH_ON_YOUR_COMPUTER:/home/data_analysis_eg ttimbers/data_analysis_pipeline_eg make -C '/home/data_analysis_eg' clean +``` +#### 2\. Using Makefile To replicate the analysis, clone this GitHub repository, install the [dependencies](#dependencies) listed below, and run the following commands at the command line/terminal from the root directory of this diff --git a/reports/reports.Rmd b/reports/reports.Rmd index d2336d4..f69705b 100644 --- a/reports/reports.Rmd +++ b/reports/reports.Rmd @@ -56,7 +56,7 @@ In this project we are trying to predict the quality of a given wine sample usin We eventually decided to pick neutral network Multi-layer Perception (MLP) model as the model that yield the best results after running the various machine learning models through the train data set, comparing their performance based on f1-score and checking consistency across cross-validation runs. We noticed that random forest recorded high f1-validation score at 0.84, however, it also had a large gap between train and validation with a perfect train score of 1. This caused us to think the model has overfitted. Logistic regression also showed promising f1 validation score results in our case, yet this high results were not consistent across cross-validation splits. Hence, with most models struggled to get to the 0.8 f1-score mark without significantly overfitting on the train set, while MLP shows consistent results across all cross-validation splits, our final choice landed on MLP model because we think it would generalize better. -```{r, fig.cap = "Table 1: Score results among different machine learning model we have explore", fig.align='center'} +```{r, fig.cap = "Figure 3: Score results among different machine learning model we have explore", fig.align='center'} knitr::include_graphics("../results/f1_score_all_classifiers.svg") ``` @@ -68,7 +68,7 @@ The Python and R programming languages [@R; @Python] and the following Python an Looking at the distribution plot of the respective wine quality group interacting with each explanatory features, we can see that higher quality wine seems to be more associated with higher `alcohol` level and lower `density`. Lower `volatile acidity` also seems to be indicative of better wine. Better ranked wine also seem to have `higher free sulfur dioxide` level than poor wine though the relationship is not that clear based on the plot. The rest of the features do not seems be very distinguishable among different quality wine. -```{r distribution plot, fig.cap = "Figure 3: Distribution plot between wine quality and various attributes from physicochemical test", fig.align='center'} +```{r distribution plot, fig.cap = "Figure 4: Distribution plot between wine quality and various attributes from physicochemical test", fig.align='center'} knitr::include_graphics("../eda/wine_EDA_files/wine_quality_rank_per_feature.svg") @@ -76,14 +76,14 @@ knitr::include_graphics("../eda/wine_EDA_files/wine_quality_rank_per_feature.svg Since this is a multi-class classification, our goal was to find a model that was consistent and able to recognize patterns from our data. We choose to use a neutral network Multi-layer Perception (MLP) model as it was consistent and showed promising results. If we take a look at the accuracy scores and f1 scores across cross validation splits, we can see that it is pretty consistent which was not the case with many models. -```{r, echo=FALSE,out.width="50%", out.height="20%",fig.cap="Figure 4: Accuracy scores and f1 scores across cross validation splits for neutral network Multi-layer Perception (MLP) model",fig.show='hold',fig.align='center'} +```{r, echo=FALSE,out.width="50%", out.height="20%",fig.cap="Figure 5: Accuracy scores and f1 scores across cross validation splits for neutral network Multi-layer Perception (MLP) model",fig.show='hold',fig.align='center'} knitr::include_graphics(c("../results/f1_score_random_forest.svg","../results/f1_score_mlp.svg")) ``` Our model performed quite well on the test data as well. If we take a look at the confusion matrix below. As we discussed earlier, the prediction at the lower end of wine quality spectrum is acceptable. As we can see from the confusion matrix below, ~13% error rate for the lower end of spectrum and also very acceptable false classifications in the high end of spectrum. -```{r, fig.cap = "Figure 5: Confusion Matrix", fig.align='center'} +```{r, fig.cap = "Figure 6: Confusion Matrix", fig.align='center'} knitr::include_graphics("../results/final_model_quality.png") ``` diff --git a/reports/reports.html b/reports/reports.html deleted file mode 100644 index cc98e2a..0000000 --- a/reports/reports.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - - - - - - - - - - - - - -

Predicting wine quality using measurements of physiochemical tests

-

Alex Truong, Bruhat Musinuru, Rui Wang and Sang Yoon Lee
2020-11-26 (updated: 2020-12-11)

- -

Summary

-

For this analysis, we used the neutral network Multi-layer Perception (MLP) model in order to try to predict wine quality based on the different wine attributes obtained from physicochemical tests such as alcohol, sulfur dioxide, fixed acidity, residual sugar. When we test it with the different validation data sets, the model yield robust results with 80% accuracy and 80% f1- score (a weighted average metric between precision and recall rate). We also have comparably high score at 80% accuracy and f1-score when we run the model on our test set. Based on these results, we opine that that the model seems to generalize well based on the test set predictions.

-

However, it incorrectly classifies 13.7% of the data in the lower end of spectrum (between normal and poor). This could be due to class imbalance present in the data set where normal samples outnumber poor by roughly twenty times. Improving the data collection methods to reduce the data class imbalance and using an appropriate assessment metric for imbalanced data can help to improve our analysis. On the other hand, given the rate of miss-classification is not so high and the impact can be corrected in further assessment, we believe this model could decently serve its purpose as a wine predictor to conduct first-cut assessment, which could help speed up the wine ratings process.

-

Introduction

-

Traditional methods of categorizing wine are prone to human error and can vary drastically from expert to expert. We propose a data mining approach to predict wine quality using machine learning techniques for classification problems. The resulting model, we hope, could serve as as one of scientific and systematic ways to classify wine, which is a springboard for further research in personalized wine recommendation, quality assessment and comparison unit.

-

Moreover, we believe wineries or wine rating institutes could find the model as a useful and reliable first-cut wine quality test before further expert’s assessment. This could lead to a more cost and time-effective wine screening process, and subsequently facilitate more effective and efficient business decisions and strategies.

-

Methods

-

Data

-

The data set used in this project is the results of a chemical analysis of the Portuguese “Vinho Verde” wine, conducted by Paulo Cortez, A. Cerdeira, F. Almeida, T. Matos and J. Reis (Cortez et al. 2009). It was sourced from the UCI Machine Learning Repository (Dua and Graff 2017) which can be found here.

-

There are two datasets for red and white wine samples. For each wine sample observation , the inputs contains measurements of various objective physicochemical tests, and the output is the median wine quality ratings given by experts on the scale from 0 (very bad) and 10 (very excellent).The author notes that data on grape types, wine brand, wind selling price among other are not available due to privacy and logistics issues. There are 1599 observations for red wine and 4898 observations of white wine.

-
- -Figure 1: Distribution of type of wine -

-Figure 1: Distribution of type of wine -

- -
- -

Analysis

-

At the preprocessing stage, we decided to combine the red and white data set as well as group the data in bigger classification, namely “poor,” “normal” and “excellent” for scale “1-4,” “5-6” and “7-9” so as to have bigger sample size (as per Figure 2). We acknowledge that the data is imbalanced, hence instead of only using accuracy based to judge the model performance, we also include f1-score and use it as our main assessment metric. f-1 score is metric that combine both the precision and recall metrics, which focus on the false negative and false positive rate of the data and would be appropriate to use with an imbalanced data set.{Bruhat: to add more justification for f-1 micro score}

-
- -Figure 2: Regrouping of wine quality classification -

-Figure 2: Regrouping of wine quality classification -

- -
- -

In this project we are trying to predict the quality of a given wine sample using wine attributes obtained from various physicochemical tests. Based on our literary review, we found that researchers from Karadeniz Technical Univeristy used Random Forest Algorithm had also tried to classify between red wine and white wine for the same dataset (Er and Atasoy 2016). They further used 3 different data mining algorithms namely k-nearest-neighbourhood random forests and support vector machine learning to classify the quality of both red wine and white wine. This motivates us to proceed with to use cross-validation to select the best model for our analysis.

-

We eventually decided to pick neutral network Multi-layer Perception (MLP) model as the model that yield the best results after running the various machine learning models through the train data set, comparing their performance based on f1-score and checking consistency across cross-validation runs. We noticed that random forest recorded high f1-validation score at 0.84, however, it also had a large gap between train and validation with a perfect train score of 1. This caused us to think the model has overfitted. Logistic regression also showed promising f1 validation score results in our case, yet this high results were not consistent across cross-validation splits. Hence, with most models struggled to get to the 0.8 f1-score mark without significantly overfitting on the train set, while MLP shows consistent results across all cross-validation splits, our final choice landed on MLP model because we think it would generalize better.

-
- -Table 1: Score results among different machine learning model we have explore -

-Table 1: Score results among different machine learning model we have -explore -

- -
- -

The Python and R programming languages (R Core Team 2019; Van Rossum and Drake 2009) and the following Python and R packages were used to perform the analysis: scikit-learn (Pedregosa et al. 2011), docoptpython (Keleshev 2014), docopt (de Jonge 2018), altair (VanderPlas et al. 2018), vega-lite (Satyanarayan et al. 2017), IPython-ipykernel (Pérez and Granger 2007), matplotlib (Hunter 2007), scipy (Virtanen et al. 2020), numpy (Harris et al. 2020), pandas (McKinney and others 2010), graphviz (Ellson et al. 2001), pandas-profiling (Brugman 2019), knitr (Xie 2014), tidyverse (Wickham 2017), kableExtra (Zhu 2020). The code used to perform the analysis and re-create this report can be found here

-

Results & Discussion

-

Looking at the distribution plot of the respective wine quality group interacting with each explanatory features, we can see that higher quality wine seems to be more associated with higher alcohol level and lower density. Lower volatile acidity also seems to be indicative of better wine. Better ranked wine also seem to have higher free sulfur dioxide level than poor wine though the relationship is not that clear based on the plot. The rest of the features do not seems be very distinguishable among different quality wine.

-
- -Figure 3: Distribution plot between wine quality and various attributes from physicochemical test -

-Figure 3: Distribution plot between wine quality and various attributes -from physicochemical test -

- -
- -

Since this is a multi-class classification, our goal was to find a model that was consistent and able to recognize patterns from our data. We choose to use a neutral network Multi-layer Perception (MLP) model as it was consistent and showed promising results. If we take a look at the accuracy scores and f1 scores across cross validation splits, we can see that it is pretty consistent which was not the case with many models.

-
- -

Figure 4: Accuracy scores and f1 scores across cross validation splits for neutral network Multi-layer Perception (MLP) modelFigure 4: Accuracy scores and f1 scores across cross validation splits for neutral network Multi-layer Perception (MLP) model

-

-Figure 4: Accuracy scores and f1 scores across cross validation splits -for neutral network Multi-layer Perception (MLP) model -

- -
- -

Our model performed quite well on the test data as well. If we take a look at the confusion matrix below. As we discussed earlier, the prediction at the lower end of wine quality spectrum is acceptable. As we can see from the confusion matrix below, ~13% error rate for the lower end of spectrum and also very acceptable false classifications in the high end of spectrum.

-
- -Figure 5: Confusion Matrix -

-Figure 5: Confusion Matrix -

- -
- -

Having said that the research also need further improvement in terms of obtaining a more balanced data set for training and cross-validation. More feature engineer and selection could be conducted to minimize the affect of correlation among the explanatory variable. Furthermore, in order to assess the robustness of the predicting model, we need to test the model with deployment data in real world besides testing with our test data.

-

In conclusion, we think that with a decent error rate, our predicting model based on neutral network Multi-layer Perception (MLP) model would serve well as an effective first-cut assessment on wine quality.

-

References

-
- -
- -

Brugman, Simon. 2019. “pandas-profiling: Exploratory Data Analysis for Python.” https://github.com/pandas-profiling/pandas-profiling.

-
- -
- -

Cortez, Paulo, António Cerdeira, Fernando Almeida, Telmo Matos, and José Reis. 2009. “Modeling Wine Preferences by Data Mining from Physicochemical Properties.” Decision Support Systems 47 (4): 547–53.

-
- -
- -

de Jonge, Edwin. 2018. Docopt: Command-Line Interface Specification Language. https://CRAN.R-project.org/package=docopt.

-
- -
- -

Dua, Dheeru, and Casey Graff. 2017. “UCI Machine Learning Repository.” University of California, Irvine, School of Information; Computer Sciences. http://archive.ics.uci.edu/ml.

-
- -
- -

Ellson, John, Emden Gansner, Lefteris Koutsofios, Stephen North, Gordon Woodhull, Short Description, and Lucent Technologies. 2001. “Graphviz - Open Source Graph Drawing Tools.” In Lecture Notes in Computer Science, 483–84. Springer-Verlag.

-
- -
- -

Er, Yeşim, and Ayten Atasoy. 2016. “The Classification of White Wine and Red Wine According to Their Physicochemical Qualities.” International Journal of Intelligent Systems and Applications in Engineering, 23–26.

-
- -
- -

Harris, Charles R., K. Jarrod Millman, St’efan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, et al. 2020. “Array Programming with NumPy.” Nature 585 (7825): 357–62. https://doi.org/10.1038/s41586-020-2649-2.

-
- -
- -

Hunter, J. D. 2007. “Matplotlib: A 2d Graphics Environment.” Computing in Science & Engineering 9 (3): 90–95. https://doi.org/10.1109/MCSE.2007.55.

-
- -
- -

Keleshev, Vladimir. 2014. Docopt: Command-Line Interface Description Language. https://github.com/docopt/docopt.

-
- -
- -

McKinney, Wes, and others. 2010. “Data Structures for Statistical Computing in Python.” In Proceedings of the 9th Python in Science Conference, 445:51–56. Austin, TX.

-
- -
- -

Pedregosa, F., G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blondel, et al. 2011. “Scikit-Learn: Machine Learning in Python.” Journal of Machine Learning Research 12: 2825–30.

-
- -
- -

Pérez, Fernando, and Brian E. Granger. 2007. “IPython: A System for Interactive Scientific Computing.” Computing in Science and Engineering 9 (3): 21–29. https://doi.org/10.1109/MCSE.2007.53.

-
- -
- -

R Core Team. 2019. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.

-
- -
- -

Satyanarayan, Arvind, Dominik Moritz, Kanit Wongsuphasawat, and Jeffrey Heer. 2017. “Vega-Lite: A Grammar of Interactive Graphics.” IEEE Transactions on Visualization and Computer Graphics 23 (1): 341–50.

-
- -
- -

Van Rossum, Guido, and Fred L. Drake. 2009. Python 3 Reference Manual. Scotts Valley, CA: CreateSpace.

-
- -
- -

VanderPlas, Jacob, Brian Granger, Jeffrey Heer, Dominik Moritz, Kanit Wongsuphasawat, Arvind Satyanarayan, Eitan Lees, Ilia Timofeev, Ben Welsh, and Scott Sievert. 2018. “Altair: Interactive Statistical Visualizations for Python.” Journal of Open Source Software 3 (32): 1057. https://doi.org/10.21105/joss.01057.

-
- -
- -

Virtanen, Pauli, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy, David Cournapeau, Evgeni Burovski, et al. 2020. “SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python.” Nature Methods 17: 261–72. https://doi.org/10.1038/s41592-019-0686-2.

-
- -
- -

Wickham, Hadley. 2017. Tidyverse: Easily Install and Load the ’Tidyverse’. https://CRAN.R-project.org/package=tidyverse.

-
- -
- -

Xie, Yihui. 2014. “Knitr: A Comprehensive Tool for Reproducible Research in R.” In Implementing Reproducible Computational Research, edited by Victoria Stodden, Friedrich Leisch, and Roger D. Peng. Chapman; Hall/CRC. http://www.crcpress.com/product/isbn/9781466561595.

-
- -
- -

Zhu, Hao. 2020. kableExtra: Construct Complex Table with ’Kable’ and Pipe Syntax. https://CRAN.R-project.org/package=kableExtra.

-
- -
- - - diff --git a/reports/reports.md b/reports/reports.md index f071c02..b0e2f4d 100644 --- a/reports/reports.md +++ b/reports/reports.md @@ -1,15 +1,15 @@ Predicting wine quality using measurements of physiochemical tests ================ Alex Truong, Bruhat Musinuru, Rui Wang and Sang Yoon Lee
-2020-11-26 (updated: 2020-12-11) +2020-11-26 (updated: 2020-12-12) -- [Summary](#summary) -- [Introduction](#introduction) -- [Methods](#methods) - - [Data](#data) - - [Analysis](#analysis) -- [Results & Discussion](#results-discussion) -- [References](#references) + - [Summary](#summary) + - [Introduction](#introduction) + - [Methods](#methods) + - [Data](#data) + - [Analysis](#analysis) + - [Results & Discussion](#results-discussion) + - [References](#references) ## Summary @@ -74,8 +74,11 @@ observations of white wine.
Figure 1: Distribution of type of wine +

+ Figure 1: Distribution of type of wine +

@@ -83,10 +86,10 @@ Figure 1: Distribution of type of wine ### Analysis At the preprocessing stage, we decided to combine the red and white data -set as well as group the data in bigger classification, namely “poor,” -“normal” and “excellent” for scale “1-4,” “5-6” and “7-9” so as to have -bigger sample size (as per Figure 2). We acknowledge that the data is -imbalanced, hence instead of only using accuracy based to judge the +set as well as group the data in bigger classification, namely “poor”, +“normal” and “excellent” for scale “1-4”, “5-6” and “7-9” so as to +have bigger sample size (as per Figure 2). We acknowledge that the data +is imbalanced, hence instead of only using accuracy based to judge the model performance, we also include f1-score and use it as our main assessment metric. f-1 score is metric that combine both the precision and recall metrics, which focus on the false negative and false positive @@ -96,8 +99,11 @@ set.{Bruhat: to add more justification for f-1 micro score}
Figure 2: Regrouping of wine quality classification +

+ Figure 2: Regrouping of wine quality classification +

@@ -130,10 +136,13 @@ because we think it would generalize better.
-Table 1: Score results among different machine learning model we have explore +Figure 3: Score results among different machine learning model we have explore +

-Table 1: Score results among different machine learning model we have + +Figure 3: Score results among different machine learning model we have explore +

@@ -156,18 +165,20 @@ Looking at the distribution plot of the respective wine quality group interacting with each explanatory features, we can see that higher quality wine seems to be more associated with higher `alcohol` level and lower `density`. Lower `volatile acidity` also seems to be indicative of -better wine. Better ranked wine also seem to have -`higher free sulfur dioxide` level than poor wine though the -relationship is not that clear based on the plot. The rest of the -features do not seems be very distinguishable among different quality -wine. +better wine. Better ranked wine also seem to have `higher free sulfur +dioxide` level than poor wine though the relationship is not that clear +based on the plot. The rest of the features do not seems be very +distinguishable among different quality wine.
-Figure 3: Distribution plot between wine quality and various attributes from physicochemical test +Figure 4: Distribution plot between wine quality and various attributes from physicochemical test +

-Figure 3: Distribution plot between wine quality and various attributes + +Figure 4: Distribution plot between wine quality and various attributes from physicochemical test +

@@ -181,10 +192,13 @@ that it is pretty consistent which was not the case with many models.
-Figure 4: Accuracy scores and f1 scores across cross validation splits for neutral network Multi-layer Perception (MLP) modelFigure 4: Accuracy scores and f1 scores across cross validation splits for neutral network Multi-layer Perception (MLP) model +Figure 5: Accuracy scores and f1 scores across cross validation splits for neutral network Multi-layer Perception (MLP) modelFigure 5: Accuracy scores and f1 scores across cross validation splits for neutral network Multi-layer Perception (MLP) model +

-Figure 4: Accuracy scores and f1 scores across cross validation splits + +Figure 5: Accuracy scores and f1 scores across cross validation splits for neutral network Multi-layer Perception (MLP) model +

@@ -198,9 +212,12 @@ the high end of spectrum.
-Figure 5: Confusion Matrix +Figure 6: Confusion Matrix +

-Figure 5: Confusion Matrix + +Figure 6: Confusion Matrix +

@@ -219,17 +236,16 @@ serve well as an effective first-cut assessment on wine quality. # References -
+
-
+
-Brugman, Simon. 2019. “pandas-profiling: -Exploratory Data Analysis for Python.” -. +Brugman, Simon. 2019. “pandas-profiling: Exploratory Data Analysis for +Python.” .
-
+
Cortez, Paulo, António Cerdeira, Fernando Almeida, Telmo Matos, and José Reis. 2009. “Modeling Wine Preferences by Data Mining from @@ -237,14 +253,14 @@ Physicochemical Properties.” *Decision Support Systems* 47 (4): 547–53.
-
+
de Jonge, Edwin. 2018. *Docopt: Command-Line Interface Specification Language*. .
-
+
Dua, Dheeru, and Casey Graff. 2017. “UCI Machine Learning Repository.” University of California, Irvine, School of Information; Computer @@ -252,7 +268,7 @@ Sciences. .
-
+
Ellson, John, Emden Gansner, Lefteris Koutsofios, Stephen North, Gordon Woodhull, Short Description, and Lucent Technologies. 2001. “Graphviz - @@ -261,7 +277,7 @@ Science*, 483–84. Springer-Verlag.
-
+
Er, Yeşim, and Ayten Atasoy. 2016. “The Classification of White Wine and Red Wine According to Their Physicochemical Qualities.” *International @@ -269,7 +285,7 @@ Journal of Intelligent Systems and Applications in Engineering*, 23–26.
-
+
Harris, Charles R., K. Jarrod Millman, St’efan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, et al. 2020. @@ -278,22 +294,22 @@ Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, et al. 2020.
-
+
-Hunter, J. D. 2007. “Matplotlib: A 2d Graphics Environment.” *Computing +Hunter, J. D. 2007. “Matplotlib: A 2D Graphics Environment.” *Computing in Science & Engineering* 9 (3): 90–95. .
-
+
Keleshev, Vladimir. 2014. *Docopt: Command-Line Interface Description Language*. .
-
+
McKinney, Wes, and others. 2010. “Data Structures for Statistical Computing in Python.” In *Proceedings of the 9th Python in Science @@ -301,7 +317,7 @@ Conference*, 445:51–56. Austin, TX.
-
+
Pedregosa, F., G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blondel, et al. 2011. “Scikit-Learn: Machine Learning in @@ -309,7 +325,7 @@ Python.” *Journal of Machine Learning Research* 12: 2825–30.
-
+
Pérez, Fernando, and Brian E. Granger. 2007. “IPython: A System for Interactive Scientific Computing.” *Computing in Science and @@ -317,7 +333,7 @@ Engineering* 9 (3): 21–29. .
-
+
R Core Team. 2019. *R: A Language and Environment for Statistical Computing*. Vienna, Austria: R Foundation for Statistical Computing. @@ -325,7 +341,7 @@ Computing*. Vienna, Austria: R Foundation for Statistical Computing.
-
+
Satyanarayan, Arvind, Dominik Moritz, Kanit Wongsuphasawat, and Jeffrey Heer. 2017. “Vega-Lite: A Grammar of Interactive Graphics.” *IEEE @@ -333,14 +349,7 @@ Transactions on Visualization and Computer Graphics* 23 (1): 341–50.
-
- -Van Rossum, Guido, and Fred L. Drake. 2009. *Python 3 Reference Manual*. -Scotts Valley, CA: CreateSpace. - -
- -
+
VanderPlas, Jacob, Brian Granger, Jeffrey Heer, Dominik Moritz, Kanit Wongsuphasawat, Arvind Satyanarayan, Eitan Lees, Ilia Timofeev, Ben @@ -350,24 +359,30 @@ Visualizations for Python.” *Journal of Open Source Software* 3 (32):
-
+
+ +Van Rossum, Guido, and Fred L. Drake. 2009. *Python 3 Reference Manual*. +Scotts Valley, CA: CreateSpace. + +
+ +
Virtanen, Pauli, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler -Reddy, David Cournapeau, Evgeni Burovski, et al. 2020. “SciPy 1.0: Fundamental Algorithms for Scientific -Computing in Python.” *Nature Methods* 17: 261–72. -. +Reddy, David Cournapeau, Evgeni Burovski, et al. 2020. “SciPy 1.0: +Fundamental Algorithms for Scientific Computing in Python.” *Nature +Methods* 17: 261–72. .
-
+
Wickham, Hadley. 2017. *Tidyverse: Easily Install and Load the ’Tidyverse’*. .
-
+
Xie, Yihui. 2014. “Knitr: A Comprehensive Tool for Reproducible Research in R.” In *Implementing Reproducible Computational Research*, edited by @@ -376,9 +391,9 @@ Hall/CRC. .
-
+
-Zhu, Hao. 2020. *kableExtra: Construct Complex Table with ’Kable’ and +Zhu, Hao. 2020. *KableExtra: Construct Complex Table with ’Kable’ and Pipe Syntax*. .